问题描述

在参考文档“使用 GitHub Actions 部署 ARM 模板”一文中,由于是在中国区Azure上操作,所以生产的部署凭证为中国区凭证。当创建工作流时,在登录到Azure这一步骤中,模板中使用指令为“ - uses: azure/login@v1”在执行时,遇见了登录到global的错误。

错误消息为:Error: Az CLI Login failed.

问题解决

从错误消息就可以发现,这是因为默认情况下,Github Action中设定的指令“- uses: azure/login@v1”是登录到Global,所以我们需要修改登录参数,让它指向中国区。

第一次尝试解决时,因不懂得 - uses的命令所以使用的时az指令 “- uses: az cloud set --name AzureChinaCloud” 发现这时完全错误的。

第二次尝试解决时,知道了可以为 - uses添加parameter参数,所以自己乱定义了参数:“parameters: environment=AzureChinaCloud”。结果依旧错误。

第三次尝试解决时,认真读了命令的错误提示,并查看了with中参数设置。使用“environment: AzureChinaCloud”,成功解决问题。

 修改次数  .yml文件修改内容(黄色高亮部分) 错误/成功消息

第一次添加内容

# Log into Azure
- uses: az cloud set --name AzureChinaCloud
- uses: azure/login@v1
  with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}

The workflow is not valid.

.github/workflows/deployStorageAccount.yml (Line: 12, Col: 13):

Expected format {org}/{repo}[/path]@ref.

Actual 'az cloud set --name AzureChinaCloud' Input string was not in a correct format.

第二次修改内容 # Log into Azure
- uses: azure/login@v1
  with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}
    parameters: environment=AzureChinaCloud
Warning: Unexpected input(s) 'parameters', valid inputs are ['creds', 'enable-AzPSSession', 'environment', 'allow-no-subscriptions']
Run azure/login@v1
with:
creds: ***
parameters: environment=AzureChinaCloud
enable-AzPSSession: false
environment: azurecloud
allow-no-subscriptions: false
/usr/bin/az cloud set -n azurecloud
Done setting cloud: "azurecloud"
Error: Az CLI Login failed. Please check the credentials. For more information refer https://aka.ms/create-secrets-for-GitHub-workflows
Error: Error: Error: The process '/usr/bin/az' failed with exit code 1
第三次修改内容 # Log into Azure
- uses: azure/login@v1
  with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}
    environment: AzureChinaCloud

Run azure/login@v1
with:
 creds: ***
 environment: AzureChinaCloud
 enable-AzPSSession: false
 allow-no-subscriptions: false
/usr/bin/az cloud set -n azurechinacloud
WARNING: Switched active cloud to 'AzureChinaCloud'.
WARNING: Use 'az login' to log in to this cloud.
WARNING: Use 'az account set' to set the active subscription.
Done setting cloud: "azurechinacloud"
Login successful.

所以正确的解决办法就是添加environment参数。所以当使用部署一个存储账号作为入门测试,在中国区Azure能够正常使用的yaml文件内容为:

on: [push]
name: Azure ARM
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps: # Checkout code
- uses: actions/checkout@main # Log into Azure
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
environment: AzureChinaCloud # Deploy ARM template
- name: Run ARM deploy
uses: azure/arm-deploy@v1
with:
subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
resourceGroupName: ${{ secrets.AZURE_RG }}
template: ./azuredeploy.json
parameters: storageAccountType=Standard_LRS # output containerName variable from template
- run: echo ${{ steps.deploy.outputs.containerName }}

参考资料

使用 GitHub Actions 部署 ARM 模板https://docs.azure.cn/zh-cn/azure-resource-manager/templates/deploy-github-actions

