問題描述
在歷史已經部署的雲服務(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為:https://management.core.chinacloudapi.cn/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/package
關於詳細使用Get Package下載部署包的操作步驟,可以參考原文件:https://techcommunity.microsoft.com/t5/azure-paas-blog/azure-cloud-service-download-package/ba-p/819730
準備Azure Tools工具
- 從連結中下載Azure Tools工具: http://dsazure.blob.core.windows.net/azuretools/AzureTools.exe
- 更多關於Azure Tools的資訊可以檢視MSDN部落格內容:https://docs.microsoft.com/en-us/archive/blogs/kwill/azuretools-the-diagnostic-utility-used-by-the-windows-azure-developer-support-team
執行以下步驟
- 雙擊下載的AzureTools.exe檔案,點選Utils Tab頁
- 選擇其中的Misc Tools.
- 在新彈出的視窗中,選擇Service Management REST API Tab頁
- 建立自定義證書(如果已經有云服務的自定義證書,則在Misc Tools中直接匯入.cer的證書檔案)
- 可以通過IIS建立自定義證書或者使用openssl 及 Certreq.exe生成證書。詳細可以參考文件:https://technet.microsoft.com/en-us/library/ff710475(v=ws.10).aspx
- 在本地計算機中安裝新生成的證書
- 上傳證書(.cer格式的檔案)到雲服務中
- Azure門戶 --> 雲服務 --> 證書管理(Certificates) -->上傳新證書
- 在Misc Tool的Service Management REST API Tab中,資料當前的訂閱號,選擇上一步建立的證書檔案,選擇POST操作
- 填寫Get Package的URL並攜帶正確的引數。如<subscription-id>,<cloudservice-name>,<deployment-name> 和 containerUri引數。參考文件:https://docs.microsoft.com/en-us/previous-versions/azure/reference/jj154121(v=azure.100)
- containerUri引數的值為Storage Account儲存賬號,需要一個Public的container的URL用於儲存雲服務的部署包
- 點選Submit按鈕,等待API的返回為202 - Accpeted後,即可以在上一步中的Stroage Account中檢視到部署包
當下載雲服務的部署包後,可以直接在檔案中檢視當專案資原始檔,也可以直接把該檔案部署到Azure應用服務中。部署包的專案檔案結構如下圖所示:
參考資料
Get Package: https://docs.microsoft.com/en-us/previous-versions/azure/reference/jj154121(v=azure.100)
Azure Cloud Service Download Package: https://techcommunity.microsoft.com/t5/azure-paas-blog/azure-cloud-service-download-package/ba-p/819730
Create and export a self-signed certificate: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff710475(v=ws.10)?redirectedfrom=MSDN