我正在尝试使用代码将应用程序部署到 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 操作时出错 (客户端异常(: 找不到任务定义。
file:///deploy/tasks/backend.json
是你提供给aws ecs register-task-definition
的东西。
在这里查找,这将生成您想要的文件的结构:
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 文件放在那里,并且应该已全部设置好。