【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法的更多相关文章

  1. 使用ARM模板在Azure中国大规模部署DCOS集群

    容器技术是目前非常流行的技术,尤其是在以Docker作为容器引擎的推动下,让容器的轻量级,可移植,自包含,隔离性等的上了一个新的台阶,目前谈及Dev/Ops,CI/CD很少能够绕过Docker的. A ...

  2. CAS (10) —— JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法

    CAS (10) -- JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法 jboss版本: jb ...

  3. Java调用ARM模板执行Azure Rest建立VM过程

    Azure Resource Manager 提供一致的管理层,用于管理通过 Azure PowerShell.Azure CLI.Azure 门户.REST API 和开发工具执行的任务,所有工具使 ...

  4. 关于Windows azure从github上部署项目

    自己做了一个闪存解析的webapi,今天尝试了一下加一个HelpPage,本地访问正常,但是在azure上就报错. 项目是不熟在WindowsAzure上的,项目自动同步github上的项目.gith ...

  5. AlertManager 之微信告警模板,UTC时间错8个小时的解决办法

    注意事项: alertmanager中的web页面显示的报警时间是UTC时间,错8个小时,企业微信报警模板中已经修改过来了 下面配置可以作为参考: 1.prometheus操作 1.1 配置告警规则, ...

  6. GitHub Desktop 出现“please upgrade your plan to create a new private repository”的解决办法

    转:https://blog.csdn.net/qq_38584262/article/details/82386805 解决办法:去掉最下面的勾

  7. wordpress 下载主题模板、更新报错 No working transports found解决办法

    出错原因是PHP没有开启curl. windows下开启方法如下 1. 将php.ini中的;extension=php_curl.dll前的分号去掉, 2. 将php中libeay32.ll, ss ...

  8. 部署Web API后Delete请求总是报 405(Method Not Allowed)解决办法

    WebDAV                   安装IIS的时候如果选择了WebDAV(Web Distribution Authorization Versioning) Publish,则所有的 ...

  9. github添加公钥出现 github ssh key Key is invalid. Ensure you've copied the file correctly的解决办法

    因为在公钥查看的时候可能是利用了vim明明查看,所以会有换行,导致这个错误,解决方法是用cat命令查看文件,或者其他方式查看,总之公钥不能有换行.

随机推荐

  1. MOOC学习成果认证及对高等教育变革路径的影响

    MOOC是网络开放教育创新发展的产物,也是备受人们欢迎的网络学习途径.当前制约MOOC能否可持续深入发展的问题聚焦于MOOC学习成果能否得到合理的认证.MOOC学习成果认证分为非学分认证和学分认证.M ...

  2. Google Chrome All In One

    Google Chrome All In One Chrome Experiments Chrome 测试版 Chrome 开发者版 Chrome Canary 版 chrome://welcome/ ...

  3. 如何将多个 Apple 设备中保存在 iCloud 里面密码同步

    如何将多个 Apple 设备中保存在 iCloud 里面密码同步 iCloud 钥匙串 密码同步 数据迁移 iOS iCloud 钥匙串会记住一些信息,因此您就无需记忆这些信息. 它会在您批准的任何设 ...

  4. js with All In One

    js with All In One 不推荐,要废弃 function f(x, o) { with (o) { console.log(x); } } function f(foo, values) ...

  5. GitHub for VSCode

    GitHub for VSCode A first-party GitHub OAuth application (GitHub for VSCode) with repo and workflow ...

  6. user tracker with ETag

    user tracker with ETag 用户追踪, without cookies clear cache bug 实现原理 HTTP cache hidden iframe 1px image ...

  7. D3 tree map

    D3 tree map D3 矩形树图 https://www.zhihu.com/question/55529379 https://zhuanlan.zhihu.com/p/57873460 ht ...

  8. Node.js Debugger

    Node.js Debugger VS Code & Chrome DevTools https://nodejs.org/api/debugger.html https://nodejs.o ...

  9. Flutter 设置input边框

    example 1 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp ext ...

  10. 星空值、SPC、算力组成三元永动机制!VAST带你把握时代!

    目前中心化金融体系为用户提供的服务在便捷性和易用性方面已经达到了新高度,但随着时代发展,大众对于金融安全性和可控性的需求进一步提升,需要去中心化金融服务商来提供更具创意的解决方案.盛大公链为此在应用层 ...