搭配 Amazon ECS Service Connect 使用共用 AWS Cloud Map 命名空間 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Amazon ECS Service Connect 使用共用 AWS Cloud Map 命名空間

設定 Service Connect 的共用 AWS Cloud Map 命名空間包含下列步驟:建立命名空間的命名空間擁有者、透過 AWS Resource Access Manager (AWS RAM) 共用的擁有者、接受資源共用的取用者,以及設定 Service Connect 使用共用命名空間的取用者。

步驟 1:建立 AWS Cloud Map 命名空間

命名空間擁有者會建立將與其他 帳戶共用的 AWS Cloud Map 命名空間。

使用 建立共用的命名空間 AWS 管理主控台
  1. 在 https://https://console.aws.amazon.com/cloudmap/ 開啟 AWS Cloud Map 主控台。

  2. 選擇 Create namespace (建立命名空間)

  3. 輸入命名空間名稱。所有參與帳戶中的服務都會使用此名稱。

  4. 命名空間類型欄位中,根據使用案例選擇適當的類型:

    • API 呼叫 – HTTP 命名空間,用於不使用 DNS 功能進行服務探索。

    • VPC 中的 API 呼叫與 DNS 查詢 – 私有 DNS 命名空間,用於在 VPC 中使用私有 DNS 查詢進行服務探索。

    • API 呼叫與公有 DNS 查詢 – 公有 DNS 命名空間,用於使用公有 DNS 查詢進行服務探索。

  5. 選擇 Create namespace (建立命名空間)

步驟 2:使用 共用命名空間 AWS RAM

命名空間擁有者使用 與其他 AWS RAM 共用命名空間 AWS 帳戶。

使用 AWS RAM 主控台共用命名空間
  1. 在 https://https://console.aws.amazon.com/ram/ 開啟 AWS RAM 主控台。

  2. 選擇 Create resource share (建立資源共用)

  3. 名稱欄位中,輸入資源共用的描述性名稱。

  4. 資源區段中:

    1. 資源類型欄位中,選擇 Cloud Map 命名空間

    2. 選取您在前一步驟中建立的命名空間。

  5. 受管許可區段中,指定 AWSRAMPermissionCloudMapECSFullPermission

    重要

    必須使用 AWSRAMPermissionCloudMapECSFullPermission 受管許可來共用命名空間,Service Connect 才能在命名空間正常運作。

  6. 主體區段中,指定要與之共用命名空間的 AWS 帳戶 。您可以輸入帳戶 ID 或組織單位 ID。

  7. 選擇 Create resource share (建立資源共用)

步驟 3:接受資源共用

命名空間取用者帳戶必須接受資源共用邀請,才能使用共用命名空間。

使用 AWS RAM 主控台接受資源共享邀請
  1. 在消費者帳戶中,開啟位於 https://https://console.aws.amazon.com/ram/ 的 AWS RAM 主控台。

  2. 在導覽窗格中,依次選擇與我共用資源共用

  3. 選取資源共用邀請,然後選擇接受資源共用

  4. 接受後,請記下資源詳細資訊中的共用命名空間 ARN。設定 Service Connect 服務時,您將使用此 ARN。

步驟 4:使用共用命名空間設定 Amazon ECS 服務

接受共用命名空間後,命名空間取用者可以將 Amazon ECS 服務設定為使用共用命名空間。組態與使用一般命名空間類似,但您必須指定命名空間 ARN 而不是名稱。如需詳細的服務建立程序,請參閱建立 Amazon ECS 滾動更新部署

使用 建立具有共用命名空間的服務 AWS 管理主控台
  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. 完成服務建立程序。

您也可以使用 AWS CLI AWS SDKs設定服務,方法是在 的 namespace 參數中指定共用命名空間 ARNserviceConnectConfiguration

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" }] }] }'