我在cloudformation中有git同步来触发我的嵌套堆栈,从而触发其他cloudformation模板。
但是模板 URL 适用于 s3。
是否有一种方便的方法可以单独从 github 构建嵌套堆栈,而无需任何 cp 模板到存储桶或其他奇怪的解决方法?
您可以使用 GitHub Actions 自动化 CloudFormation 堆栈的部署过程。每当您的存储库发生更改时,GitHub 操作就会触发,然后它可以将 CloudFormation 模板上传到 S3 存储桶。
步骤:
设置 GitHub Action 来监视存储库的更改(例如,根据推送或拉取请求)。 该操作会将 CloudFormation 模板打包或复制到 S3 存储桶。 然后,在操作中使用 AWS CLI 通过 S3 URL 部署 CloudFormation 堆栈。 GitHub 操作示例:
yaml 复制代码 名称:部署 CloudFormation Stack
在: 推: 分支机构: - 主要
工作: 部署: 运行:ubuntu-latest 步骤: - 名称:签出存储库 使用:actions/checkout@v2
- name: Set up AWS CLI
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Upload CloudFormation templates to S3
run: |
aws s3 cp ./template1.yaml s3://your-bucket-name/templates/template1.yaml
aws s3 cp ./template2.yaml s3://your-bucket-name/templates/template2.yaml
- name: Deploy CloudFormation Stack
run: |
aws cloudformation create-stack \
--stack-name my-stack \
--template-url https://s3.amazonaws.com/your-bucket-name/templates/template1.yaml \
--capabilities CAPABILITY_NAMED_IAM