我正在尝试从控制台更新 CloudFormation 嵌套堆栈上的自定义参数。它已更新,但在代码部署后,它会获得默认值。我想在部署后保存上次更新的值。我在 buildspec.yml 上使用 bash 脚本作为构建命令。如果有堆栈,它可以工作,但不适用于堆栈+嵌套堆栈。有人对此有任何想法吗?我想使用它来从控制台更新参数而不进行代码部署,如果没有更改,则将其保存以供进一步使用。
发布.sh
mkdir -p build
# SAM Package
aws cloudformation package --template template-build.yml --s3-bucket ${DEPLOYMENT_BUCKET} --output-template build/template.yml --debug
# SAM Deploy
aws cloudformation deploy --template-file build/template.yml --stack-name ${STACK_NAME} --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND --role-arn ${ROLE_ARN} \
--s3-bucket $DEPLOYMENT_BUCKET \
--parameter-overrides \
DeploymentBucketName=${DEPLOYMENT_BUCKET} \
NodeModulesZipFileName=${packageJsonHash}.zip
构建规范.yml
version: 0.2
phases:
install:
runtime-versions:
python: 3.7
nodejs: 10
commands:
- yum install python3-pip -y
- whereis pip
- pip3 install aws-sam-cli --upgrade --user
- pip3 install awscli --upgrade --user
pre_build:
commands:
- mkdir -p build/
build:
commands:
- echo Build started on `date`
- npm install --only=prod
- chmod +x publish.sh
- bash publish.sh
post_build:
commands:
- echo "no post build needed..."
artifacts:
type: zip
files:
- build/template.yml