Azure Web App通过GitHub Action部署报Unauthorized(401)错误求解决
重新获取并更新发布配置文件
登录Azure门户,找到你的productlisterWeb App,进入「部署中心」→「FTP/部署凭据」,点击「获取发布配置文件」下载最新的XML文件。然后去GitHub仓库的「Settings」→「Secrets and variables」→「Actions」里,找到对应的发布配置文件密钥(比如AZURE_WEBAPP_PUBLISH_PROFILE),把新下载的XML内容完整粘贴进去,别留多余空格或换行。确认发布配置文件的权限
确保下载发布配置文件的账户,对目标Web App有Contributor或更高权限,权限不够也会导致认证失败。修正工作流YAML的参数
- 检查
azure/webapps-deploy@v2步骤里的app-name和slot-name,必须和Azure上的Web App名称、部署槽完全一致,大小写不能错。 - React应用构建完的产物在
build文件夹里,你当前的package: .指向根目录是错误的,改成:package: ./build
- 检查
排查Azure侧的部署限制
- 看看Web App有没有开启「IP限制」,如果开了,得把GitHub Action的IP加到允许列表里(在Azure门户「网络」→「访问限制」里配置)。
- 确认Web App的「部署凭据」没被修改或过期,要是更新过,得同步到GitHub Secrets里。
换用Azure服务主体认证
要是发布配置文件还是有问题,可以改用服务主体:- 在Azure里创建服务主体,给它分配Web App的Contributor权限。
- 把
AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_SUBSCRIPTION_ID这三个值加到GitHub Secrets里。 - 修改工作流,先登录Azure再部署:
- uses: azure/login@v1 with: creds: '{"clientId":"${{ secrets.AZURE_CLIENT_ID }}","tenantId":"${{ secrets.AZURE_TENANT_ID }}","subscriptionId":"${{ secrets.AZURE_SUBSCRIPTION_ID }}"}' - uses: azure/webapps-deploy@v2 with: app-name: productlister slot-name: Production package: ./build
内容的提问来源于stack exchange,提问作者K K Jangid
相关产品推荐
相关产品推荐

