Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将资源注册为 Amazon Cloud Map 服务实例
您可以将应用程序的资源注册为 Amazon Cloud Map 服务中的实例。例如,假设您已users为管理用户数据的所有应用程序资源创建了一个名为的服务。然后,您可以将用于存储用户数据的 DynamoDB 表注册为该服务的实例。
Amazon Cloud Map 控制台上不提供以下功能:
-
使用控制台注册服务实例时,您无法创建将流量路由到 ELB (ELB) 负载均衡器的别名记录。在注册实例时,您必须包含 AWS_ALIAS_DNS_NAME 属性。有关更多信息,请参阅《Amazon Cloud Map API Reference》中的 RegisterInstance。
-
如果您使用包含自定义运行状况检查的服务注册实例,则无法为自定义运行状况检查指定初始状态。默认情况下,自定义运行状况检查的初始状态为 Healthy (正常)。如果您希望初始运行状况为 Unhealthy (不正常),请以编程方式注册实例并包含 AWS_INIT_HEALTH_STATUS 属性。有关更多信息,请参阅《Amazon Cloud Map API Reference》中的 RegisterInstance。
要在服务中注册实例,请按照以下步骤操作。
- Amazon Web Services 管理控制台
-
登录 Amazon Web Services 管理控制台 并打开 Amazon Cloud Map 控制台,网址为https://console.aws.amazon.com/cloudmap/。
-
在导航窗格中,选择 Namespaces (命名空间)。
-
在 Namespaces (命名空间) 页面上,选择包含要用作服务实例注册模板的服务。
-
在 “命名空间:namespace-name” 页面上,选择要使用的服务。
-
在服务:service-name页面上,选择注册服务实例。
-
在注册服务实例页面上,选择实例类型。根据命名空间实例发现配置,您可以选择为没有 IP 地址的资源指定 IP 地址、Amazon EC2 实例 ID 或其他识别信息。
-
对于服务实例 ID,请提供与服务实例关联的标识符。
如果您想更新现有实例,请提供与您要更新的实例关联的标识符。然后,按照后续步骤更新值并重新注册实例。
-
根据您选择的实例类型,执行以下步骤。
指定自定义属性时,不能在密钥中使用AWS_前缀(不区分大小写)。
| 实例类型 |
步骤 |
|
IP 地址
|
-
在标准属性下,为IPv4地址提供一个 IPv4 地址(如果有),您的应用程序可以在其中访问与此服务实例关联的资源。
-
对于IPv6 地址,请提供一个 IPv6 IP 地址(如果有),您的应用程序可以在该地址中访问与此服务实例关联的资源。
-
对于端口,请指定您的应用程序必须包含的任何端口,以访问与此服务实例关联的资源。如果服务包含 SRV 记录或 Amazon Route 53 运行状况检查,则需要@@ 端口。
-
(可选)在 “自定义属性” 下,指定要与资源关联的任何键值对。
|
| EC2 实例 |
-
EC2 例如 ID,请选择要注册为 Amazon Cloud Map 服务 EC2实例的 Amazon 实例的 ID。
-
(可选)在 “自定义属性” 下,指定要与资源关联的任何键值对。
|
| 识别其他资源的信息 |
-
在 “标准属性” 下,如果服务配置包含 CNAME DNS 记录,您将看到一个 CNAME 字段。对于 CNAME,请指定您希望 Route 53 在响应 DNS 查询时返回的域名(例如,example.com)。
-
在 “自定义属性” 下,将不是 IP 地址或 Amazon EC2 实例 ID 的资源的任何识别信息指定为键值对。例如,您可以通过指定名为的密钥function并提供 Lambda 函数的名称作为值来注册 Lambda 函数。您也可以指定名为的密钥name并提供可用于编程实例发现的名称。
|
-
选择 Register service instance (注册服务实例)。
- Amazon CLI
-
-
当您提交 RegisterInstance 请求时:
使用register-instance命令注册服务实例(将red值替换为自己的值)。
aws servicediscovery register-instance \
--service-id srv-xxxxxxxxx \
--instance-id myservice-xx \
--attributes=AWS_INSTANCE_IPV4=172.2.1.3,AWS_INSTANCE_PORT=808
- Amazon SDK for Python (Boto3)
-
-
如果您尚未安装 Boto3,则可以在此处找到安装、配置和使用Boto3的说明。
-
导入 Boto3 并将 servicediscovery 用作您的服务。
import boto3
client = boto3.client('servicediscovery')
-
当您提交 RegisterInstance 请求时:
向注册服务实例register_instance()(将red值替换为您自己的值)。
response = client.register_instance(
Attributes={
'AWS_INSTANCE_IPV4': '172.2.1.3',
'AWS_INSTANCE_PORT': '808',
},
InstanceId='myservice-xx',
ServiceId='srv-xxxxxxxxx',
)
# If you want to see the response
print(response)
示例响应输出
{
'OperationId': '4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7',
'ResponseMetadata': {
'...': '...',
},
}