CodePipeline:taskdef.json 和 appsec.yaml 的目的是什么?
CodePipeline : What is taskdef.json and appsec.yaml purpose?
我使用 CodePipeline 的全部意义在于使用 CodeDeploy 自动部署 ECS 服务(蓝/绿部署)。
CodePipeline 具有以下阶段:
包含 Bitbucket webhook 的“源”。
“构建”包含 CodeBuild 步骤(在 ECR 上构建和推送 docker 图像)。
“部署”包含将使用 CodeDeploy 部署设计服务的 ECS(蓝色/绿色)。
我不明白的是 taskdef.json 和 appsec.yaml 对我而言的目的。
我仅手动执行的操作(因此当前没有 CodePipeline)是使用相同的任务定义重新部署 ECS 服务。我真的不必每次都更新我的任务定义,因为我推送的 docker 图像始终具有相同的标签(暂存或生产),所有其他图像都未标记,因此只有一个可用。
那么为什么必须输入这些文件,即使我手动输入时也没有更改任何东西,只是连续单击“下一步”?
另外,我如何将它包含在 CodeBuild 步骤中?
在您的管道上,您可以使用 AWS CodeCommit 输入 taskdef.json 文件以及 appspec.yml。在每次部署时,CodePipeline 都会获取最新的可用输入。
例如,您更改了环境变量值。 taskdef.json 文件。您需要做的是使用 taskdef.json 的新版本推送提交。这将触发新的部署,使用新的 taskdef.json,并使用带有您在 CodePipilie/CodeDeploy 上指定的标签的最新 ECR 映像。
本教程介绍了如何将它们组合在一起:https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html
我终于找到了怎么做。我首先做的是在我的 Git 项目中包含一个 taskdef.json 和 appspec.yaml 文件。因为我不需要那些文件“自动更新”或“生成”,所以我只是把我最后一个任务定义放在 JSON 中,然后把它放在 taskdef.json.
中
对于 appspec.yaml,您可以在 ECS 服务上手动部署时以 JSON 格式获取它,在总结所有内容的最后一页。
然后您需要更新 CodeBuild 项目以在 S3 上上传两个工件,然后在管道中,Deploy 任务可以使用这些工件。
这个 site 帮助我很好地设置了一切。
我使用 CodePipeline 的全部意义在于使用 CodeDeploy 自动部署 ECS 服务(蓝/绿部署)。
CodePipeline 具有以下阶段:
包含 Bitbucket webhook 的“源”。
“构建”包含 CodeBuild 步骤(在 ECR 上构建和推送 docker 图像)。
“部署”包含将使用 CodeDeploy 部署设计服务的 ECS(蓝色/绿色)。
我不明白的是 taskdef.json 和 appsec.yaml 对我而言的目的。
我仅手动执行的操作(因此当前没有 CodePipeline)是使用相同的任务定义重新部署 ECS 服务。我真的不必每次都更新我的任务定义,因为我推送的 docker 图像始终具有相同的标签(暂存或生产),所有其他图像都未标记,因此只有一个可用。
那么为什么必须输入这些文件,即使我手动输入时也没有更改任何东西,只是连续单击“下一步”?
另外,我如何将它包含在 CodeBuild 步骤中?
在您的管道上,您可以使用 AWS CodeCommit 输入 taskdef.json 文件以及 appspec.yml。在每次部署时,CodePipeline 都会获取最新的可用输入。
例如,您更改了环境变量值。 taskdef.json 文件。您需要做的是使用 taskdef.json 的新版本推送提交。这将触发新的部署,使用新的 taskdef.json,并使用带有您在 CodePipilie/CodeDeploy 上指定的标签的最新 ECR 映像。
本教程介绍了如何将它们组合在一起:https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html
我终于找到了怎么做。我首先做的是在我的 Git 项目中包含一个 taskdef.json 和 appspec.yaml 文件。因为我不需要那些文件“自动更新”或“生成”,所以我只是把我最后一个任务定义放在 JSON 中,然后把它放在 taskdef.json.
中对于 appspec.yaml,您可以在 ECS 服务上手动部署时以 JSON 格式获取它,在总结所有内容的最后一页。
然后您需要更新 CodeBuild 项目以在 S3 上上传两个工件,然后在管道中,Deploy 任务可以使用这些工件。
这个 site 帮助我很好地设置了一切。