使用代码注册ECS任务

时间:2017-07-03 12:47:35

标签: amazon-ecs codeship

我正在尝试使用代码将应用程序部署到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。

1 个答案:

答案 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文件放在此处,那么您应该已经全部设置好。