本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 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 管理主控台
-
在 https://https://console.aws.amazon.com/cloudmap/
開啟 AWS Cloud Map 主控台。 -
選擇 Create namespace (建立命名空間)。
-
輸入命名空間名稱。所有參與帳戶中的服務都會使用此名稱。
-
在命名空間類型欄位中,根據使用案例選擇適當的類型:
-
API 呼叫 – HTTP 命名空間,用於不使用 DNS 功能進行服務探索。
-
VPC 中的 API 呼叫與 DNS 查詢 – 私有 DNS 命名空間,用於在 VPC 中使用私有 DNS 查詢進行服務探索。
-
API 呼叫與公有 DNS 查詢 – 公有 DNS 命名空間,用於使用公有 DNS 查詢進行服務探索。
-
-
選擇 Create namespace (建立命名空間)。
步驟 2:使用 共用命名空間 AWS RAM
命名空間擁有者使用 與其他 AWS RAM 共用命名空間 AWS 帳戶。
使用 AWS RAM 主控台共用命名空間
-
在 https://https://console.aws.amazon.com/ram/
開啟 AWS RAM 主控台。 -
選擇 Create resource share (建立資源共用)。
-
在名稱欄位中,輸入資源共用的描述性名稱。
-
在資源區段中:
-
在資源類型欄位中,選擇 Cloud Map 命名空間。
-
選取您在前一步驟中建立的命名空間。
-
-
在受管許可區段中,指定 AWSRAMPermissionCloudMapECSFullPermission。
重要
必須使用
AWSRAMPermissionCloudMapECSFullPermission受管許可來共用命名空間,Service Connect 才能在命名空間正常運作。 -
在主體區段中,指定要與之共用命名空間的 AWS 帳戶 。您可以輸入帳戶 ID 或組織單位 ID。
-
選擇 Create resource share (建立資源共用)。
步驟 3:接受資源共用
命名空間取用者帳戶必須接受資源共用邀請,才能使用共用命名空間。
使用 AWS RAM 主控台接受資源共享邀請
-
在消費者帳戶中,開啟位於 https://https://console.aws.amazon.com/ram/
的 AWS RAM 主控台。 -
在導覽窗格中,依次選擇與我共用、資源共用。
-
選取資源共用邀請,然後選擇接受資源共用。
-
接受後,請記下資源詳細資訊中的共用命名空間 ARN。設定 Service Connect 服務時,您將使用此 ARN。
步驟 4:使用共用命名空間設定 Amazon ECS 服務
接受共用命名空間後,命名空間取用者可以將 Amazon ECS 服務設定為使用共用命名空間。組態與使用一般命名空間類似,但您必須指定命名空間 ARN 而不是名稱。如需詳細的服務建立程序,請參閱建立 Amazon ECS 滾動更新部署。
使用 建立具有共用命名空間的服務 AWS 管理主控台
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在叢集頁面上,選擇要在其中建立服務的叢集。
-
在服務下選擇建立。
-
根據工作負載填入其他詳細資訊後,在 Service Connect 區段中,選擇使用 Service Connect。
-
在命名空間欄位中,輸入共用命名空間的完整 ARN。
ARN 格式為:
arn:aws:servicediscovery:region:account-id:namespace/namespace-id -
視需要針對服務類型 (用戶端或用戶端-伺服器) 進行剩餘的 Service Connect 設定。
-
完成服務建立程序。
您也可以使用 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" }] }] }'