问题描述

在历史已经部署的云服务(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工具

执行以下步骤

  1. 双击下载的AzureTools.exe文件,点击Utils Tab页
  2. 选择其中的Misc Tools.
  3. 在新弹出的窗口中,选择Service Management REST API Tab页
  4. 创建自定义证书(如果已经有云服务的自定义证书,则在Misc Tools中直接导入.cer的证书文件)
    • 可以通过IIS创建自定义证书或者使用openssl 及 Certreq.exe生成证书。详细可以参考文档:https://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参数。参考文档:https://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 Packagehttps://docs.microsoft.com/en-us/previous-versions/azure/reference/jj154121(v=azure.100)
Azure Cloud Service Download Packagehttps://techcommunity.microsoft.com/t5/azure-paas-blog/azure-cloud-service-download-package/ba-p/819730
Create and export a self-signed certificatehttps://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff710475(v=ws.10)?redirectedfrom=MSDN

【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件的更多相关文章

  1. 【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等

    什么是 PaaS?Platform as a Service 平台即服务 (PaaS) 是云中的完整开发和部署环境,你可以使用其中资源交付内容,从基于云的简单应用到启用云的复杂企业应用程序皆可.你以即 ...

  2. 【Azure 云服务】Azure Cloud Service 创建 Alert 指南 [基于旧版 Alert(Classic)不可用情况下]

    问题描述 在Azure云服务(Cloud Service)创建Alert(Classic)时候遇见失败消息:"Failed to update alert testclassicalertr ...

  3. 【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)

    问题描述 把Web Role服务发布到Azure Cloud Service后,需要在IIS的输出日志中,把每一个请求的HTTP Request Header中的User-Agent内容也输出到日志中 ...

  4. 【Azure 云服务】Azure Cloud Service在发布新部署后遇见不能RDP(远程连接)到实例时如何处理?

    Azure 云服务是PaaS 的一个示例. 与 Azure 应用服务一样,此技术设计用于支持可缩放.可靠且运营成本低廉的应用程序. 同样,应用服务托管在虚拟机 (VM) 上,Azure 云服务也是如此 ...

  5. Azure开发者任务之二:Cloud Service项目添加到ASP.Net Web中

    假设我们正在把现有的Web应用程序或ASP.Net MVC Web应用程序迁移到云中.在这种情况下,我们需要把云服务添加到现有的Web应用程序或ASP.Net MVC Web应用程序中. 我们有一个W ...

  6. 利用VisualVM监测Azure云服务中的Java应用

    在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...

  7. 跟我学Windows Azure 四 Cloud Service中的WebRole与WorkRole,及他们之间的通信

    Cloud Service 中WebRole就相当与我们的WebSite,而WorkRole相当与我们在服务器上写了个Windows Service,站在高可用的角度上来讲,Cloud Service ...

  8. Azure 云服务中的实例端点

    Azure云服务(cloud Servive)中有三种端点类型(endpoint type):输入端点(input);内部端点(internal);实例端点(InstanceInput) 1.输入端点 ...

  9. [转]在 Azure 云服务上设计大规模服务的最佳实践

    本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...

随机推荐

  1. java使用Test测试接口类

    package com.jy.demo.web; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; ...

  2. C#遇见C++的江湖 不行!得不到就干掉

    C#  VS C++ C#代码遇见了非托管dll如何处理 问题:托管与非托管,兼容? 方法一:DllImport 托管调试助手 "PInvokeStackImbalance" Me ...

  3. ProBuilder快速原型开发技术 ---操作基础

    本篇文章笔者对ProBuilder(以下简称:PB),进行操作基础的介绍. 一:PB大小图标显示方式 PB操作面板有两种显示方式:小图标与大图标.大图标优点是显示清晰操作方便,缺点是没有更加精确的参数 ...

  4. Codeforces Round #652 (Div. 2) B. AccurateLee(字符串)

    题目链接:https://codeforces.com/contest/1369/problem/B 题意 给出一个长 $n$ 的 二进制串,每次可以选择字符串中的一个 $10$,然后删除其中的一个字 ...

  5. 2019HDU多校 Round10

    Solved:3 Rank:214 08 Coin 题意:n组硬币 每组有两个 分别有自己的价值 每组的第一个被拿了之后才能拿第二个 问拿1,2....2n个硬币的最大价值 题解:之前贪心带反悔的做法 ...

  6. Codeforces Round #304 (Div. 2) C. Basketball Exercise (DP)

    题意:给你两个长度相同的数组,每次从两个数组中选数(也可以不选),但是不可以在同一个数组中连续选两次,问能选的最大值是多少? 题解:dp,\(dp[i][0]\)表示第\(i\)个位置不选,\(dp[ ...

  7. 洛谷-P1434 [SHOI2002]滑雪 (记忆化搜索)

    题意:有一个\(R*C\)的矩阵,可以从矩阵中的任意一个数开始,每次都可以向上下左右选一个比当前位置小的数走,求走到\(1\)的最长路径长度. 题解:这题很明显看到就知道是dfs,但是直接爆搜会TLE ...

  8. CF1462-E2. Close Tuples (hard version)

    本题为hard版,还有一个easy版,区别在于k和m的取值不同. 题意: 给出一个由n个数字组成的数组 \(a\).现在定义一种子集为\(\{A_1, A_2, A_3, ..., A_m\}\),使 ...

  9. OpenStack Train版-11.安装horizon服务(计算节点)

    OpenStack仪表板Dashboard服务的项目名称是Horizon,它所需的唯一服务是身份服务keystone,开发语言是python的web框架Django. 安装Train版本的Horizo ...

  10. 力扣1689. 十-二进制数的最少数目-C语言实现-中等难度题

    题目 传送门 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 .例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是 ...