你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
升级部署
Upgrade Deployment
异步操作使用你指定的包和配置在部署中启动角色实例的更新。
请求
可以按以下方式指定 Upgrade Deployment
请求。 将 <subscription-id>
替换为订阅 ID,将 <cloudservice-name>
替换为云服务的名称,将 <deployment-slot>
替换为 staging
或 production
,或者将 <deployment-name>
替换为部署的名称。
方法 | 请求 URI |
---|---|
POST | https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deploymentslots/<deployment-slot>/ |
POST | https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>/ |
URI 参数
URI 参数 | 说明 |
---|---|
comp=upgrade |
必需。 指定必须更新部署。 |
请求标头
下表介绍请求标头。
请求标头 | 说明 |
---|---|
Content-Type |
必需。 将此标头设置为 application/xml 。 |
x-ms-version |
必需。 指定用于此请求的操作的版本。 此标头应设置为 2009-10-01 或更高版本。 |
请求正文
请求正文的格式如下所示:
<?xml version="1.0" encoding="utf-8"?>
<UpgradeDeployment xmlns="http://schemas.microsoft.com/windowsazure">
<Mode>type-of-upgrade</Mode>
<PackageUrl>url-to-package</PackageUrl>
<Configuration>base64-encoded-config-file</Configuration>
<Label>base-64-encoded-label</Label>
<RoleToUpgrade>role-name</RoleToUpgrade>
<Force>true|false</Force>
<ExtendedProperties>
<ExtendedProperty>
<Name>property-name</Name>
<Value>property-value</Value>
</ExtendedProperty>
</ExtendedProperties>
<ExtensionConfiguration>
<AllRoles>
<Extension>
<Id>identifier-of-extension</Id>
<State>state-of-extension</State>
</Extension>
</AllRoles>
<NamedRoles>
<Role>
<RoleName>role_name1</RoleName>
<Extensions>
<Extension>
<Id>identifier-of-extension</Id>
<State>state-of-extension</State>
</Extension>
</Extensions>
</Role>
</NamedRoles>
</ExtensionConfiguration>
</UpgradeDeployment>
下表说明了请求正文的元素。
元素名称 | 说明 |
---|---|
“模式” | 必需。 指定要启动的更新的类型。 在部署服务时将角色实例分配给更新域。 可在每个更新域中手动开始更新,也可以在所有更新域中自动开始更新。 可能的值包括: - Auto - Manual - Simultaneous 如果未指定,默认值为 Auto 。 如果设置为 Manual ,则必须调用 WalkUpgradeDomain 来应用更新。 如果设置为 Auto ,则更新将按顺序自动应用于每个更新域。仅在 2012-12-01 或更高版本中才可以使用 Simultaneous 设置。 |
PackageUrl | 必需。 指定引用 BLOB 服务中的服务包的位置的 URL。 服务包可位于同一个订阅下的存储帐户中,也可位于任何存储帐户的共享访问签名 (SAS) URI 中。 有关共享访问签名的详细信息,请参阅 使用共享访问签名委派访问权限。 |
配置 | 必需。 指定用于部署的 Base-64 编码的服务配置文件。 |
Label | 必需。 指定 Base-64 编码的云服务的名称。 该名称的长度最长可以为 100 个字符。 建议该标签在说明内唯一。 该名称可用于标识云服务,以便进行跟踪。 |
RoleToUpgrade | 可选。 指定要更新的特定角色实例的名称。 在单角色升级中,如果计划了内部 Azure 升级,则所有其他角色仍可回收。 在这种情况下,可以保证更新域。 |
Force | 必需。 指示更新是否应继续进行,即使它会导致某些角色实例丢失本地数据。 True 如果更新应继续进行,则为 ;否则为 false 。元素 Force 仅适用于版本 2011-10-01 或更高版本。 |
名称 | 可选。 指定某个扩展的云服务属性的名称。 每个扩展属性都必须有定义的名称和值。 最多可有 25 个扩展属性的名称/值对。Name 元素的最大长度为 64 个字符,仅字母数字字符和下划线在名称中有效,并且该名称必须以字母开头。 尝试使用其他字符、以非字母字符开头或者输入与同一云服务所拥有的其他扩展属性名称完全相同的名称都将导致状态代码 400(错误请求)错误。元素 Name 仅适用于版本 2012-03-01 或更高版本。 |
值 | 可选。 指定某个扩展的云服务属性的值。 每个扩展属性都必须有定义的名称和值。 最多可有 25 个扩展属性的名称/值对,并且每个扩展属性值的最大长度为 255 个字符。 你可以通过将该值设置为 NULL,删除扩展属性。 元素 Value 仅适用于版本 2012-03-01 或更高版本。 |
ExtensionConfiguration | 可选。 指定添加到云服务的扩展。 在 Azure 中,进程可作为云服务的扩展运行。 必须先使用 “添加扩展” 将扩展添加到云服务,然后才能在更新期间将其添加到部署。 元素 ExtensionConfiguration 仅适用于版本 2013-03-01 或更高版本。 |
ExtensionConfiguration
指定添加到云服务的扩展。
元素名称 | 说明 |
---|---|
AllRoles | 可选。 指定应用于部署中所有角色的扩展的列表。 |
扩展名 | 必需。 指定要部署到云服务中某个角色的扩展。 |
NamedRoles | 可选。 指定应用于部署中指定角色的扩展的列表。 |
分机
指定要部署到云服务中某个角色的扩展。
元素名称 | 说明 |
---|---|
ID | 必需。 指定扩展的标识符。 向云服务添加扩展时,即创建标识符。 可以使用列表扩展查找已添加到云服务的 扩展的 ID。 |
状态 | 可选。 指定扩展的状态。 该元素仅适用于 JSON 配置扩展。 可能的值包括: - Enable - Disable - Uninstall 默认值为 Enable 。元素 State 仅在版本 2014-06-01 或更高版本中可用。 |
NamedRoles
指定应用于部署中指定角色的扩展的列表。
元素名称 | 说明 |
---|---|
角色 | 必需。 指定将扩展添加到的特定角色。 |
RoleName | 必需。 指定角色的名称。 |
扩展名 | 必需。 指定要部署到云服务中某个角色的扩展。 |
响应
响应包括 HTTP 状态代码和一组响应标头。
状态代码
此操作成功后返回状态代码 200(正常)。
响应标头
此操作的响应包括以下标头。 该响应还可能包括其他标准 HTTP 标头。
响应标头 | 说明 |
---|---|
x-ms-request-id |
一个值,它唯一地标识对管理服务做出的请求。 对于异步操作,可以使用 标头的值调用 “获取操作状态” ,以确定操作是已完成、已失败还是仍在进行中。 |
响应正文
无。
备注
若要执行部署的自动更新,请调用 升级部署 或更改 部署配置 ,并将 Mode
元素设置为 automatic
。 更新将从该点继续并且无需进一步的输入。 可以调用 “获取操作状态” 来确定更新何时完成。
若要执行手动更新,请首先调用 升级部署 ,并将 Mode
元素设置为 manual
。 接下来,调用 WalkUpgradeDomain 以更新部署中的每个域。 你应该在更新下一个域之前通过调用获取操作状态确保该操作完成。
添加或删除角色实例的更新将导致对云服务中部署的所有角色进行配置更新。 需要向现有角色实例通知新的角色实例,以使所有角色实例均可在云服务中进行通信。
默认情况下为一个云服务部署 5 个更新域,在就地更新期间一次一个地更新这些域。
若要确定运行某个特定实例的更新域,请使用 UpdateDomain
类的 RoleInstance
属性。