如何连接到 Fargate 上的 ECS 服务 运行?
How do I connect to an ECS service running on Fargate?
我正在构建一个 slack 应用程序,我的应用程序应该接收来自 slack 的 webhook 调用。所以我需要给 Slack "endpoint URL for my service"
我不确定我是否了解我需要将哪些 AWS 模块组合在一起才能完成这项工作。
到目前为止,我已经使用 Fargate 配置了我的服务,它在 ECS 上 运行 有 1 个任务。
我不太确定如何将 Internet (slack) 成功连接到我的容器实例。如何创建一个 slack 可以向其发送请求的 "endpoint"?我相信我需要为此使用 API 网关,但我不确定我应该如何配置 API 网关以便将我的 URL 重定向到我的 ECS 服务...?
备注:
- 我现在不打算有一个以上的任务,所以如果我不必设置负载平衡器会更方便
- 但是我打算对服务本身进行一些定期更新,任务会经常重新启动
我不确定是否有其他选择,但是在 fargate 上设置服务时,为了接收流量,您需要
- 要有一个负载均衡器(ALB 或 NLB 都可以)
- 如果是 ALB,必须创建目标组 "IP"
- 只有在创建服务期间,您才可以select将您的容器放在目标组或 ALB 后面
例如,要分发来自目标组的流量,您可以使用它来配置服务
"loadBalancers": [
{
"containerName": "your-container-name-app",
"containerPort": 80,
"targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:account-id:targetgroup/targetgroup-name/RANDOM-ID"
}
],
像这样创建目标组
aws elbv2 create-target-group \
--name targetgroup-name \
--protocol HTTP \
--port 80 \
--vpc-id vpc-YOUR_VPC_ID \
--health-check-protocol HTTP \
--health-check-path /healthcheck \
--target-type ip
因此,您基本上会使用负载均衡器 DNS 将流量路由到您的实例。使用ALB,您可以很容易地截获某条路径(例如/slack/*
)路由到您特定的目标群体,因此同一个ALB可以用于多个不同的服务。
但是你需要一个负载均衡器,而且据我所知不能直接以 Fargate 容器为目标。
我正在构建一个 slack 应用程序,我的应用程序应该接收来自 slack 的 webhook 调用。所以我需要给 Slack "endpoint URL for my service"
我不确定我是否了解我需要将哪些 AWS 模块组合在一起才能完成这项工作。 到目前为止,我已经使用 Fargate 配置了我的服务,它在 ECS 上 运行 有 1 个任务。
我不太确定如何将 Internet (slack) 成功连接到我的容器实例。如何创建一个 slack 可以向其发送请求的 "endpoint"?我相信我需要为此使用 API 网关,但我不确定我应该如何配置 API 网关以便将我的 URL 重定向到我的 ECS 服务...?
备注:
- 我现在不打算有一个以上的任务,所以如果我不必设置负载平衡器会更方便
- 但是我打算对服务本身进行一些定期更新,任务会经常重新启动
我不确定是否有其他选择,但是在 fargate 上设置服务时,为了接收流量,您需要
- 要有一个负载均衡器(ALB 或 NLB 都可以)
- 如果是 ALB,必须创建目标组 "IP"
- 只有在创建服务期间,您才可以select将您的容器放在目标组或 ALB 后面
例如,要分发来自目标组的流量,您可以使用它来配置服务
"loadBalancers": [
{
"containerName": "your-container-name-app",
"containerPort": 80,
"targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:account-id:targetgroup/targetgroup-name/RANDOM-ID"
}
],
像这样创建目标组
aws elbv2 create-target-group \
--name targetgroup-name \
--protocol HTTP \
--port 80 \
--vpc-id vpc-YOUR_VPC_ID \
--health-check-protocol HTTP \
--health-check-path /healthcheck \
--target-type ip
因此,您基本上会使用负载均衡器 DNS 将流量路由到您的实例。使用ALB,您可以很容易地截获某条路径(例如/slack/*
)路由到您特定的目标群体,因此同一个ALB可以用于多个不同的服务。
但是你需要一个负载均衡器,而且据我所知不能直接以 Fargate 容器为目标。