AWS Cloud Map 使用 的範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例

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

AWS Cloud Map 使用 的範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 來執行動作和實作常見案例 AWS Cloud Map。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結,您可在連結中找到如何設定和執行內容中程式碼的相關指示。

主題

動作

以下程式碼範例顯示如何使用 create-http-namespace

AWS CLI

建立 HTTP 命名空間

以下 create-http-namespace 範例建立 HTTP 命名空間 example.com

aws servicediscovery create-http-namespace \ --name example.com \ --creator-request-id example-request-id

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需建立命名空間的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的建立 Cloud Map 命名空間以將應用程式服務分組AWS

以下程式碼範例顯示如何使用 create-private-dns-namespace

AWS CLI

建立私有 DNS 命名空間

以下 create-private-dns-namespace 範例建立私有 DNS 命名空間。

aws servicediscovery create-private-dns-namespace \ --name example.com \ --vpc vpc-1c56417b

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的建立命名空間

以下程式碼範例顯示如何使用 create-public-dns-namespace

AWS CLI

建立公有 DNS 命名空間

以下 create-public-dns-namespace 範例建立公有 DNS 命名空間 example.com

aws servicediscovery create-public-dns-namespace \ --name example-public-dns.com \ --creator-request-id example-public-request-id \ --properties DnsProperties={SOA={TTL=60}}

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

若要確認操作成功,您可以執行 get-operation

如需建立命名空間的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的建立 Cloud Map 命名空間以將應用程式服務分組AWS

以下程式碼範例顯示如何使用 create-service

AWS CLI

範例 1:使用命名空間 ID 建立服務

以下 create-service 範例會建立服務。

aws servicediscovery create-service \ --name myservice \ --namespace-id ns-ylexjili4cdxy3xm \ --dns-config "RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A,TTL=60}]"

輸出:

