CodePipeline Deploy Stage 缺少 AWSLambda/自动更新正在运行的 ecs 任务

问题描述 投票:0回答:1

我有一个从 GitLab 到 AWS ECR 的 CI/CD 管道,我会帮助/指导设置一个 CodePipeline,每当新映像通过 GitLab CI/CD 推送到 ECR 时,它就会自动更新我的正在运行的映像。

在 CodePipeline 中,我在源代码阶段添加了 GitLab。我跳过了构建阶段(因为这是使用 GitLab CI/CD 到 ECR 完成的),现在我陷入了部署阶段。我在下拉列表中找不到 AWS Lambda。我复制了一个脚本(从下面的链接),但我不知道如何将脚本添加到部署阶段。

该脚本本质上是检查 ECR 中的图像,并在向 GitLab 中的分支发出推送请求时更新任务。

我使用本指南作为参考https://aws.plainenglish.io/automate-application-deployment-using-aws-codepipeline-ecr-to-ecs-122feaafcd93。我知道我不需要构建阶段,因为这是使用 GitLab CI/CD 完成的,但我无法弄清楚这一点

amazon-web-services aws-lambda amazon-ecs aws-fargate aws-code-deploy
1个回答
0
投票

我跳过了构建阶段(因为这是使用 GitLab CI/CD 到 ECR 完成的),现在我陷入了部署阶段。我在下拉列表中找不到 AWS Lambda。我复制了一个脚本(从下面的链接),但我不知道如何将脚本添加到部署阶段。

这里的问题是您正在尝试运行脚本来执行某种自动化,并且您希望将其作为 Lambda 函数运行。您只能在构建阶段执行此操作,作为 AWS CodeBuild 步骤。您注意到您正在其他地方进行实际构建,因此您跳过了 CodePipeline 中的构建阶段。

这里需要理解的是,AWS CodeBuild 不仅仅用于构建,还用于在 CodePipeline 中运行任何类型的脚本/自动化。您可以在 CodeBuild 中执行诸如运行单元测试、数据库迁移等操作。不要让这个名字误导您。将 CodeBuild 更多地视为通用脚本运行器,而不是实际的构建引擎。

因此,您需要在管道的构建阶段添加 CodeBuild 步骤。执行此操作时,您可以选择 AWS Lambda 作为构建执行环境,并且可以在其中使用您的脚本。

© www.soinside.com 2019 - 2024. All rights reserved.