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

CI/CD流水线中如何非交互执行Amplify hosting add CLI命令

解决Amplify CI/CD流水线中非交互添加托管的问题

核心原因

CI环境是全新的沙箱,本地手动配置的Amplify托管配置不会自动同步到CI环境,导致amplify publish识别不到已有的托管设置。以下是几种可行的解决方案:

方案1:拉取已有Amplify应用配置(推荐)

直接在CI步骤中拉取你手动配置好的Amplify应用全量配置,无需重新添加托管:

# 若CodeBuild未通过IAM角色关联权限,先配置AWS凭证
export AWS_ACCESS_KEY_ID=你的密钥ID
export AWS_SECRET_ACCESS_KEY=你的密钥

# 拉取已有的Amplify应用配置,替换为你的App ID和环境名
amplify pull --appId <你的Amplify App ID> --envName <你的环境名(如dev)> --no-interactive

执行完amplify pull后,CI环境会同步所有本地已配置的资源(包括托管),之后直接执行amplify publish --no-interactive即可。

方案2:非交互模式添加托管

如果无法拉取配置,可通过--headless参数配合配置文件或命令行参数完成非交互添加:

  1. 创建一个托管配置文件(比如hosting-config.json),内容根据你手动配置的托管类型调整:
    {
      "hosting": {
        "plugin": "awscloudformation",
        "providerPlugin": "awscloudformation",
        "config": {
          "domainName": "你的域名(可选)",
          "enableAutoDomain": true,
          "redirects": [
            {
              "source": "/*",
              "target": "/index.html",
              "status": "200"
            }
          ],
          "platform": "WEB"
        }
      }
    }
    
  2. 在CI步骤中执行非交互添加命令:
    amplify add hosting --headless --config hosting-config.json
    
    或者直接在命令行传递参数(以Amplify托管为例):
    amplify add hosting --headless \
      --provider awscloudformation \
      --platform WEB \
      --enableAutoDomain true
    

方案3:确保CI权限与配置正确

  • 给CodeBuild的服务角色添加AmplifyFullAccess或精细化权限(如amplify:GetApp、amplify:UpdateApp、amplify:CreateDeployment等),确保CLI能正常访问Amplify资源。
  • 执行amplify publish时添加--no-interactive参数,避免触发交互提示:
    amplify publish --no-interactive
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:24:27