Logo
  • 資訊
  • 筆記
  • AI
  • 程式語言
    • Golang
    • Python
    • JavaScript
    • JAVA
    • C#
    • C++
    • .NET
  • 框架
    • Kubernetes
    • Docker
    • Spring Boot
    • Vue.js
    • Flutter
    • Nginx
  • 資料庫
    • MySQL
    • MongoDB
    • Redis
  • Linux
  • iOS
  • Android
  • 技術
    • 爬蟲
    • 反向代理
  • 資訊
  • 筆記
  • AI
  • 程式語言
    • Golang
    • Python
    • JavaScript
    • JAVA
    • C#
    • C++
    • .NET
  • 框架
    • Kubernetes
    • Docker
    • Spring Boot
    • Vue.js
    • Flutter
    • Nginx
  • 資料庫
    • MySQL
    • MongoDB
    • Redis
  • Linux
  • iOS
  • Android
  • 技術
    • 爬蟲
    • 反向代理

【Azure Developer】Github Action部署資源(ARM模板)到Azure中國區時,遇見登錄問題的解決辦法

  • 2021 年 3 月 29 日
  • 筆記
  • 【Azure Developer】, Github Action部署資源(ARM模板)到Azure中國區時,遇見登錄問題的解決辦法, Error: Az CLI Login failed

問題描述

在參考文檔「使用 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 //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 模板://docs.azure.cn/zh-cn/azure-resource-manager/templates/deploy-github-actions

 

Tags: 【Azure Developer】 Github Action部署資源(ARM模板)到Azure中國區時,遇見登錄問題的解決辦法 Error: Az CLI Login failed

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 LinkedIn(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)

Related Posts

  • 2021 年 3 月 29 日

Mybatis日誌源碼探究

  • 2021 年 3 月 29 日

談談對IOC及DI的理解與思考

Previous post

談談對IOC及DI的理解與思考

Next post

Mybatis日誌源碼探究

VirMach 便宜 VPS

Black Friday Flash Sale

(2021/9/14~)

1 Core CPU

1 GB Ram

20 GB SSD

1年只要 USD$5 up!!!

Tips: Offer 10 分鐘更新一次

New customers, 75% off for 2 months.

1 Core CPU

1 GB Ram

25 GB SSD

每月只要 USD$1.75!!!

VirMach VPS Hosting

VPSGamers VPS Hosting

VPSCraft VPS Hosting

VPShared VPS Hosting

QNews

熱門文章

奇異のtravel 奇幻之旅2020-09-24 8,100 views
低清小電影一鍵變4K大片?這軟體神了:效果來感受下 6,502 views
深度學習 | sklearn的train_test_split()各函數參數含義解釋(超級全) 6,200 views
【學習筆記】Iperf3網路性能測試工具 5,300 views
深度學習筆記——常用的激活(激勵)函數 5,000 views
玩遊戲 顯示卡重要還是CPU重要?終於懂了 4,800 views
晶片一樣卻便宜一大截 「丐版」顯示卡值得買嗎? 4,402 views
肯德基遊戲主機KFConsole真來了:4K 240Hz、能炸雞 3,600 views
終於有人把XGBoost 和 LightGBM 講明白了,項目中最主流的集成演算法! 3,000 views
一篇文章教會你使用Java8中的Lambda表達式 2,900 views

熱門搜尋

蘋果 JAVA 華為 小米 CPU處理器 智慧手機 特斯拉 AMD 顯示卡 Intel iPhone手機 Python 新冠病毒 電動車 電影 NVIDIA 三星 微軟 汽車 生科醫學 linux Windows作業系統 騰訊 新冠肺炎 c# 遊戲 比亞迪 MySQL 微信 Windows 10 5G 演算法 .NET 新冠疫苗 日本 美國 javascript 筆記型電腦 PC遊戲 Redmi 網友熱議 晶片 docker 馬斯克 .NET Core
. 简体中文 大陆简体 港澳繁體 马新简体 马来西亚简体 繁體中文

Copyright © 2018-2026 廣告招租