如何在GitHub Actions中基于输入配置role-to-assume条件
GitHub Actions 条件化配置 AWS STS Assume Role
你可以通过 GitHub Actions 的表达式语法,直接在 role-to-assume 字段中根据 workflow_dispatch 的输入值动态切换角色 ARN。以下是完整的工作流配置示例:
name: 条件化AWS角色切换 on: workflow_dispatch: inputs: environment: description: '选择目标环境' required: true type: choice options: - poc - non-poc jobs: deploy-job: runs-on: ubuntu-latest steps: - name: 配置AWS凭证 uses: aws-actions/configure-aws-credentials@v4 with: # 使用三元表达式根据输入环境选择对应角色ARN role-to-assume: ${{ inputs.environment == 'poc' ? 'arn:aws:iam::123456789:role/MY-ROLE' : 'arn:aws:iam::098765432:role/MY-ROLE' }} aws-region: us-east-1 # 替换为你的AWS区域
关键说明
- 触发配置部分:通过
workflow_dispatch定义了一个可选值为poc和non-poc的下拉输入项environment - 角色选择逻辑:使用 GitHub Actions 支持的三元运算符
${{ condition ? value_if_true : value_if_false }},根据输入的环境值自动匹配对应的角色ARN - 如果你习惯用逻辑与或的写法,也可以替换成:
${{ inputs.environment == 'poc' && 'arn:aws:iam::123456789:role/MY-ROLE' || 'arn:aws:iam::098765432:role/MY-ROLE' }},效果完全一致
内容的提问来源于stack exchange,提问作者Lagot
相关产品推荐
相关产品推荐

