amazon-web-services - 将环境变量从 AWS Codepipeline 传递到 CodeBuild
问题描述
我在将 EnvironmentVariables 从 AWS Codepipeline 传递到 CodeBuild 时遇到问题。我能找到的关于这个主题的唯一文档是这个 AWS 文档,它提供了一个基本示例,但如下所示,我需要一个导入的子值。所有尝试都给我错误:Value of property Configuration must be an object with String (or simple type) properties
。
- Name: EmptyHostingBucket
Actions:
- Name: EmptyHostingBucket
RunOrder: 5
ActionTypeId:
Category: Build
Owner: AWS
Provider: CodeBuild
Version: 1
Configuration:
ProjectName: !Ref CodeBuildEmptyBucket
EnvironmentVariables:
- Name: HOSTING_BUCKET
Value:
Fn::ImportValue: !Sub "${ProjectName}-website-hosting-bucket"
InputArtifacts:
- Name: SourceArtifacts
OutputArtifacts:
- Name: BuildEmptyBucket
解决方案
这可能是因为:
EnvironmentVariables 参数的值采用环境变量对象的JSON 数组的形式。
因此它应该是字符串,如下所示:
EnvironmentVariables:
!Sub
- '[{"name":"HOSTING_BUCKET","value":"${BucketName}","type":"PLAINTEXT"}]'
- BucketName:
Fn::ImportValue: !Sub "${ProjectName}-website-hosting-bucket"
以上是例子。可能还需要进行一些调整。
推荐阅读
- svg - 如何使用 rsvg-convert 成功将 svg 转换为 png?
- laravel - 使用 Laravel 检索关系的关系
- xml - 限制/限制 xsd:choice
- android - 微调器未打开
- docker - 如何在 VM 中使用 Molecule 来测试安装 Docker 的 Ansible 角色
- javascript - Web 可访问性:html 本机下拉菜单 - 输入单击时打开菜单项
- swift - 如何在swift中通过蓝牙获取配对设备列表
- php - 如何查看 Ajax 传递给 PHP 的数据以及 PHP 对数据的作用 - 下拉菜单选项
- regex - URl 正则表达式验证器 HTML5
- mysql - mysql覆盖索引是否遵循最左边的索引前缀?