Azure 云服务(经典)定义架构(.csdef 文件)

服务定义文件定义应用程序的服务模型。 该文件包含可供云服务使用的角色的定义,指定服务终结点,并建立服务的配置设置。 配置设置值是在服务配置文件中设置的,如云服务(经典)配置架构所述。

默认情况下,Azure 诊断配置架构文件将安装到 C:\Program Files\Microsoft SDKs\Azure\.NET SDK\<version>\schemas 目录。 将 <version> 替换为 Azure SDK 的已安装版本。

服务定义文件的默认扩展名为 .csdef。

基本服务定义架构

服务定义文件必须包含一个 ServiceDefinition 元素。 服务定义必须包含至少一个角色(WebRoleWorkerRole)元素。 它可以包含在单个定义中定义的最多 25 个角色,并且可以混合使用角色类型。 服务定义还包含可选的 NetworkTrafficRules 元素,该元素限制哪些角色可以与指定的内部终结点进行通信。 服务定义还包含可选的 LoadBalancerProbes 元素,该元素包含客户为终结点定义的运行状况探测。

服务定义文件的基本格式如下所示。

<ServiceDefinition name="<service-name>" topologyChangeDiscovery="<change-type>" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" upgradeDomainCount="<number-of-upgrade-domains>" schemaVersion="<version>">
  
  <LoadBalancerProbes>
         …
  </LoadBalancerProbes>
  
  <WebRole …>
         …
  </WebRole>
  
  <WorkerRole …>
         …
  </WorkerRole>
  
  <NetworkTrafficRules>
         …
  </NetworkTrafficRules>

</ServiceDefinition>

架构定义

以下主题对架构进行了介绍:

ServiceDefinition 元素

ServiceDefinition 元素是服务定义文件的顶层元素。

下表介绍了 ServiceDefinition 元素的属性。

Attribute 说明
name 必需。 服务的名称。 该名称在服务帐户中必须是唯一的。
topologyChangeDiscovery 可选。 指定拓扑更改通知的类型。 可能的值包括:

- Blast - 将更新尽早发送到所有角色实例。 如果选择此选项,则角色应该能够在不重启的情况下处理拓扑更新。
- UpgradeDomainWalk - 在前一个实例成功接受更新后,按顺序将更新发送到每个角色实例。
schemaVersion 可选。 指定服务定义架构的版本。 如果并行安装多个版本的 SDK,架构版本允许 Visual Studio 选择正确的 SDK 工具用于架构验证。
upgradeDomainCount 可选。 指定在其中分配了此服务中的角色的升级域的数目。 在部署服务时会将角色实例分配到升级域。 有关详细信息,请参阅更新云服务角色或部署管理虚拟机的可用性什么是云服务模型

最多可以指定 20 个升级域。 如果未指定,则升级域的默认数目为 5 个。