我正在尝试使用代码将应用程序部署到AWS ECS。我有我的docker-compose文件,一切都准备就绪了。 Codeship文档说要在codeship-steps.yml
文件中执行类似的操作:
aws ecs register-task-definition --cli-input-json file:///deploy/tasks/backend.json
aws ecs update-service --service my-backend-service --task-definition backend
我的问题是,这个文件file:///deploy/tasks/backend.json
是我必须手动提供的,还是自动创建的以及ECS任务。因为我一直从代码
调用RunTask操作时发生错误(ClientException):找不到TaskDefinition。
答案 0 :(得分:0)
file:///deploy/tasks/backend.json
是您提供给aws ecs register-task-definition
的东西。
查找here,将生成您想要的文件的结构:
aws ecs register-task-definition --generate-cli-skeleton
例如,您可以在将其放入backend.json
后对其进行修改(前提是您将命令的输出重定向到名为backend.json
的文件中)。
如果您查看建议的服务定义:
awsdeployment:
image: codeship/aws-deployment
encrypted_env_file: aws-deployment.env.encrypted
environment:
- AWS_DEFAULT_REGION=us-east-1
volumes:
- ./:/deploy
您会看到./
映射到/deploy
挂载点。这意味着,如果在您的仓库中创建了一个名为tasks的目录,然后将json文件放在此处,那么您应该已经全部设置好。