创建服务时指定的值 - Amazon Cloud Map
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建服务时指定的值

在创建 Amazon Cloud Map 服务时,请指定以下值。

注意

您只能在创建服务后更改其标签。

Service name (服务名称)

输入一个名称,用于描述您在使用此服务时注册的实例。该值用于发现Amazon Cloud Map服务实例在 API 调用或 DNS 查询中。这取决于您在创建命名空间时选择的实例发现方法。您可以使用以下方法之一:

  • API 调用— 当您的应用程序调用DiscoverInstances,API 调用将包含命名空间和服务名称。

  • VPC 中的 API 调用和 DNS 查询或者API 调用和公共 DNS 查询— 注册服务实例并创建命名空间时,Amazon Cloud Map创建 Amazon Route 53 私有或公有托管区域。它还会在该托管区域中创建 DNS 记录。记录的名称采用以下格式:

    service-name.namespace-name

    在应用程序提交 DNS 查询以发现服务实例时,该查询针对的是将服务名称包含在记录名称中的记录。

注意

在支持 DNS 查询的命名空间中创建服务时,您可以选择让该服务的服务实例仅通过调用DiscoverInstancesAPI 操作而不是 DNS 查询。请参阅 Service discovery configuration

如果您想Amazon Cloud Map创建SRV记录当您注册实例并且您使用的系统需要特定SRV格式(例如HAProxy),请为指定以下内容Service name (服务名称)

  • 名称以下划线 (_) 开头,例如_ 示例服务.

  • 以名称结尾. _ 协议,例如,. _tcp.

在您注册实例时,Amazon Cloud Map 会创建 SRV 记录并通过将服务名称和命名空间名称联接起来为其指定名称,例如:

_exampleservice._tcp.example.com

注意

对于可通过 DNS 查询发现的服务,您不能创建多个名称仅因大小写而异的服务(例如示例和示例)。否则,这些服务具有相同的 DNS 名称,无法区分。

服务描述

输入服务的描述。您在此处输入的值将显示在 Services (服务) 页面以及每个服务的详细信息页面上。

服务发现配置

如果命名空间支持 DNS 查询,Amazon Cloud Map支持以下服务发现选项:

API 和 DNS

Amazon Cloud Map将创建SRV在为服务注册实例时记录。服务实例也可以使用DiscoverInstancesAPI 操作。

仅限 API

Amazon Cloud Map将不会创建SRV记录为服务实例。服务实例只能使用DiscoverInstancesAPI 操作。

路由策略(仅限公有和私有 DNS 命名空间)

如果您使用公有或私有 DNS 命名空间创建服务,请选择 Amazon Route 53 路由策略,以适用于Amazon Cloud Map注册实例时创建。(公有 DNS 命名空间的值为 API calls and public DNS queries (API 调用和公共 DNS 查询),针对的是 Instance discovery (实例发现);私有 DNS 命名空间的值为 API calls and DNS queries in VPCs (VPC 中的 API 调用和 DNS 查询)。)

注意

您不能使用控制台配置Amazon Cloud Map以在您注册实例时创建 Route 53 别名记录。如果您想Amazon Cloud Map以编程方式注册实例时,为 Elastic Load Balancing 器创建别名记录,请选择加权路由对于 来说为路由策略.

Amazon Cloud Map支持以下 Route 53 路由策略:

加权路由

Route 53 从一个随机选择的实例(来自您使用同一服务注册的实例)返回适用的值。所有记录都具有相同的权重,因此,您无法将更多或更少的流量路由到任何实例。

例如,假设服务包含针对一个A记录和运行状况检查,并且您使用服务注册 10 个实例。Route 53 使用来自运行正常的实例中的一个随机选定实例的 IP 地址来响应 DNS 查询。如果没有运行正常的实例,Route 53 会像所有实例都运行正常那样响应 DNS 查询。

如果您没有为服务定义运行状况检查,Route 53 会假定所有实例都运行正常,并为随机选择的一个实例返回适用的值。

有关更多信息,请参阅 。加权路由中的Amazon Route 53 开发人员指南.

多值应答路由

如果您为服务定义了运行状况检查,并且运行状况检查的结果为正常,则 Route 53 将为最多 8 个实例返回适用的值。

例如,假设服务包含针对一个A记录和运行状况检查。您使用服务注册 10 个实例。Route 53 将使用 IP 地址响应 DNS 查询,最多只针对 8 个正常运行的实例。如果正常运行的实例少于 8 个,Route 53 将使用所有正常运行的实例的 IP 地址来响应每个 DNS 查询。

如果您没有为服务定义运行状况检查,Route 53 将假定所有实例都是正常运行的,并为最多 8 个实例返回值。

有关更多信息,请参阅 。多值应答路由中的Amazon Route 53 开发人员指南.

记录类型(仅限公有和私有 DNS 命名空间)

如果您使用公有或私有 DNS 命名空间创建服务,请选择以下记录的 DNS 记录类型:Amazon Cloud Map注册实例时创建。Amazon Route 53 将返回适用的值以响应针对已注册实例的 DNS 查询。

支持以下记录类型:

A

注册实例时,以 IPv4 格式指定资源的 IP 地址(如 192.0.2.44)。

AAAA

注册实例时,以 IPv6 格式指定资源的 IP 地址(如 2001:0db8:85a3:0000:0000:abcd:0001:2345)。

别名记录

在注册实例时,指定资源的域名(如 www.example.com)。请注意以下几点:

  • 如果您想选择CNAME,您必须选择加权路由对于 来说为路由策略.

  • 如果选择CNAME,则无法选择Route 53 运行状况检查对于 来说为运行状况检查选项.

SRV

SRV 记录的值使用以下值:

priority weight port service-hostname

