如何在GitHub workflow中添加AWS Region选择下拉菜单?
实现GitHub流水线选择AWS区域部署的方案
核心思路
通过GitHub Actions的手动触发配置(workflow_dispatch)添加区域选择参数,让你触发流水线时指定目标AWS区域,再将该参数传入部署任务替换固定的区域配置。
具体修改步骤
- 添加手动触发的区域选择输入
在workflow的最顶层(jobs节点之外)添加workflow_dispatch配置,定义可选的AWS区域:
on: workflow_dispatch: inputs: aws-region: description: '选择要部署的AWS区域' required: true default: 'us-west-1' type: choice options: - us-west-1 - us-east-1 # 替换成你的第二个实际AWS区域 # 如果你需要保留自动触发(比如代码push触发),可以保留原有自动触发配置,比如: # push: # branches: [ main ]
- 修改部署任务的区域环境变量
将deploy-ecs-containers任务里的AWS_REGION环境变量替换为选择的输入值:
deploy-ecs-containers: # This job connects to AWS and deploy specific ECS task definition(s) #----------------------------------------------------------------------- name: Deploy ${{ matrix.api }} to AWS ECS runs-on: ubuntu-latest needs: build-docker-images outputs: allapps: ${{ needs.build-docker-images.outputs.allapps }} affected: ${{ needs.build-docker-images.outputs.affected }} bluegreen: ${{ needs.build-docker-images.outputs.bluegreen }} strategy: matrix: api: ${{ fromJson(needs.build-docker-images.outputs.allapps) }} fail-fast: false env: APP_NAME: ${{ matrix.api }} AWS_REGION: ${{ inputs.aws-region || 'us-west-1' }} # 用选择的区域,自动触发时用默认值 ECS_CLUSTER: prod-api-${{ needs.build-docker-images.outputs.bluegreen }}-clstr ECS_SERVICE: prod-${{ matrix.api }}-svc ECS_TASK_DEF: .deploy/aws/PROD/prod-${{ matrix.api }}-tsk.json
使用说明
- 手动触发流水线时,GitHub会弹出配置界面,你可以通过下拉框选择要部署的AWS区域,确认后流水线就只会将应用部署到该区域。
- 如果是自动触发(比如代码push),流水线会使用配置里的默认区域部署。
内容的提问来源于stack exchange,提问作者jay shah
相关产品推荐
相关产品推荐

