amazon-web-services - AWS 创建失败 : Service already exists.(服务:AWSServiceDiscovery;状态代码:400;错误代码:ServiceAlreadyExists;请求 ID)

标签 amazon-web-services amazon-ec2 amazon amazon-ecs

我是 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 -

  • 您无法通过控制台删除 Route53 ServiceDiscovery 命名空间和服务。您将需要使用 AWS CLI。(确保您已使用与您创建 ECS 的账户相同的 AWS key 配置 CLI)https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/index.html
  • 使用 CLI 列出命名空间和服务,使用您应该获得的以下命令和示例输出。
  • 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" }


  • 就是这样。现在,您可以重新创建您想要的 ECS 服务。

  • 笔记 -

    有时,DNS 清理操作需要几分钟才能正确反射(reflect),所以在重试之前总是给几分钟。

    选项 2 -
  • 通过选择退出而不是使用相同名称创建来重用 Route53 服务。

  • enter image description here

    关于amazon-web-services - AWS 创建失败 : Service already exists.(服务:AWSServiceDiscovery;状态代码:400;错误代码:ServiceAlreadyExists;请求 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370256/

    相关文章:

    android - 使用eclipse生成apk文件以将应用程序提交到亚马逊的最佳方法是什么?

    ios - 如何在 iOS 应用中获取亚马逊产品评论和排名信息?

    amazon-web-services - 云信息错误: Property validation failure: [Encountered unsupported properties in {/}: [UserData]]

    aggregate - Elastic MapReduce 中的可用缩减器

    scala - AWS Lambda处理程序抛出带有Scala泛型的ClassCastException

    linux - 为什么不在一个 Amazon EC2 实例上运行 Node.js 和 Neo4j

    amazon-web-services - 如何使用任何 AWS 服务切割/分块视频?

    amazon-web-services - EC2上的运行Expect脚本挂起,但是在手动调用时成功运行

    amazon-web-services - 我能否以编程方式获取 AWS 公共(public)证书?

    ruby-on-rails - 使用 Rails 和 Capistrano 部署在 EC2 上自动扩展