【发布时间】:2019-05-22 17:45:05
【问题描述】:
我正在尝试使用 ecs-cli compose 来管理我在 Amazon ECS 上的服务和任务。
我找不到使用service up 命令创建具有应用程序负载平衡器的新服务的方法(即使该负载平衡器已经存在)。
service create 似乎可以做到这一点,但 API 与 service up API 不同,我不确定如何以与 create 相同的方式指定参数。通常最好只使用up 命令来保持一致性。文档非常分散,有很多不同的方法可以做同样的事情,只是想知道这里有什么最佳实践。任何建议都非常感谢。
值得注意的是,只要我有一个现有的任务定义,并且在指定负载均衡器的同时通过 Amazon AWS GUI 创建我的服务,一切都对我有用。所以我正在考虑将我所有的 compose 配置移到 task-definition.json 中,并直接与aws ecs cli 一起使用。
我有一个有效的docker-compose.yml 文件:
# docker-compose.yml
version: "3"
services:
application:
image: ${IMAGE_ARN}
command: npm start
ports:
- "8000:8000"
nginx:
image: ${IMAGE_ARN}
ports:
- "80:80"
以及随附的ecs-params.yml 文件:
# ecs-params.yml
version: 1
task_definition:
task_role_arn: ${ROLE_ARN}
task_execution_role: ${ROLE_ARN}
ecs_network_mode: awsvpc
task_size:
mem_limit: 0.5GB
cpu_limit: 256
container_definitions:
- name: application
- name: nginx
run_params:
network_configuration:
awsvpc_configuration:
assign_public_ip: ENABLED
subnets:
- ${SUBNET_1_ID}
- ${SUBNET_2_ID}
security_groups:
- ${SECURITY_GROUP_ID}
我为启动服务而运行的命令是:
ecs-cli compose service up \
--file docker-compose.yaml \
--ecs-params ecs-params.yaml \
--project-name service-name
有什么方法可以通过该命令指定负载均衡器配置?
【问题讨论】:
-
这里有很多对话:github.com/aws/amazon-ecs-cli/issues/21。建议的解决方法是使用 ecs-cli 定义任务并使用 aws ecs 创建服务。不错,但有更好的方法吗?
标签: amazon-web-services docker amazon-ecs