我是aws的新手,在尝试在ECS群集中创建EC2服务时遇到了一些问题。
我能够在cluster1中成功创建一个全新的服务(service1),但是之后,我决定删除cluster1并创建cluster2。当我尝试在cluster2中重新创建service1时出现了问题。每当我尝试添加服务时,都会出现以下错误
creation failed: Service already exists. (Service: AWSServiceDiscovery; Status Code: 400; Error Code: ServiceAlreadyExists; Request ID: d854025e-ebcc-11e8-84ab-b3bac906f2ef)
有人知道如何解决此问题吗?我曾尝试注销任务定义,但没有成功。 cluster1已被删除,并且cluster2中没有任何服务
答案 0 :(得分:8)
这里是完整答案。创建AWS ECS服务时,还为其选择了可选的ServiceDiscovery,它在Route53中创建了名称空间(.local)和服务(与ECS服务同名)。
删除ECS服务和群集时,它不会自动删除Route53名称空间/服务条目。现在,由于新的ECS服务与ServiceDiscovery服务具有相同的名称,因此出现Service already exists
错误。您有3个选择。 1.清理Route53命名空间和服务。 2.如果要继续使用ServiceDiscovery功能,请重新使用Route53服务。 3.创建ECS服务时,请勿启用服务发现集成。
选项1 -
aws servicediscovery list-services
{ “服务”: [ { “ Id”:“ srv-x4acveybedar32mv”, “ Arn”:“ arn:aws:servicediscovery:us-east-1:1234567890:service / srv-x4acveybedar32mv”, “名称”:“ nginx” } ]}
aws servicediscovery list-namespaces
{ “命名空间”:[ { “ Id”:“ ns-3yd7pskwsxhwlq67”, “ Arn”:“ arn:aws:servicediscovery:us-east-1:1234567890:namespace / ns-3yd7pskwsxhwlq67”, “名称”:“本地”, “类型”:“ DNS_PRIVATE” } ]}
aws servicediscovery delete-service --id "srv-x4acveybedar32mv"
。结果是来自CLI的空响应。aws servicediscovery delete-namespace --id "ns-3yd7pskwsxhwlq67"
{ “ OperationId”:“ s573v5dr62yee5d7vbfvsy5h65ybxmoh-jossalgs”}
有时候,DNS清理操作需要花费几分钟才能正确反映出来,因此在重试之前通常只花几分钟。
选项2 -
答案 1 :(得分:0)
应该从 AWS Cloud Map 服务中删除。 使用AWS Cloud Map的ECS服务发现(基于DNS)。
此问题的用例。使用服务发现(基于DNS),在不删除服务发现的情况下删除ECS服务(在未设置控制台的复选框中,用于从DNS专用区域中删除整个复选框)。 尝试创建具有现有整体的服务。
AWS Cloud Map管理服务发现(和DNS专用区域)。
步骤:
1.转到AWS Cloud Map enter image description here
2.删除enter image description here