【发布时间】:2023-02-23 01:52:59
【问题描述】:
寻找工作 terraform 计划来配置 AWS Service Connect With ECS (FARGATE)。
这就是我所拥有的:
resource "aws_service_discovery_http_namespace" "my-cloudmap-namespace" {
name = "<namespace>"
description = "Namespace for Service Discovery"
}
容器定义:
[
{
"name": "my-service-container",
"image": "XXXXXXXXXXX",
"cpu": 0,
"essential": true,
"portMappings": [{
"name": "my-service",
"containerPort": 4002,
"hostPort": 4002,
"protocol": "tcp",
"appProtocol": "http"
}]
}
]
然后在服务定义中:
service_connect_configuration {
enabled = true
namespace = aws_service_discovery_http_namespace.my-cloudmap-namespace.arn
service {
client_alias {
dns_name = "my-service"
port = "4002"
}
discovery_name = "my-service"
port_name = "my-service"
}
}
这似乎不起作用。我无法从另一个实例访问 http://my-service:4002/ 上的服务。
是否有人使用 terraform 成功配置了 Service Connect with ECS (FARGATE)?
【问题讨论】:
-
我现在遇到了同样的问题,我正在与 AWS 合作寻找解决方案。我的预感是您的发现服务被注册为“http”而不是 DNS 方法。所以你不能只使用 dns 名称“我的服务”,你必须调用发现 API 来获取可用服务和 ips 的列表。如果我得到一个好的答案,我会回来提交它。
-
如果有帮助,我可以通过在创建服务时更改“计算机选项”来解决问题。如果您选择“容量提供者策略”而不是“启动类型”,它会按预期工作。
-
还要确保与该服务关联的安全组本身具有访问权限。
标签: amazon-web-services terraform amazon-ecs aws-fargate