这是我的问题。我目前正在努力在我的管道中运行基本的 shell 脚本执行操作。 管道是通过@aws-cdk/aws-codepipeline
Pipeline
构造创建的
import { Artifact, IAction, Pipeline } from "@aws-cdk/aws-codepipeline"
const pipeline = new Pipeline(this, "backend-pipeline",{
...
});
现在,我正在运行一个跨部署管道,并希望在创建 lambda 后立即调用它。以前,一个简单的ShellScriptAction
在旧的(@aws-cdk/pipelines
)包中就足够了,但由于某种原因,pipelines
和aws-codepipeline
的包同时维护。
我想知道的是如何在新的(aws-codepipeline
)包中运行一个简单的基本命令,理想情况下是作为Stage
中的Action
。
提前感谢!
您将在codepipeline_actions中使用codebuild.PipelineProject
。CodeBuildAction 用于在管道中运行任意 shell 命令。CDK 有几个构建工具构造*,用于不同的地方。管道。CodePipeline 专门用于部署 CDK 应用程序,而较低级别的代码管道。管道具有更广泛的生成功能:
构建工具构造 | 云形成资源 | 可以使用在哪里? |
---|---|---|
pipelines.ShellStep | AWS::CodeBuild::Project | pipelines.CodePipeline |
pipelines.CodeBuildStep | AWS::CodeBuild::Project | pipelines.CodePipeline |
codebuild.PipelineProject | AWS::CodeBuild::Project | codepipeline.Pipeline |
codebuild.Project | AWS::CodeBuild::Project | codepipeline.Pipeline 或独立 |
@aws-cdk/aws-codepipeline
适用于 AWS Codepipeline。@aws-cdk/pipelines
用于利用 AWS Codepipeline 部署 CDK 应用程序。在此处阅读有关该软件包及其理由的更多信息。
关于您的问题,您在这里有一些选择。
首先,如果您正在寻找一个简单的 CodeBuild 操作来运行任意命令,您可以使用CodeBuildAction
.
还有一个单独的操作专门用于调用 lambda,它LambdaInvokeAction
.
两者都是@aws-cdk/aws-codepipeline-actions
模块的一部分。