我是 AWS 新手,在尝试在 ECS 集群中创建 EC2 服务时遇到了一些问题。
我能够在 service1
中成功创建全新的服务 (cluster1
) ,但后来我决定删除cluster1
并创建 cluster2
.当我尝试重新创建 service1
时出现问题在 cluster2
.每当我尝试添加服务时,我都会收到以下错误
creation failed: Service already exists. (Service: AWSServiceDiscovery; Status Code: 400; Error Code: ServiceAlreadyExists; Request ID: d854025e-ebcc-11e8-84ab-b3bac906f2ef)
有谁知道如何解决这个问题?我曾尝试取消注册任务定义,但没有奏效。 cluster1
已删除,cluster2
中没有服务.
最佳答案
这是完整的答案。当您创建 AWS ECS 服务并且您还为其选择了可选的 ServiceDiscovery 时,它在 Route53 中创建了一个命名空间(.local)和服务(与 ECS 服务同名)。
当您删除 ECS 服务和集群时,它不会自动删除 Route53 命名空间/服务条目。现在,您收到 Service already exists
错误,因为您的新 ECS 服务与 ServiceDiscovery 服务具有相同的名称。你有 3 个选项。 1. 清理 Route53 命名空间和服务。 2.如果您想继续使用ServiceDiscovery功能,请重新使用Route53服务。 3. 创建ECS服务时不要开启服务发现集成。
选项 1 -
aws servicediscovery list-services
{ "Services": [ { "Id": "srv-x4acveybedar32mv", "Arn": "arn:aws:servicediscovery:us-east-1:1234567890:service/srv-x4acveybedar32mv", "Name": "nginx" } ] }
aws servicediscovery list-namespaces
{ "Namespaces": [ { "Id": "ns-3yd7pskwsxhwlq67", "Arn": "arn:aws:servicediscovery:us-east-1:1234567890:namespace/ns-3yd7pskwsxhwlq67", "Name": "local", "Type": "DNS_PRIVATE" } ] }
aws servicediscovery delete-service --id "srv-x4acveybedar32mv"
。结果是来自 CLI 的空响应。 aws servicediscovery delete-namespace --id "ns-3yd7pskwsxhwlq67"
{ "OperationId": "s573v5dr62yee5d7vbfvsy5h65ybxmoh-jossalgs" }
笔记 -
有时,DNS 清理操作需要几分钟才能正确反射(reflect),所以在重试之前总是给几分钟。
选项 2 -
关于amazon-web-services - AWS 创建失败 : Service already exists.(服务:AWSServiceDiscovery;状态代码:400;错误代码:ServiceAlreadyExists;请求 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370256/