【Azure 雲服務】如何從Azure Cloud Service中獲取項目的部署文件

問題描述

在歷史已經部署的雲服務(Azure Cloud Service)中,如何獲取到項目在很久以前的部署包文件呢?

解決辦法

1)如果部署雲服務是通過門戶上傳部署包到存儲賬號中,則可以直接從存儲賬號(Storage Account -> BLOB)中直接下載部署包

 

2)如果無法找到部署時候使用的存儲賬號(Storage Account)或已經刪除了部署包所存儲的資源。也可以通過Cloud Service所提供的API來實現(Get Package)。

Get Package:獲取用於部署的雲服務部署包,並將部署包文件存儲在Microsoft Azure Blob中,存儲的文件包含兩種(配置文件和項目文件):

  • Service configuration file(.cscfg) – 包含雲服務的配置信息,Role的定義和實例數量等

  • Service package(.cspkg) – 包含項目代碼和服務定義文件

在中國區使用的Endpoint為://management.core.chinacloudapi.cn/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/package

 

關於詳細使用Get Package下載部署包的操作步驟,可以參考原文檔://techcommunity.microsoft.com/t5/azure-paas-blog/azure-cloud-service-download-package/ba-p/819730

 

準備Azure Tools工具

執行以下步驟

  1. 雙擊下載的AzureTools.exe文件,點擊Utils Tab頁
  2. 選擇其中的Misc Tools.
  3. 在新彈出的窗口中,選擇Service Management REST API Tab頁
  4. 創建自定義證書(如果已經有云服務的自定義證書,則在Misc Tools中直接導入.cer的證書文件)
    • 可以通過IIS創建自定義證書或者使用openssl 及 Certreq.exe生成證書。詳細可以參考文檔://technet.microsoft.com/en-us/library/ff710475(v=ws.10).aspx
    • 在本地計算機中安裝新生成的證書 
    • 上傳證書(.cer格式的文件)到雲服務中
    • Azure門戶 –> 雲服務 –> 證書管理(Certificates) –>上傳新證書
  5. 在Misc Tool的Service Management REST API Tab中,數據當前的訂閱號,選擇上一步創建的證書文件,選擇POST操作
  6. 填寫Get Package的URL並攜帶正確的參數。如<subscription-id>,<cloudservice-name>,<deployment-name> 和 containerUri參數。參考文檔://docs.microsoft.com/en-us/previous-versions/azure/reference/jj154121(v=azure.100)
    •  containerUri參數的值為Storage Account存儲賬號,需要一個Public的container的URL用於存儲雲服務的部署包
  7. 點擊Submit按鈕,等待API的返回為202 – Accpeted後,即可以在上一步中的Stroage Account中查看到部署包

 

 

 

當下載雲服務的部署包後,可以直接在文件中查看當項目資源文件,也可以直接把該文件部署到Azure應用服務中。部署包的項目文件結構如下圖所示:

 

 

參考資料 

Get Package//docs.microsoft.com/en-us/previous-versions/azure/reference/jj154121(v=azure.100)
Azure Cloud Service Download Package//techcommunity.microsoft.com/t5/azure-paas-blog/azure-cloud-service-download-package/ba-p/819730
Create and export a self-signed certificate//docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff710475(v=ws.10)?redirectedfrom=MSDN