使用 AWS CLI 的 AWS Cloud Map 範例 - AWS Command Line Interface

使用 AWS CLI 的 AWS Cloud Map 範例

下列程式碼範例示範如何使用 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 開發人員指南》中的建立 AWS Cloud Map 命名空間以將應用程式服務分組

以下程式碼範例顯示如何使用 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 開發人員指南》中的建立 AWS Cloud Map 命名空間以將應用程式服務分組

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

AWS CLI

建立服務

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

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

輸出:

{ "Service": { "Id": "srv-p5zdwlg5uvvzjita", "Arn": "arn:aws:servicediscovery:us-west-2:803642222207:service/srv-p5zdwlg5uvvzjita", "Name": "myservice", "NamespaceId": "ns-ylexjili4cdxy3xm", "DnsConfig": { "NamespaceId": "ns-ylexjili4cdxy3xm", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }

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

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

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

AWS CLI

刪除命名空間

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

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

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k98y6drk" }

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

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

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

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

AWS CLI

刪除服務屬性

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

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

此命令不會產生輸出。

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

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

AWS CLI

刪除服務

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

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

此命令不會產生輸出。

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

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

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

AWS CLI

取消註冊服務執行個體

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

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

輸出:

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

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

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

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

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

AWS CLI

探索執行個體的修訂

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

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

輸出:

{ "InstancesRevision": 123456 }

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

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

AWS CLI

探索已註冊的執行個體

下列 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" } } ] }

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

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

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

AWS CLI

取得執行個體的詳細資訊

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

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

輸出:

{ "Instances": { "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" } } }

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

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

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

AWS CLI

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

下列 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 服務執行個體

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

AWS CLI

取得命名空間的詳細資訊

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

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

輸出:

{ "Namespaces": { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-e4anhexample0004", "CreateDate": "20181118T211712Z", "CreatorRequestId": "example-creator-request-id-0001", "Description": "Example.com AWS Cloud Map HTTP Namespace", "Id": "ns-e4anhexample0004", "Name": "example-http.com", "Properties": { "DnsProperties": {}, "HttpProperties": { "HttpName": "example-http.com" } }, "Type": "HTTP" } }

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

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

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

AWS CLI

取得操作的結果

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

aws servicediscovery get-operation \ --operation-id gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd

輸出:

{ "Operation": { "Id": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd", "Type": "CREATE_NAMESPACE", "Status": "SUCCESS", "CreateDate": 1587055860.121, "UpdateDate": 1587055900.469, "Targets": { "NAMESPACE": "ns-ylexjili4cdxy3xm" } } }

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

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

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

AWS CLI

取得服務的屬性

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

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

輸出:

{ "ServiceAttributes": { "ServiceArn": "arn:aws:servicediscovery:us-west-2:111122223333;:service/srv-e4anhexample0004", "Attributes": { "Port": "80" } } }

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

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

AWS CLI

取得服務的設定

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

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

輸出:

{ "Service": { "Id": "srv-e4anhexample0004", "Arn": "arn:aws:servicediscovery:us-west-2:111122223333:service/srv-e4anhexample0004", "Name": "test-service", "NamespaceId": "ns-e4anhexample0004", "DnsConfig": {}, "Type": "HTTP", "CreateDate": "2025-02-24T10:59:02.905000-06:00", "CreatorRequestId": "3f50f9d9-b14c-482e-a556-d2a22fe6106d" } }

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

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

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

AWS CLI

列出服務執行個體

下列 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" } } ] }

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

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

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

AWS CLI

列出命名空間

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

aws servicediscovery list-namespaces

輸出:

{ "Namespaces": [ { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-a3ccy2e7e3a7rile", "CreateDate": 1585354387.357, "Id": "ns-a3ccy2e7e3a7rile", "Name": "local", "Properties": { "DnsProperties": { "HostedZoneId": "Z06752353VBUDTC32S84S" }, "HttpProperties": { "HttpName": "local" } }, "Type": "DNS_PRIVATE" }, { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-pocfyjtrsmwtvcxx", "CreateDate": 1586468974.698, "Description": "My second namespace", "Id": "ns-pocfyjtrsmwtvcxx", "Name": "My-second-namespace", "Properties": { "DnsProperties": {}, "HttpProperties": { "HttpName": "My-second-namespace" } }, "Type": "HTTP" }, { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-ylexjili4cdxy3xm", "CreateDate": 1587055896.798, "Id": "ns-ylexjili4cdxy3xm", "Name": "example.com", "Properties": { "DnsProperties": { "HostedZoneId": "Z09983722P0QME1B3KC8I" }, "HttpProperties": { "HttpName": "example.com" } }, "Type": "DNS_PRIVATE" } ] }

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

  • 如需 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

列出服務

下列 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 開發人員指南》中的檢視服務清單

  • 如需 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 開發人員指南》中的標記您的 AWS Cloud Map 資源

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

AWS CLI

註冊服務執行個體

下列 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 開發人員指南》中的註冊執行個體

  • 如需 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 開發人員指南》中的標記您的 AWS Cloud Map 資源

  • 如需 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 開發人員指南》中的標記您的 AWS Cloud Map 資源

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

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

AWS CLI

更新 HTTP 命名空間

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

aws servicediscovery update-http-namespace \ --id ns-vh4nbmEXAMPLE \ --updater-request-id example-request-id \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

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

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

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

AWS CLI

更新自訂運作狀態檢查

下列 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 服務運作狀態檢查組態

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

AWS CLI

更新私有 DNS 命名空間

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

aws servicediscovery update-private-dns-namespace \ --id ns-bk3aEXAMPLE \ --updater-request-id example-private-request-id \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

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

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

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

AWS CLI

更新公有 DNS 命名空間

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

aws servicediscovery update-public-dns-namespace \ --id ns-bk3aEXAMPLE \ --updater-request-id example-public-request-id \ --namespace Description="The updated namespace description."

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

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

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

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

AWS CLI

更新服務以新增屬性

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

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

此命令不會產生輸出。

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

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

AWS CLI

更新服務

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

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

輸出:

{ "OperationId": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd" }

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

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

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