{ "Service": { "Id": "srv-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "myservice", "NamespaceId": "ns-abcd1234xmpl5678", "DnsConfig": { "NamespaceId": "ns-abcd1234xmpl5678", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "Type": "DNS_HTTP", "CreateDate": "2025-08-18T13:45:31.023000-05:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678", "CreatedByAccount": "123456789012" } }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的為應用程式元件建立 Cloud Map 服務AWS

範例 2:使用命名空間 ARN 建立服務

下列create-service範例會使用命名空間 ARN 而非命名空間 ID 來建立服務。在共用命名空間中建立服務時,需要指定命名空間 ARN。

aws servicediscovery create-service \ --name myservice-arn \ --namespace-id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678 \ --dns-config "RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A,TTL=60}]"

輸出:

{ "Service": { "Id": "srv-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "myservice-arn", "NamespaceId": "ns-abcd1234xmpl5678", "DnsConfig": { "NamespaceId": "ns-abcd1234xmpl5678", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "Type": "DNS_HTTP", "CreateDate": "2025-08-18T13:45:31.023000-05:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678", "CreatedByAccount": "123456789012" } }

如需詳細資訊,請參閱《 AWS 雲端地圖開發人員指南》中的共用雲端地圖命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 CreateService

以下程式碼範例顯示如何使用 delete-namespace

AWS CLI

範例 1:刪除命名空間

以下 delete-namespace 範例會刪除命名空間。

aws servicediscovery delete-namespace \ --id ns-abcd1234xmpl5678

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的刪除 Cloud Map 命名空間AWS

範例 2:使用命名空間 ARN 刪除命名空間

下列delete-namespace範例會使用其 ARN 刪除命名空間。

aws servicediscovery delete-namespace \ --id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的刪除 Cloud Map 命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteNamespace

以下程式碼範例顯示如何使用 delete-service-attributes

AWS CLI

範例 1:刪除服務屬性

下列 delete-service-attributes 範例刪除具有與指定服務相關聯之索引鍵 Port 的服務屬性。

aws servicediscovery delete-service-attributes \ --service-id srv-abcd1234xmpl5678 \ --attributes Port

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務

範例 2:使用 ARN 刪除服務屬性

下列delete-service-attributes範例會使用服務 ARN 刪除服務屬性。指定 ARN 是刪除與在與您的帳戶共用的命名空間中建立的服務相關聯的屬性所必需的。

aws servicediscovery delete-service-attributes \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678 \ --attributes Port

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的 Cloud Map 服務和AWS 共用 Cloud Map 命名空間 AWS

以下程式碼範例顯示如何使用 delete-service

AWS CLI

範例 1:刪除服務

下列 delete-service 範例會刪除服務。

aws servicediscovery delete-service \ --id srv-abcd1234xmpl5678

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的刪除 Cloud Map 服務AWS

範例 2:使用 ARN 刪除服務

下列delete-service範例使用服務 ARN 刪除服務。

aws servicediscovery delete-service \ --id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的刪除 Cloud Map 服務AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeleteService

以下程式碼範例顯示如何使用 deregister-instance

AWS CLI

範例 1:取消註冊服務執行個體

下列 deregister-instance 範例取消註冊服務執行個體。

aws servicediscovery deregister-instance \ --service-id srv-p5zdwlg5uvvzjita \ --instance-id myservice-53

輸出:

{ "OperationId": "4yejorelbukcjzpnr6tlmrghsjwpngf4-k98rnaiq" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的取消註冊服務執行個體

範例 2:使用共用命名空間的服務 ARN 取消註冊服務執行個體

下列deregister-instance範例會使用服務 ARN 取消註冊服務執行個體,而不是服務 ID。從與您的帳戶共用的命名空間中建立的服務取消註冊執行個體時,需要指定 ARN。

aws servicediscovery deregister-instance \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita \ --instance-id web-server-01

輸出:

{ "OperationId": "gv4g5meo7ndmkqjrhpn39wk42xmpl" }

如需詳細資訊,請參閱 Cloud Map 開發人員指南中的共用 AWS Cloud Map 命名空間和取消註冊 Cloud Map 服務執行個體。 AWS AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DeregisterInstance

以下程式碼範例顯示如何使用 discover-instances-revision

AWS CLI

範例 1:探索執行個體的修訂

下列 discover-instances-revision 範例會探索執行個體不斷增加的修訂。

aws servicediscovery discover-instances-revision \ --namespace-name example.com \ --service-name myservice

輸出:

{ "InstancesRevision": 123456 }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務執行個體

範例 2:從特定擁有者帳戶探索執行個體的修訂

下列discover-instances-revision範例探索來自特定擁有者帳戶的執行個體修訂。與您的帳戶共用的命名空間中的執行個體需要擁有者帳戶參數。

aws servicediscovery discover-instances-revision \ --namespace-name shared-namespace \ --service-name shared-service \ --owner-account 123456789111

輸出:

{ "InstancesRevision": 1234567890 }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的共用 Cloud Map 命名空間AWS 和 AWS Cloud Map 服務執行個體

以下程式碼範例顯示如何使用 discover-instances

AWS CLI

範例 1:探索已註冊的執行個體

下列 discover-instances 範例會探索已註冊的執行個體。

aws servicediscovery discover-instances \ --namespace-name example.com \ --service-name myservice \ --max-results 10 \ --health-status ALL

輸出:

{ "Instances": [ { "InstanceId": "myservice-53", "NamespaceName": "example.com", "ServiceName": "myservice", "HealthStatus": "UNKNOWN", "Attributes": { "AWS_INSTANCE_IPV4": "172.2.1.3", "AWS_INSTANCE_PORT": "808" } } ], "InstancesRevision": 85648075627387284 }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務執行個體

範例 2:從特定擁有者帳戶探索執行個體

下列discover-instances範例會從特定擁有者帳戶探索已註冊的執行個體。在與您的帳戶共用的命名空間中探索執行個體時,需要此參數。

aws servicediscovery discover-instances \ --namespace-name shared-namespace \ --service-name shared-service \ --owner-account 123456789111

輸出:

{ "Instances": [ { "InstanceId": "shared-instance-1234", "NamespaceName": "shared-namespace", "ServiceName": "shared-service", "HealthStatus": "HEALTHY", "Attributes": { "AWS_INSTANCE_IPV4": "203.0.113.75", "AWS_INSTANCE_PORT": "80" } } ], "InstancesRevision": 1234567890 }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的共用 Cloud Map 命名空間AWS 和 AWS Cloud Map 服務執行個體

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DiscoverInstances

以下程式碼範例顯示如何使用 get-instance

AWS CLI

範例 1:取得執行個體的詳細資訊

下列 get-instance 範例會取得服務的屬性。

aws servicediscovery get-instance \ --service-id srv-e4anhexample0004 --instance-id i-abcd1234

輸出:

{ "ResourceOwner": "123456789012", "Instance": { "Id": "arn:aws:servicediscovery:us-west-2:111122223333;:service/srv-e4anhexample0004", "Attributes": { "AWS_INSTANCE_IPV4": "192.0.2.44", "AWS_INSTANCE_PORT": "80", "color": "green", "region": "us-west-2", "stage": "beta" }, "CreatedByAccount": "123456789012" } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務執行個體

範例 2:使用共用命名空間的服務 ARN 取得執行個體的詳細資訊

下列get-instance範例使用服務 ARN 而非服務 ID 取得執行個體的屬性。取得與您帳戶共用之命名空間相關聯的執行個體詳細資訊時,需要指定 ARN。此範例中傳回的執行個體是由帳戶 在帳戶 擁有的命名空間123456789111中註冊123456789012

aws servicediscovery get-instance \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita \ --instance-id web-server-01

輸出:

{ "ResourceOwner": "123456789012", "Instance": { "Id": "web-server-01", "Attributes": { "AWS_INSTANCE_IPV4": "203.0.113.15", "AWS_INSTANCE_PORT": "80" }, "CreatedByAccount": "123456789111" } }

如需跨帳戶命名空間共用的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的共用 Cloud Map 命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetInstance

以下程式碼範例顯示如何使用 get-instances-health-status

AWS CLI

範例 1:取得與服務相關聯之執行個體的運作狀態

下列 get-instances-health-status 範例會取得與指定服務相關聯之執行個體的運作狀態。

aws servicediscovery get-instances-health-status \ --service-id srv-e4anhexample0004

輸出:

{ "Status": { "i-abcd1234": "HEALTHY", "i-abcd1235": "UNHEALTHY" } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務執行個體

範例 2:使用共用命名空間的服務 ARN 取得執行個體的運作狀態

下列get-instances-health-status範例會使用服務 ARN 而非服務 ID 取得執行個體的運作狀態。取得與請求者帳戶共用之命名空間相關聯的執行個體運作狀態時,需要指定 ARN。

aws servicediscovery get-instances-health-status \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita

輸出:

{ "Status": { "web-server-01": "HEALTHY", "web-server-02": "UNHEALTHY" } }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的 Cloud Map 服務執行個體AWS 和共用 Cloud Map 命名空間 AWS

以下程式碼範例顯示如何使用 get-namespace

AWS CLI

範例 1:取得命名空間的詳細資訊

以下 get-namespace 範例會擷取指定命名空間的相關資訊。

aws servicediscovery get-namespace \ --id ns-abcd1234xmpl5678

輸出:

{ "Namespace": { "Id": "ns-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "example-http.com", "Type": "HTTP", "Description": "Example.com AWS Cloud Map HTTP Namespace", "Properties": { "DnsProperties": {}, "HttpProperties": { "HttpName": "example-http.com" } }, "CreateDate": "2024-02-23T13:35:21.874000-06:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678" } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

範例 2:使用 ARN 取得命名空間的詳細資訊

下列get-namespace範例會使用其 ARN 擷取指定命名空間的相關資訊。需要指定 ARN 才能擷取與您的帳戶共用之命名空間的詳細資訊。

aws servicediscovery get-namespace \ --id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678

輸出:

{ "Namespace": { "Id": "ns-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "example-http.com", "Type": "HTTP", "Description": "Example.com AWS Cloud Map HTTP Namespace", "Properties": { "DnsProperties": {}, "HttpProperties": { "HttpName": "example-http.com" } }, "CreateDate": "2024-02-23T13:35:21.874000-06:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678" } }

如需詳細資訊,請參閱《 AWS 雲端地圖開發人員指南》中的共用雲端地圖命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetNamespace

以下程式碼範例顯示如何使用 get-operation

AWS CLI

範例 1:取得 操作的結果

下列 get-operation 範例取得命名空間建立操作的結果。

aws servicediscovery get-operation \ --operation-id abcd1234xmpl5678abcd1234xmpl5678-abcd1234

輸出:

{ "Operation": { "Id": "abcd1234xmpl5678abcd1234xmpl5678-abcd1234", "Type": "CREATE_NAMESPACE", "Status": "SUCCESS", "CreateDate": "2025-01-13T13:35:21.874000-06:00", "UpdateDate": "2025-01-13T13:36:02.469000-06:00", "Targets": { "NAMESPACE": "ns-abcd1234xmpl5678" } } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的建立 Cloud Map 命名空間以將應用程式服務分組AWS

範例 2:從特定擁有者帳戶取得 操作

下列get-operation範例取得與特定命名空間擁有者帳戶相關聯之 操作的結果。若要取得與與您帳戶共用的命名空間相關聯的操作結果,需要此參數。

aws servicediscovery get-operation \ --operation-id abcd1234xmpl5678abcd1234xmpl5678-abcd1234 \ --owner-account 123456789111

輸出:

{ "Operation": { "Id": "abcd1234xmpl5678abcd1234xmpl5678-abcd1234", "OwnerAccount": "123456789111", "Type": "CREATE_NAMESPACE", "Status": "SUCCESS", "CreateDate": "2025-01-13T13:35:21.874000-06:00", "UpdateDate": "2025-01-13T13:36:02.469000-06:00", "Targets": { "NAMESPACE": "ns-abcd1234xmpl5678" } } }

如需詳細資訊,請參閱《 AWS 雲端地圖開發人員指南》中的共用雲端地圖命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetOperation

以下程式碼範例顯示如何使用 get-service-attributes

AWS CLI

範例 1:取得服務的屬性

下列 get-service-attributes 範例會取得服務的屬性。

aws servicediscovery get-service-attributes \ --service-id srv-abcd1234xmpl5678

輸出:

{ "ServiceAttributes": { "ServiceArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Attributes": { "Port": "80" } } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務

範例 2:使用 ARN 取得服務的屬性

下列get-service-attributes範例使用服務 ARN 取得服務的屬性。若要取得在與您帳戶共用的命名空間中建立的服務屬性,必須指定 ARN。

aws servicediscovery get-service-attributes \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678

輸出:

{ "ServiceAttributes": { "ServiceArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Attributes": { "Port": "80" } } }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的 Cloud Map 服務和AWS 共用 Cloud Map 命名空間 AWS

以下程式碼範例顯示如何使用 get-service

AWS CLI

範例 1:取得服務的設定

下列 get-service 範例會取得指定服務的設定。

aws servicediscovery get-service \ --id srv-abcd1234xmpl5678

輸出:

{ "Service": { "Id": "srv-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "test-service", "NamespaceId": "ns-abcd1234xmpl5678", "DnsConfig": {}, "Type": "HTTP", "CreateDate": "2025-08-18T13:53:02.775000-05:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678", "CreatedByAccount": "123456789012" } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務

範例 2:使用 ARN 取得服務的設定

下列get-service範例會使用其 ARN 取得指定服務的設定。擷取在與您的帳戶共用的命名空間中建立之服務的相關資訊時,需要指定 ARN。發起人帳戶在帳戶 共用的命名空間中123456789111建立服務123456789012

aws servicediscovery get-service \ --id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678

輸出:

{ "Service": { "Id": "srv-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "test-service", "NamespaceId": "ns-abcd1234xmpl5678", "DnsConfig": {}, "Type": "HTTP", "CreateDate": "2025-08-18T13:53:02.775000-05:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678", "CreatedByAccount": "123456789111" } }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的為應用程式元件建立 Cloud Map 服務AWS 以及共用 Cloud Map 命名空間 AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GetService

以下程式碼範例顯示如何使用 list-instances

AWS CLI

範例 1:列出服務執行個體

下列 list-instances 範例列出服務執行個體。

aws servicediscovery list-instances \ --service-id srv-qzpwvt2tfqcegapy

輸出:

{ "Instances": [ { "Id": "i-06bdabbae60f65a4e", "Attributes": { "AWS_INSTANCE_IPV4": "172.2.1.3", "AWS_INSTANCE_PORT": "808" }, "CreatedByAccount": "123456789012" } ], "ResourceOwner": "123456789012" }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的列出 Cloud Map 服務執行個體AWS

範例 2:使用服務 ARN 列出服務執行個體

下列list-instances範例列出使用服務 ARN 而非服務 ID 的服務執行個體。列出與與您帳戶共用的命名空間相關聯的執行個體時,需要指定 ARN。

aws servicediscovery list-instances \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita

輸出:

{ "ResourceOwner": "123456789012", "Instances": [ { "Id": "web-server-01", "Attributes": { "AWS_INSTANCE_IPV4": "203.0.113.15", "AWS_INSTANCE_PORT": "80" }, "CreatedByAccount": "123456789012" }, { "Id": "web-server-02", "Attributes": { "AWS_INSTANCE_IPV4": "203.0.113.16", "AWS_INSTANCE_PORT": "80" }, "CreatedByAccount": "123456789012" } ] }

如需跨帳戶命名空間共用的詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的共用 Cloud Map 命名空間AWS 和列出 Cloud Map 服務執行個體 AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListInstances

以下程式碼範例顯示如何使用 list-namespaces

AWS CLI

範例 1:列出命名空間

下列 list-namespaces 範例列出命名空間。

aws servicediscovery list-namespaces

輸出:

{ "Namespaces": [ { "Id": "ns-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678", "ResourceOwner": "123456789012", "Name": "local", "Type": "DNS_PRIVATE", "Properties": { "DnsProperties": { "HostedZoneId": "Z06752353VBUDTC32S84S", "SOA": {} }, "HttpProperties": { "HttpName": "local" } }, "CreateDate": "2023-07-17T13:37:27.872000-05:00" }, { "Id": "ns-abcd1234xmpl9012", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl9012", "ResourceOwner": "123456789012", "Name": "My-second-namespace", "Type": "HTTP", "Description": "My second namespace", "Properties": { "DnsProperties": { "SOA": {} }, "HttpProperties": { "HttpName": "My-second-namespace" } }, "CreateDate": "2023-11-14T10:35:47.840000-06:00" } ] }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的列出 Cloud Map 命名空間AWS

範例 2:列出其他帳戶共用的命名空間

下列list-namespaces範例列出使用 RESOURCE_OWNER篩選條件的其他 AWS 帳戶與發起人帳戶共用的命名空間。

aws servicediscovery list-namespaces \ --filters Name=RESOURCE_OWNER,Values=OTHER_ACCOUNTS,Condition=EQ

輸出:

{ "Namespaces": [ { "Id": "ns-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789111:namespace/ns-abcd1234xmpl5678", "ResourceOwner": "123456789111", "Name": "shared-namespace", "Type": "HTTP", "Description": "Namespace shared from another account", "Properties": { "DnsProperties": { "SOA": {} }, "HttpProperties": { "HttpName": "shared-namespace" } }, "CreateDate": "2025-01-13T13:35:21.874000-06:00" } ] }

如需詳細資訊,請參閱《 AWS 雲端地圖開發人員指南》中的共用雲端地圖命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListNamespaces

以下程式碼範例顯示如何使用 list-operations

AWS CLI

列出符合指定條件的操作

下列 list-operations 範例列出狀態為 PENDINGSUCCESS 的操作。

aws servicediscovery list-operations \ --service-id srv-e4anhexample0004 \ --filters Name=STATUS,Condition=IN,Values=PENDING,SUCCESS

輸出:

{ "Operations": [ { "Id": "76yy8ovhpdz0plmjzbsnqgnrqvpv2qdt-kexample", "Status": "SUCCESS" }, { "Id": "prysnyzpji3u2ciy45nke83x2zanl7yk-dexample", "Status": "SUCCESS" }, { "Id": "ko4ekftir7kzlbechsh7xvcdgcpk66gh-7example", "Status": "PENDING" } ] }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的什麼是 AWS Cloud Map?。

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListOperations

以下程式碼範例顯示如何使用 list-services

AWS CLI

範例 1:列出服務

下列 list-services 範例會列出服務。

aws servicediscovery list-services

輸出:

{ "Services": [ { "Id": "srv-p5zdwlg5uvvzjita", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita", "Name": "myservice", "DnsConfig": { "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334 } ] }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的在命名空間中列出 Cloud Map 服務AWS

範例 2:列出在共用命名空間中建立的服務

下列list-services範例列出123456789012使用 RESOURCE_OWNER篩選條件的其他 AWS 帳戶在與發起人帳戶共用的命名空間中建立的服務。

aws servicediscovery list-services \ --filters Name=RESOURCE_OWNER,Values=OTHER_ACCOUNTS,Condition=EQ

輸出:

{ "Services": [ { "Id": "srv-abcd1234xmpl5678", "Arn": "arn:aws:servicediscovery:us-west-2:123456789111:service/srv-abcd1234xmpl5678", "ResourceOwner": "123456789111", "Name": "shared-service", "NamespaceId": "ns-abcd1234xmpl5678", "Type": "HTTP", "Description": "Service in shared namespace", "DnsConfig": {}, "CreateDate": "2025-01-13T13:35:21.874000-06:00", "CreatorRequestId": "abcd1234-5678-90ab-cdef-xmpl12345678", "CreatedByAccount": "123456789012" } ] }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的共用 Cloud Map 命名空間AWS 和在命名空間中列出 Cloud Map 服務 AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListServices

以下程式碼範例顯示如何使用 list-tags-for-resource

AWS CLI

列出與指定資源相關聯的標籤

以下 list-tags-for-resource 範例列出指定資源的標籤:

aws servicediscovery list-tags-for-resource \ --resource-arn arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-e4anhexample0004

輸出:

{ "Tags": [ { "Key": "Project", "Value": "Zeta" }, { "Key": "Department", "Value": "Engineering" } ] }

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的標記 Cloud Map 資源AWS

以下程式碼範例顯示如何使用 register-instance

AWS CLI

範例 1:使用服務 ID 註冊服務執行個體

下列 register-instance 範例註冊服務執行個體。

aws servicediscovery register-instance \ --service-id srv-p5zdwlg5uvvzjita \ --instance-id myservice-53 \ --attributes=AWS_INSTANCE_IPV4=172.2.1.3,AWS_INSTANCE_PORT=808

輸出:

{ "OperationId": "4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需註冊執行個體的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的將資源註冊為 Cloud Map 服務執行個體AWS

範例 2:使用服務 ARN 註冊服務執行個體

下列register-instance範例會使用服務 ARN 註冊服務執行個體。在與您帳戶共用的 服務中註冊執行個體時,需要指定 ARN。

aws servicediscovery register-instance \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita \ --instance-id web-server-01 \ --attributes=AWS_INSTANCE_IPV4=203.0.113.15,AWS_INSTANCE_PORT=80

輸出:

{ "OperationId": "gv4g5meo7ndmkqjrhpn39wk42xmpl" }

如需跨帳戶命名空間共用的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的共用雲端地圖命名空間AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 RegisterInstance

以下程式碼範例顯示如何使用 tag-resource

AWS CLI

建立標籤與指定資源的關聯

下列 tag-resource 範例為 Department 標籤與值 Engineering 和指定的命名空間建立關聯。

aws servicediscovery tag-resource \ --resource-arn arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-e4anhexample0004 \ --tags Key=Department, Value=Engineering

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的標記 Cloud Map 資源AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 TagResource

以下程式碼範例顯示如何使用 untag-resource

AWS CLI

從指定的資源移除標籤

下列 untag-resource 範例會從指定的命名空間移除 Department 標籤。

aws servicediscovery untag-resource \ --resource-arn arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-e4anhexample0004 \ --tags Key=Department, Value=Engineering

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的標記 Cloud Map 資源AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UntagResource

以下程式碼範例顯示如何使用 update-http-namespace

AWS CLI

範例 1:更新 HTTP 命名空間

下列 update-http-namespace 範例更新指定之 HTTP 命名空間的描述。

aws servicediscovery update-http-namespace \ --id ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

若要確認操作成功,您可以執行 get-operation。如需詳細資訊,請參閱 get-operation

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

範例 2:使用 ARN 更新 HTTP 命名空間

下列update-http-namespace範例會使用其 ARN 更新指定的 HTTP 命名空間。

aws servicediscovery update-http-namespace \ --id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

以下程式碼範例顯示如何使用 update-instance-custom-health-status

AWS CLI

範例 1:更新自訂運作狀態檢查

下列 update-instance-custom-health-status 範例將指定服務和範例服務執行個體的自訂運作狀態檢查狀態,更新為 HEALTHY

aws servicediscovery update-instance-custom-health-status \ --service-id srv-e4anhexample0004 \ --instance-id example \ --status HEALTHY

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務運作狀態檢查組態

範例 2:使用服務 ARN 更新自訂運作狀態檢查

下列update-instance-custom-health-status範例會使用服務 ARN 更新自訂運作狀態檢查的狀態。更新與與您帳戶共用的命名空間相關聯之執行個體的運作狀態時,需要 ARN。

aws servicediscovery update-instance-custom-health-status \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita \ --instance-id web-server-01 \ --status HEALTHY

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的 Cloud Map 服務運作狀態檢查組態跨帳戶 Cloud Map 命名空間共用 AWSAWS

以下程式碼範例顯示如何使用 update-private-dns-namespace

AWS CLI

範例 1:使用 ID 更新私有 DNS 命名空間

下列update-private-dns-namespace範例會使用命名空間 ID 更新私有 DNS 命名空間的描述。

aws servicediscovery update-private-dns-namespace \ --id ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

若要確認操作成功,您可以執行 get-operation

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

範例 2:使用 ARN 更新私有 DNS 命名空間

下列update-private-dns-namespace範例會使用私有 DNS 命名空間的 ARN 來更新私有 DNS 命名空間。

aws servicediscovery update-private-dns-namespace \ --id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

以下程式碼範例顯示如何使用 update-public-dns-namespace

AWS CLI

範例 1:使用 ID 更新公有 DNS 命名空間

下列update-public-dns-namespace範例會使用公有 DNS 命名空間的 ID 更新其描述。

aws servicediscovery update-public-dns-namespace \ --id ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

若要確認操作成功,您可以執行 get-operation

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

範例 2:使用 ARN 更新公有 DNS 命名空間

下列update-public-dns-namespace範例會使用其 ARN 更新公有 DNS 命名空間。

aws servicediscovery update-public-dns-namespace \ --id arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcd1234xmpl5678 \ --updater-request-id abcd1234-5678-90ab-cdef-xmpl12345678 \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 命名空間

以下程式碼範例顯示如何使用 update-service-attributes

AWS CLI

範例 1:更新服務以新增屬性

下列 update-service-attributes 範例會更新指定的服務,以新增具有索引鍵 Port 和值 80 的服務屬性。

aws servicediscovery update-service-attributes \ --service-id srv-abcd1234xmpl5678 \ --attributes Port=80

此命令不會產生輸出。

如需詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的 AWS Cloud Map 服務

範例 2:使用 ARN 更新服務屬性

下列update-service-attributes範例會使用服務 ARN 來更新服務,以新增服務屬性。若要將屬性新增至與您帳戶共用的命名空間中建立的服務,必須指定 ARN。

aws servicediscovery update-service-attributes \ --service-id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678 \ --attributes Port=80

此命令不會產生輸出。

如需詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的 Cloud Map 服務和AWS 共用 Cloud Map 命名空間 AWS

以下程式碼範例顯示如何使用 update-service

AWS CLI

範例 1:更新服務

下列 update-service 範例會更新服務以更新 DnsConfigHealthCheckConfig 設定。

aws servicediscovery update-service \ --id srv-abcd1234xmpl5678 \ --service "DnsConfig={DnsRecords=[{Type=A,TTL=60}]},HealthCheckConfig={Type=HTTP,ResourcePath=/,FailureThreshold=2}"

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

若要確認操作成功,您可以執行 get-operation

如需更新服務的詳細資訊,請參閱《AWS Cloud Map 開發人員指南》中的更新 Cloud Map 服務AWS

範例 2:使用 ARN 更新服務

下列update-service範例會使用服務 ARN 更新服務。在與您帳戶共用的命名空間中建立的服務需要指定 ARN。

aws servicediscovery update-service \ --id arn:aws:servicediscovery:us-west-2:123456789012:service/srv-abcd1234xmpl5678 \ --service "DnsConfig={DnsRecords=[{Type=A,TTL=60}]},HealthCheckConfig={Type=HTTP,ResourcePath=/,FailureThreshold=2}"

輸出:

{ "OperationId": "abcd1234-5678-90ab-cdef-xmpl12345678" }

如需更新服務的詳細資訊,請參閱AWS 《Cloud Map 開發人員指南》中的更新 Cloud Map 服務和AWS 共用 Cloud Map 命名空間 AWS

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 UpdateService