将共享的 Amazon Cloud Map 命名空间与 Amazon ECS Service Connect 结合使用 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将共享的 Amazon Cloud Map 命名空间与 Amazon ECS Service Connect 结合使用

为 Service Connect 设置共享的 Amazon Cloud Map 命名空间涉及以下步骤:命名空间所有者创建命名空间,所有者通过 Amazon Resource Access Manager(Amazon RAM)共享命名空间,使用者接受资源共享,以及使用者配置 Service Connect 以使用共享命名空间。

步骤 1:创建 Amazon Cloud Map 命名空间

命名空间所有者创建一个将与其他账户共享的 Amazon Cloud Map 命名空间。

使用 Amazon Web Services 管理控制台创建要共享的命名空间
  1. 打开 Amazon Cloud Map 控制台,地址:https://console.aws.amazon.com/cloudmap/

  2. 选择创建命名空间

  3. 输入命名空间名称。所有参与账户的服务都将使用此名称。

  4. 对于命名空间类型,请为您的使用案例选择合适的类型:

    • API 调用 ‐ 用于服务发现的 HTTP 命名空间,没有 DNS 功能。

    • VPC 中的 API 调用和 DNS 查询 ‐ 用于服务发现的私有 DNS 命名空间,具有 VPC 中的私有 DNS 查询。

    • API 调用和公有 DNS 查询 ‐ 用于服务发现的公有 DNS 命名空间,具有公有 DNS 查询。

  5. 选择创建命名空间

步骤 2:使用 Amazon RAM 共享命名空间

命名空间所有者使用 Amazon RAM 与其他 Amazon Web Services 账户共享命名空间。

使用 Amazon RAM 控制台共享命名空间
  1. 打开 Amazon RAM 控制台(https://console.aws.amazon.com/ram/)。

  2. 选择创建资源共享

  3. 对于名称,键入资源共享的描述性名称。

  4. 资源部分:

    1. 对于资源类型,选择 Cloud Map 命名空间

    2. 选择您在上一步中创建的命名空间。

  5. 托管权限部分,指定 AWSRAMPermissionCloudMapECSFullPermission

    重要

    您必须使用 AWSRAMPermissionCloudMapECSFullPermission 托管权限来共享命名空间,Service Connect 才能与命名空间正常协作。

  6. 主体部分,指定要与其共享命名空间的 Amazon Web Services 账户。您可以输入账户 ID 或组织单元 ID。

  7. 选择创建资源共享

步骤 3:接受资源共享

命名空间使用者账户必须接受资源共享邀请才能使用共享命名空间。

使用 Amazon RAM 控制台接受资源共享邀请
  1. 在使用者账户中,打开 Amazon RAM 控制台,网址为 https://console.aws.amazon.com/ram/

  2. 在导航窗格中,选择与我共享,然后选择资源共享

  3. 选择资源共享邀请,然后选择接受资源共享

  4. 接受后,请记下资源详细信息中的共享命名空间 ARN。配置 Service Connect 服务时,您将使用此 ARN。

步骤 4:为 Amazon ECS 服务配置共享命名空间

接受共享命名空间后,命名空间使用者可以将 Amazon ECS 服务配置为使用共享命名空间。该配置与使用常规命名空间类似,但您必须指定命名空间 ARN 而不是名称。有关详细的服务创建过程,请参阅 创建 Amazon ECS 滚动更新部署

使用Amazon Web Services 管理控制台创建具有共享命名空间的服务
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 集群页面上,选择要在其中创建服务的集群。

  3. 服务下,选择创建

  4. 根据工作负载填写其他详细信息后,请在 Service Connect 部分中选择使用 Service Connect

  5. 对于命名空间,输入共享命名空间的完整 ARN。

    ARN 格式为:arn:aws:servicediscovery:region:account-id:namespace/namespace-id

  6. 根据需要为服务类型(客户端或客户端-服务器)配置剩余 Service Connect 设置。

  7. 完成服务创建过程。

您还可以使用 Amazon CLI 或 Amazon SDK,通过在 serviceConnectConfigurationnamespace 参数中指定共享命名空间 ARN 来配置服务。

aws ecs create-service \ --cluster my-cluster \ --service-name my-service \ --task-definition my-task-def \ --service-connect-configuration '{ "enabled": true, "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890", "services": [{ "portName": "web", "discoveryName": "my-service", "clientAliases": [{ "port": 80, "dnsName": "my-service" }] }] }'