- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 经过大量的研究和试错,我确定您不能将Cloud Map服务健康检查与ECS服务连接组合使用。通过使用Cloud Map服务的容器健康检查,在Cloud Map服务中的新容器实例在通过容器健康检查之前将不健康,并且因此在准备好之前无法接收流量。我已经证明了这一点,但您将失去ECS服务连接的可发现性/命名。
以下是我找到的一些参考文献:
- < https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html> (请参见“服务发现注意事项”部分以及列表底部的粗体“HealthCheckCustomConfig”项目。)
- < https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html>(描述如何利用自定义健康检查)
问题具体在于DiscoveryName属性(AWS :: ECS :: Service ServiceConnectConfiguration.Services.DiscoveryName)。根据https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectservice.html,“discoveryName是Amazon ECS为此Amazon ECS服务创建的新AWS Cloud Map服务的名称”。这是关键,因为CloudFormation始终尝试创建服务,并在名称已存在时失败。要使此工作,CloudFormation(或API / SDK)构建/部署逻辑必须更改为仅在名称不存在时才创建服务名称 - 否则链接/引用现有的Cloud Map服务。另一种选择是允许在ServiceConnectConfiguration.Services对象中定义健康检查。
如果您可以链接到现有的Cloud Map服务,则下面的步骤将起作用(但目前不起作用):
*创建Cloud Map命名空间(AWS :: ServiceDiscovery :: HttpNamespace) *创建Cloud Map服务(AWS :: ServiceDiscovery :: Service) - >指定仅包含FailureThreshold的HealthCheckCustomConfig
*创建任务定义(AWS :: ECS :: TaskDefinition) -
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前