有没有办法使用 SSM 参数在代码管道中提供 S3 部署的路径



所以,我有一个简单的CodePipeline设置,它使用CodeBuild将一些工件放在一起,然后配置一个CloudFormation Stack。

创建的资源之一是用于存储静态文件的 S3 存储桶。它还会创建一个具有存储桶名称的 SSM 参数。

目前,要部署到存储桶,我正在使用 S3 阶段来解压缩初始文件集。不幸的是,我只能弄清楚如何手动设置存储桶。如果堆栈已预置,则此方法正常,但如果堆栈是从新堆栈创建的(分配了新存储桶名称(,则此操作将失败。

有没有办法将 SSM 参数用作我看不到的此阶段的一部分?

我同意@shariqmaws。您可以将环境变量保存在 SSM 参数存储中,并可以按如下方式使用该变量:

env:
parameter-store:
key: value

完成后,您可以按如下方式使用该变量:

aws s3 sync your-s3-files/ "s3://${key}"

如果我理解正确,您希望在 CodePipeline 中动态更改 S3 部署操作的存储桶名称。目前这是不可能的,因为这是管道配置 [1] 的一部分。

相反,您可以做的是自己动手,将 S3 部署操作替换为 CodeBuild 操作,并自行将文件同步到 S3 存储桶。您可以在构建规范 [2] 中使用以下语法读取参数存储值:

env:
parameter-store:
key: "value"

。或者按需使用 'AWS SSM' CLI 'get-parameter' 命令 [3]。

[1] https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#w498aac41c11c11c31b3

[2] https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax-link3

[3] https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html

最新更新