Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda ECS服务发现_Amazon Web Services_Aws Lambda_Amazon Ecs_Service Discovery - Fatal编程技术网

Amazon web services AWS Lambda ECS服务发现

Amazon web services AWS Lambda ECS服务发现,amazon-web-services,aws-lambda,amazon-ecs,service-discovery,Amazon Web Services,Aws Lambda,Amazon Ecs,Service Discovery,我正在尝试访问一个在ECS中运行的服务,该服务启用了服务发现。 目前,我无法解析dns。在这个问题上坚持了16个多小时 谷歌的所有链接都是紫色的:D我正在考虑谷歌搜索结果的第2页 不开玩笑,我很确定我错过了一个非常简单的愚蠢的细节来让一切顺利。 有人知道我应该看什么吗?是否有我可能遗漏的必要政策 这里有几个关键点我的情况。如果需要,可以提供更多信息 一切都是通过terraform 我正在使用一个私有名称空间 为lambda和服务设置相同的vpc 服务运行时,记录为SRV,并在route53中列

我正在尝试访问一个在ECS中运行的服务,该服务启用了
服务发现
。 目前,我无法解析dns。在这个问题上坚持了16个多小时

谷歌的所有链接都是紫色的:D我正在考虑谷歌搜索结果的第2页

不开玩笑,我很确定我错过了一个非常简单的愚蠢的细节来让一切顺利。 有人知道我应该看什么吗?是否有我可能遗漏的必要政策

这里有几个关键点我的情况。如果需要,可以提供更多信息

  • 一切都是通过
    terraform
  • 我正在使用一个私有名称空间
  • 为lambda和服务设置相同的vpc
  • 服务运行时,记录为
    SRV
    ,并在route53中列出
  • 如果我使用route53中记录下定义的ip,则可以访问该服务
  • 网络模式为“桥接”
  • lambda是python的,所以我尝试了
    dnspython
    来获取更多信息。我得到的只是
    NXDOMAIN
    错误
  • 我在同一个vpc中启动了一个ec2,使用了
    dig
    ,还得到了一个
    NXDOMAIN
    错误

问题在于terraform中vpc资源上缺少两个标志

resource "aws_vpc" "vpc" {
  cidr_block  = "10.0.0.0/16"
  **enable_dns_support**   = true
  **enable_dns_hostnames** = true
}

您可以共享您的服务发现配置吗?它可能是本地配置的(即,仅可在VPC中解析)。如果是这种情况,您的lambda也需要在VPC内运行。就是这样。它是一个私有名称空间,ecs服务和lambda在同一个vpc中。我知道,如果使用为dns工作分配的ip地址,我可以成功地进行通信。名称解析部分不起作用。您是使用AWS内部名称还是在Route53中分配了自定义域?如果您使用的是自定义名称,是否已正确注册?由于您可以通过IP地址访问,这表明名称解析中存在问题。我的terraform配置为服务发现和命名空间定义了一个名称字段。所以我猜这会转化为aws中的自定义域名。