AWS::ServiceDiscovery::Instance - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::ServiceDiscovery::Instance

一个复杂类型,其中包含有关 AWS Cloud Map 在您提交 RegisterInstance 请求时创建的实例的信息。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::ServiceDiscovery::Instance", "Properties" : { "InstanceAttributes" : Json, "InstanceId" : String, "ServiceId" : String } }

YAML

Type: AWS::ServiceDiscovery::Instance Properties: InstanceAttributes: Json InstanceId: String ServiceId: String

属性

InstanceAttributes

一个字符串,其中包含您在 ServiceId 中指定的服务的以下信息:

  • 适用于服务中定义的记录的属性。

  • 对于每个属性,为适用的值。

支持的属性键包括:

AWS_ALIAS_DNS_NAME

如果您希望 AWS Cloud Map 创建 Route 53 别名记录以将流量路由到 Elastic Load Balancing 负载均衡器,请指定与该负载均衡器关联的 DNS 名称。有关如何获取 DNS 名称的信息,请参阅主题 AliasTarget 中的“DNSName”。

请注意以下几点:

  • ServiceId 所指定的服务的配置必须包含 A 记录和/或 AAAA 记录的设置。

  • ServiceId 所指定的服务中,RoutingPolicy 的值必须为 WEIGHTED

  • 如果 ServiceId 所指定的服务包含 HealthCheckConfig 设置,则 AWS Cloud Map 将创建运行状况检查,但不会将运行状况检查与别名记录关联。

  • 自动命名当前不支持创建将流量路由到除 ELB 负载均衡器之外的 AWS 资源的别名记录。

  • 如果为 AWS_ALIAS_DNS_NAME 指定值,请不要为任何 AWS_INSTANCE 属性指定值。

AWS_INSTANCE_CNAME

如果服务配置包含一个 CNAME 记录,这是您希望 Route 53 返回以响应 DNS 查询的域名,例如 example.com

如果 ServiceId 指定的服务包括 CNAME 记录的设置,则该值是必需的。

AWS_INSTANCE_IPV4

如果服务配置包含一个 A 记录,这是您希望 Route 53 返回以响应 DNS 查询的 IPv4 地址,例如 192.0.2.44

如果 ServiceId 指定的服务包括 A 记录的设置,则该值是必需的。如果服务包括 SRV 记录的设置,则必须为 AWS_INSTANCE_IPV4 和/或 AWS_INSTANCE_IPV6 指定值。

AWS_INSTANCE_IPV6

如果服务配置包含一个 AAAA 记录,这是您希望 Route 53 返回以响应 DNS 查询的 IPv6 地址,例如 2001:0db8:85a3:0000:0000:abcd:0001:2345

如果 ServiceId 指定的服务包括 AAAA 记录的设置,则该值是必需的。如果服务包括 SRV 记录的设置,则必须为 AWS_INSTANCE_IPV4 和/或 AWS_INSTANCE_IPV6 指定值。

AWS_INSTANCE_PORT

如果服务包含一个 SRV 记录,则为您希望 Route 53 为端口返回的值。

如果服务包含 HealthCheckConfig,则为您希望 Route 53 将请求发送到的终端节点上的端口。

如果在创建服务时指定了 SRV 记录或 Route 53 运行状况检查的设置,则此值是必需的。

必需:是

类型:Json

Update requires: No interruption

InstanceId

要与实例关联的标识符。请注意以下几点:

  • 如果 ServiceId 所指定的服务包括 SRV 记录的设置,则自动将 InstanceId 的值作为 SRV 记录的值的一部分包含。有关更多信息,请参阅 DnsRecord > 类型

  • 您可以使用此值来更新现有实例。

  • 要注册新实例,您必须指定一个值,该值在您使用相同服务注册的实例中是唯一的。

  • 如果您指定现有的 InstanceIdServiceId,则 AWS Cloud Map 将更新现有 DNS 记录。如果还存在现有运行状况检查,则 AWS Cloud Map 将删除旧运行状况检查并创建新的运行状况检查。

    注意

    旧的运行状况检查不会立即被删除,因此,如果您提交了 ListHealthChecks 请求,旧的运行状况检查还会显示一段时间。

必需:否

类型:字符串

最高64

Update requires: Replacement

ServiceId

要用于实例设置的服务的 ID。

必需:是

类型:字符串

最高64

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回实例的 Id 的值,例如 i-abcd1234

For more information about using the Ref function, see Ref.

示例

提供实例的 IP 地址

以下示例为 ID 为 i-abcd1234 的实例提供 IPv4 和 IPV6 IP 地址。该实例使用 ID 为 srv-e4anhexample0004 的服务注册。

JSON

{ "Type": "AWS::ServiceDiscovery::Instance", "Properties": { "InstanceAttributes": { "AWS_INSTANCE_IPV4": "192.0.2.44", "AWS_INSTANCE_IPV6": "2001:0db8:85a3:0000:0000:abcd:0001:2345" }, "InstanceId": "i-abcd1234", "ServiceId": "srv-e4anhexample0004" } }

YAML

Type: AWS::ServiceDiscovery::Instance Properties: InstanceAttributes: AWS_INSTANCE_IPV4: 192.0.2.44 AWS_INSTANCE_IPV6: 2001:0db8:85a3:0000:0000:abcd:0001:2345 InstanceId: i-abcd1234 ServiceId: srv-e4anhexample0004

另请参阅