gpt4 book ai didi

amazon-web-services - 将 Bitbucket 管道变量传递到 Cloudformation

转载 作者:行者123 更新时间:2023-12-03 07:22:00 25 4
gpt4 key购买 nike

我无法将 Bitbucket 存储库变量传递到我的 AWS Cloudformation 模板。我需要传递 $BITBUCKET_BUILD_NUMBER。我可以将其回显到 Bitbucket 管道,但该变量永远不会在 Cloudformation 参数中被替换。

bitbucket-pipelines.yml:

pipelines:
branches:
master:
- step:
name: Deploy (Dev)
deployment: dev
script:
- export PARAMETERS=$(cat ./parameters.json)
- echo "BITBUCKET_BUILD_NUMBER is $BITBUCKET_BUILD_NUMBER"
- pipe: atlassian/aws-cloudformation-deploy:0.18.0
variables:
STACK_NAME: 'dev-be-uservice'
TEMPLATE: 'cloudformation.yml'
STACK_PARAMETERS: $PARAMETERS

参数.json:

[
{
"ParameterKey": "BuildTag",
"ParameterValue": "$BITBUCKET_BUILD_NUMBER"
}
]

cloudformation.yml:

Parameters:
BuildTag:
Description: The Docker Tag
Type: String

parameters.json 中,我尝试了 "$BITBUCKET_BUILD_NUMBER""${BITBUCKET_BUILD_NUMBER}"

Cloudformation 始终将 BuildTag 显示为未替换的字符串 ($BITBUCKET_BUILD_NUMBER),而不是内部版本号 (2)。

最佳答案

您需要在部署之前评估文件中的环境变量。为此,您可以使用 envsubst:

pipelines:
branches:
master:
- step:
name: Deploy (Dev)
deployment: dev
script:
- apt-get -y update && apt-get -y install gettext-base
- export PARAMETERS=$(envsubst < ./parameters.json)
- echo "BITBUCKET_BUILD_NUMBER is $BITBUCKET_BUILD_NUMBER"
- pipe: atlassian/aws-cloudformation-deploy:0.18.0
variables:
STACK_NAME: 'dev-be-uservice'
TEMPLATE: 'cloudformation.yml'
STACK_PARAMETERS: $PARAMETERS

例如:

$ cat file
[
{
"ParameterKey": "BuildTag",
"ParameterValue": "$BITBUCKET_BUILD_NUMBER"
}
]
$ export BITBUCKET_BUILD_NUMBER=1.0.0
$ export PARAMETERS=$(envsubst < file)
$ echo "$PARAMETERS"
[
{
"ParameterKey": "BuildTag",
"ParameterValue": "1.0.0"
}
]

关于amazon-web-services - 将 Bitbucket 管道变量传递到 Cloudformation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77180021/

25 4 0
文章推荐: amazon-web-services - 云信息 : How to add an existing IAM managed policy to an Existing IAM ROLE
文章推荐: javascript - $http 成功未定义 Angularjs 自定义服务变量
文章推荐: javascript - jQuery:聚焦