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

使用GitHub Action部署React至S3时遇区域配置错误求助

问题

使用GitHub Action部署React网站到S3桶时出现以下错误:

at generateRegionPrefix (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/region_config.js:6:22)
    at derivedKeys (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/region_config.js:13:22)
    at Object.configureEndpoint (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/region_config.js:38:14)
    at features.constructor.initialize (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/service.js:72:45)
    at features.constructor.Service [as constructor] (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/service.js:59:10)
    at features.constructor (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/util.js:637:24)
    at new features.constructor (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/util.js:637:24)
    at features.constructor.Service [as constructor] (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/service.js:50:17)
    at new features.constructor (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/aws-sdk/lib/util.js:637:24)
    at _callee3$ (/home/runner/.npm/_npx/55947e5ced8dc5f0/node_modules/s3-deploy/dist/deploy.js:406:22)

使用的workflow配置如下:

name: S3 Deploy Workflow
on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]
  workflow_dispatch:
jobs:
  run:
    runs-on: ubuntu-latest
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    steps:
      - uses: actions/checkout@v3

      - name: Installs dependencies
        run: yarn
        
      - name: Build
        run: yarn build

      - name: Deploy
        uses: reggionick/s3-deploy@v3
        with:
          folder: build
          bucket: ${{ secrets.S3_BUCKET }}
          bucket-region: ${{ secrets.S3_BUCKET_REGION }}
          dist-id: ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }}
          invalidation: /
          delete-removed: true
          no-cache: true
          private: true
          filesToInclude: ".*/*,*/*,**"

实际使用的区域为ap-southeast-2,求解决方法。

解决方法

  • 检查GitHub Secrets配置:确认S3_BUCKET_REGION这个Secret已正确创建,值确实为ap-southeast-2,无多余空格或拼写错误。
  • 调整区域参数名:部分版本的reggionick/s3-deploy Action对参数名有要求,将bucket-region替换为region:
    - name: Deploy
      uses: reggionick/s3-deploy@v3
      with:
        folder: build
        bucket: ${{ secrets.S3_BUCKET }}
        region: ${{ secrets.S3_BUCKET_REGION }}
        # 其余参数保持不变
    
  • 添加全局区域环境变量:在Job的env中直接设置AWS_REGION,强制覆盖Action的区域配置:
    jobs:
      run:
        runs-on: ubuntu-latest
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_REGION: ${{ secrets.S3_BUCKET_REGION }}
        # 后续步骤不变
    
  • 升级Action版本:尝试使用reggionick/s3-deploy的最新版本(如v4),旧版本可能存在AWS SDK区域解析的bug。
  • 验证权限与区域一致性:确保AWS密钥对应的IAM用户拥有S3部署、CloudFront缓存失效的权限,且配置的区域与S3桶实际所在区域完全匹配。

内容的提问来源于stack exchange,提问作者jmckie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:55:54