(@aws-cdk/aws-codepipeline) - 在用@aws-cdk/aws-codepipeline 制作的管道中使用等效的 "ShellScriptAction"
(@aws-cdk/aws-codepipeline) - Using "ShellScriptAction" equivalent in a Pipeline made with @aws-cdk/aws-codepipeline
这是我的问题。我目前正在努力 运行 在我的管道中执行基本的 shell 脚本操作。
管道是通过 Pipeline
构造在 @aws-cdk/aws-codepipeline
中创建的
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
) 包中 运行 一个简单的基本命令,最好是 Action
在 Stage
.
提前致谢!
@aws-cdk/aws-codepipeline
适用于 AWS Codepipeline。 @aws-cdk/pipelines
用于利用 AWS Codepipeline 部署 CDK 应用程序。详细了解该软件包及其理由 here。
关于你的问题,这里有一些选择。
首先,如果您正在寻找针对 运行 任意命令的简单 CodeBuild 操作,您可以使用 CodeBuildAction
.
还有一个专门用于调用 lambda 的单独操作,它是 LambdaInvokeAction
。
两者都是 @aws-cdk/aws-codepipeline-actions
模块的一部分。
您可以在 codepipeline_actions.CodeBuildAction to run arbitrary shell commands in your pipeline. The CDK has several build tool constructs*, used in different places. pipelines.CodePipeline specializes in deploying CDK apps, while the lower-level codepipeline.Pipeline 中使用 codebuild.PipelineProject
具有更广泛的构建功能:
Build tool construct
CloudFormation Resource
Can use where?
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
or standalone
对于您的情况,设置为 Pipeline > Stage > CodeBuildAction > PipelineProject
。
// add to stage actions
new codepipeline_actions.CodeBuildAction({
actionName: 'CodeBuild',
project: new codebuild.PipelineProject(this, 'PipelineProject', {
buildSpec: codebuild.BuildSpec.fromObject({
version: '0.2',
phases: {
build: { commands: ['echo "[project foo] $PROJECT_FOO"'] },
},
}),
environmentVariables: {
PROJECT_FOO: {
value: 'Foo',
type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
},
},
}),
input: sourceOutput,
});
* 您提到的 ShellScriptAction
是另一个,现在已在 v1 中弃用并从 v2 中删除。
这是我的问题。我目前正在努力 运行 在我的管道中执行基本的 shell 脚本操作。
管道是通过 Pipeline
构造在 @aws-cdk/aws-codepipeline
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
) 包中 运行 一个简单的基本命令,最好是 Action
在 Stage
.
提前致谢!
@aws-cdk/aws-codepipeline
适用于 AWS Codepipeline。 @aws-cdk/pipelines
用于利用 AWS Codepipeline 部署 CDK 应用程序。详细了解该软件包及其理由 here。
关于你的问题,这里有一些选择。
首先,如果您正在寻找针对 运行 任意命令的简单 CodeBuild 操作,您可以使用 CodeBuildAction
.
还有一个专门用于调用 lambda 的单独操作,它是 LambdaInvokeAction
。
两者都是 @aws-cdk/aws-codepipeline-actions
模块的一部分。
您可以在 codepipeline_actions.CodeBuildAction to run arbitrary shell commands in your pipeline. The CDK has several build tool constructs*, used in different places. pipelines.CodePipeline specializes in deploying CDK apps, while the lower-level codepipeline.Pipeline 中使用 codebuild.PipelineProject
具有更广泛的构建功能:
Build tool construct | CloudFormation Resource | Can use where? |
---|---|---|
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 or standalone |
对于您的情况,设置为 Pipeline > Stage > CodeBuildAction > PipelineProject
。
// add to stage actions
new codepipeline_actions.CodeBuildAction({
actionName: 'CodeBuild',
project: new codebuild.PipelineProject(this, 'PipelineProject', {
buildSpec: codebuild.BuildSpec.fromObject({
version: '0.2',
phases: {
build: { commands: ['echo "[project foo] $PROJECT_FOO"'] },
},
}),
environmentVariables: {
PROJECT_FOO: {
value: 'Foo',
type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
},
},
}),
input: sourceOutput,
});
* 您提到的 ShellScriptAction
是另一个,现在已在 v1 中弃用并从 v2 中删除。