请记下有关这些值的以下内容:

  • priorityweight 的值都设置为 1,且无法更改。

  • 对于 port,Amazon Cloud Map 将使用您在注册实例时为 Port (端口) 指定的值。

  • service-hostname 的值可以是以下值的联接:

    • 您在注册实例时为 Service instance ID (服务实例 ID) 指定的值

    • 服务的名称

    • 命名空间的名称

    例如,假设您指定测试对于 来说为服务实例 ID注册一个实例时。服务的名称是Backend命名空间的名称是example.com.Amazon Cloud Map将以下值分配给service-hostname中的属性SRV记录:

    test.backend.example.com

如果您为 SRV 记录指定设置,请注意以下事项:

  • 如果指定IPv4 地址IPv6 地址,或同时使用两者,Amazon Cloud Map自动创建A和/或AAAAAAA与值相同名称的记录service-hostname中的SRV记录。

  • 如果您使用的系统需要特定的 SRV 格式(例如 HAProxy),请参阅服务名称,了解如何指定正确的名称格式。

您可按以下组合指定记录类型:

  • A

  • AAAA

  • AAAAA

  • 别名记录

  • SRV

如果您指定了 AAAAA 记录类型,则可以在注册实例时指定 IPv4 IP 地址和/或 IPv6 IP 地址。

TTL(仅限公有和私有 DNS 命名空间)

如果您使用公有或私有 DNS 命名空间创建服务,请为TTTTTL,或生存期。的值TTTTTL将确定 DNS 解析程序在将其他 DNS 查询转发到 Amazon Route 53 以获取更新后的设置之前缓存此记录的信息的时长。

运行状况检查选项

没有运行状况检查

如果您未配置运行状况检查,无论服务实例的运行状况是否良好,流量都将路由到服务实例。

Route 53 运行状况检查(不受私有 DNS 命名空间)

如果您为 Amazon Route 53 运行状况检查指定设置,Amazon Cloud Map每当您注册实例时创建 Route 53 运行状况检查,并在您取消注册实例时删除运行状况检查。

对于公共 DNS 命名空间,Amazon Cloud Map将运行状况检查与 Route 53 记录相关联Amazon Cloud Map在注册实例时创建。

对于您使用 API 调用来发现其实例的命名空间,Amazon Cloud Map创建 Route 53 运行状况检查。但是,没有Amazon Cloud Map将运行状况检查与关联。要确定运行状况检查是否运行良好,您可以使用 Route 53 控制台或 Amazon CloudWatch 配置监控。有关如何使用 Route 53 控制台的更多信息,请参阅在运行状况检查失败时获取通知中的Amazon Route 53 开发人员指南. 有关如何使用 CloudWatch 的更多信息,请参阅。PutMetricAlarm中的Amazon CloudWatch API 参考.

有关 Route 53 运行状况检查的费用信息,请参阅Route 53.

自定义运行状况检查

如果您将 Amazon Cloud Map 配置为在您注册实例时使用自定义运行状况检查,则必须使用第三方运行状况检查程序来评估资源的运行状况。自定义运行状况检查在以下情况下很有用:

  • 您无法使用 Route 53 运行状况检查,因为无法通过 Internet 获得资源。例如,假设您有一个位于 Amazon VPC 中的实例。您可以对此实例使用自定义运行状况检查。但是,要使运行状况检查工作起作用,您的运行状况检查程序还必须与您的实例位于同一个 VPC 中。

  • 您希望使用第三方运行状况检查程序,而不管您的资源位于何处。

故障阈值(仅限 Route 53 运行状况检查)

Amazon Route 53 将资源的当前状态从运行状况不佳改为运行状况良好或从运行状况良好改为运行状况不佳时,所必须通过或失败的连续 Route 53 运行状况检查次数。有关更多信息,请参阅 。Amazon Route 53 如何确定运行 Health 检查是否运行良好 Amazon Route 53 开发人员指南.

运行 Health 检查协议(仅限 Route 53 运行状况检查)

您希望 Amazon Route 53 用于检查资源运行状况的方法:

HTTP

Route 53 尝试建立 TCP 连接。如果成功,Route 53 将提交 HTTP 请求并等待 2xx 或 3xx 格式的 HTTP 状态代码。

HTTPS

Route 53 尝试建立 TCP 连接。如果成功,Route 53 将提交 HTTPS 请求并等待 2xx 或 3xx 格式的 HTTP 状态代码。

重要

如果您选择 HTTPS,则资源必须支持 TLS v1.0 或更高版本。

如果您选择 HTTPS 作为运行状况检查协议,将收取额外费用。有关更多信息,请参阅 。Route 53 定价.

TCP

Route 53 尝试建立 TCP 连接。

有关更多信息,请参阅 。Amazon Route 53 如何确定运行 Health 检查是否运行良好.

运行 Health 况检查路径(仅限路 Route 53 HTTP 和 HTTPS 运行状况检查)

您希望 Amazon Route 53 在执行运行状况检查时请求的路径。路径可以是任何值,例如/docs/route53-health-check.html. 如果资源运行状况良好,返回的值为 2xx 或 3xx 格式的 HTTP 状态代码。您也可以包括查询字符串参数,例如,/welcome.html?language=jp&login=y。Amazon Cloud Map 控制台将自动添加一个前导斜杠 (/) 字符。

标签

您可以指定一个或多个要添加到服务的标签。标签是您可以分配给Amazon资源。每个标签均包含一个键 和一个值。例如,您可以使用 “键 = 环境” 和 “值 = 生产” 来定义标签。使用标签进行分类Amazon资源可以使管理这些资源变得更加轻松。

创建标签后,您可以随时更新或删除命名空间上的标签。有关更多信息,请参阅 给您的 Amazon Cloud Map 资源加标签