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

AWS Cloud Map使用 的 示例AWS CLI

以下代码示例演示如何通过将 AWS Command Line Interface与 AWS Cloud Map 结合使用,来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 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 Developer Guide》中的 Creating an AWS Cloud Map namespace to group application services

  • 有关 API 详细信息,请参阅《AWS CLI Command Reference》中的 CreateHttpNamespace

以下代码示例演示了如何使用 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 Developer Guide》中的 Creating an AWS Cloud Map namespace to group application services

以下代码示例演示了如何使用 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 开发人员指南》中的为应用程序组件创建 AWS Cloud Map 服务

示例 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 Cloud Map 开发人员指南》中的共享的 AWS Cloud Map 命名空间

  • 有关 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 开发人员指南》中的删除 AWS Cloud Map 命名空间

示例 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 开发人员指南》中的删除 AWS Cloud Map 命名空间

  • 有关 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 Developer Guide》中的 AWS Cloud Map services

示例 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 开发人员指南》中的 AWS Cloud Map 服务共享的 AWS Cloud Map 命名空间

以下代码示例演示了如何使用 delete-service

AWS CLI

示例 1:删除服务

以下 delete-service 示例删除一项服务。

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

此命令不生成任何输出。

有关更多信息,请参阅《AWS Cloud Map 开发人员指南》中的删除 AWS Cloud Map 服务

示例 2:使用 ARN 删除服务

以下 delete-service 示例使用服务 ARN 删除服务。

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

此命令不生成任何输出。

有关更多信息,请参阅《AWS Cloud Map 开发人员指南》中的删除 AWS Cloud Map 服务

  • 有关 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" }

有关更多信息,请参阅《AWS Cloud Map 开发人员指南》中的共享的 AWS Cloud Map 命名空间取消注册 AWS Cloud Map 服务实例

  • 有关 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 Developer Guide》中的 AWS Cloud Map service instances

示例 2:从特定所有者账户中发现实例的修订

以下 discover-instances-revision 示例从特定所有者账户中发现实例的修订。对于与您的账户共享的命名空间中的实例,必须使用 owner-account 参数。

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

输出:

{ "InstancesRevision": 1234567890 }

有关更多信息,请参阅《AWS Cloud Map 开发人员指南》中的共享的 AWS Cloud Map 命名空间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 Developer Guide》中的 AWS Cloud Map service instances

示例 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 开发人员指南》中的共享的 AWS Cloud Map 命名空间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 Developer Guide》中的 AWS Cloud Map service instances

示例 2:使用共享命名空间的服务 ARN 获取实例的详细信息

以下 get-instance 示例使用服务 ARN(而不是服务 ID)获取实例的属性。对于与您的账户共享的命名空间,在获取与这些命名空间关联的实例的详细信息时,必须指定 ARN。此示例中返回的实例是由在账户 123456789012 拥有的命名空间中的账户 123456789111 注册的。

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 开发人员指南》中的共享的 AWS Cloud Map 命名空间

  • 有关 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 Developer Guide》中的 AWS Cloud Map service instances

示例 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 开发人员指南》中的 AWS Cloud Map 服务实例共享的 AWS Cloud Map 命名空间

以下代码示例演示了如何使用 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 Developer Guide》中的 AWS Cloud Map namespaces

示例 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 Cloud Map 开发人员指南》中的共享的 AWS Cloud Map 命名空间

  • 有关 API 详细信息,请参阅《AWS CLI Command Reference》中的 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 Developer Guide》中的 Creating an AWS Cloud Map namespace to group application services

示例 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 Cloud Map 开发人员指南》中的共享的 AWS Cloud Map 命名空间

  • 有关 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 Developer Guide》中的 AWS Cloud Map services

示例 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 开发人员指南》中的 AWS Cloud Map 服务共享的 AWS Cloud Map 命名空间

以下代码示例演示了如何使用 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 Developer Guide》中的 AWS Cloud Map services

示例 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 开发人员指南》中的为应用程序组件创建 AWS Cloud Map 服务共享的 AWS Cloud Map 命名空间

  • 有关 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 开发人员指南》中的列出 AWS Cloud Map 服务实例

示例 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 开发人员指南》中的共享的 AWS Cloud Map 命名空间列出 AWS Cloud Map 服务实例

  • 有关 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 开发人员指南》中的列出 AWS Cloud Map 命名空间

示例 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 Cloud Map 开发人员指南》中的共享的 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 Developer Guide》中的 What is 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 开发人员指南》中的列出命名空间中的 AWS Cloud Map 服务

示例 2:列出在共享命名空间中创建的服务

以下 list-services 示例使用 RESOURCE_OWNER 筛选条件列出在通过其他 AWS 账户与调用者账户 123456789012 共享的命名空间中创建的服务。

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 开发人员指南》中的共享的 AWS Cloud Map 命名空间列出命名空间中的 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 Developer Guide》中的 Tagging your AWS Cloud Map resources

以下代码示例演示了如何使用 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 开发人员指南》中的将资源注册为 AWS Cloud Map 服务实例

示例 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 Cloud Map 命名空间

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RegisterInstance

以下代码示例演示了如何使用 tag-resource

AWS CLI

将标签与指定的资源相关联

以下 tag-resource 示例将值为 EngineeringDepartment 标签与指定的命名空间关联。

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

此命令不生成任何输出。

有关更多信息,请参阅《AWS Cloud Map Developer Guide》中的 Tagging your AWS Cloud Map resources

  • 有关 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 Developer Guide》中的 Tagging your AWS Cloud Map resources

  • 有关 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 Developer Guide》中的 AWS Cloud Map namespaces

示例 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 Developer Guide》中的 AWS Cloud Map namespaces

  • 有关 API 详细信息,请参阅《AWS CLI Command Reference》中的 UpdateHttpNamespace

以下代码示例演示了如何使用 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 Developer Guide》中的 AWS Cloud Map service health check configuration

示例 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 开发人员指南》中的 AWS Cloud Map 服务运行状况检查配置跨账户 AWS Cloud Map 命名空间共享

以下代码示例演示了如何使用 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 Developer Guide》中的 AWS Cloud Map namespaces

示例 2:使用 ARN 更新私有 DNS 命名空间

以下 update-private-dns-namespace 示例使用命名空间 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 Developer Guide》中的 AWS Cloud Map namespaces

以下代码示例演示了如何使用 update-public-dns-namespace

AWS CLI

示例 1:使用 ID 更新公共 DNS 命名空间

以下 update-public-dns-namespace 示例使用命名空间 ID 更新公共 DNS 命名空间的描述。

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 Developer Guide》中的 AWS Cloud Map namespaces

示例 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 Developer Guide》中的 AWS Cloud Map namespaces

以下代码示例演示了如何使用 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 Developer Guide》中的 AWS Cloud Map services

示例 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 开发人员指南》中的 AWS Cloud Map 服务共享的 AWS Cloud Map 命名空间

以下代码示例演示了如何使用 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 Developer Guide》中的 Updating an AWS Cloud Map service

示例 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 开发人员指南》中的更新 AWS Cloud Map 服务共享的 AWS Cloud Map 命名空间

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateService