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