You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub workflow中添加AWS Region选择下拉菜单?

实现GitHub流水线选择AWS区域部署的方案

核心思路

通过GitHub Actions的手动触发配置(workflow_dispatch)添加区域选择参数,让你触发流水线时指定目标AWS区域,再将该参数传入部署任务替换固定的区域配置。

具体修改步骤

  1. 添加手动触发的区域选择输入
    在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 ]
  1. 修改部署任务的区域环境变量
    将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:09:51