导出 (0) 打印
全部展开
此主题尚未评级 - 评价此主题

WorkerRole 架构

更新时间: 2012年6月

[本主题包含 Windows Azure 的当前版本的基本内容。]

Windows Azure 辅助角色是一个对通用开发非常有用的角色,并可对 Web 角色执行后台处理。

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

辅助角色的基本服务定义架构

包含辅助角色的服务定义文件的基本格式如下所示。


<ServiceDefinition …>
  <WorkerRole name="<worker-role-name>" vmsize="<worker-role-size>" enableNativeCodeExecution="[true|false]">
    <Certificates>
      <Certificate name="<certificate-name>" storeLocation="[CurrentUser|LocalMachine] storeName="[My|Root|CA|Trust|Disallow|TrustedPeople|TrustedPublisher|AuthRoot|AddressBook|<custom-store>]” />
    </Certificates>
    <ConfigurationSettings>
      <Setting name="<setting-name>" />
    </ConfigurationSettings>
    <Endpoints>
      <InputEndpoint name="<input-endpoint-name>" protocol="[http|https|tcp|udp]" localPort="<local-port-number>" port="<port-number>" certificate="<certificate-name>" loadBalancerProbe=”<load-balancer-probe-name>” />
      <InternalEndpoint name="<internal-endpoint-name" protocol="[http|tcp|udp|any]" port="<port-number>">
         <FixedPort port="<port-number>"/>
         <FixedPortRange min="<minium-port-number>" max="<maximum-port-number>"/>
      </InternalEndpoint>
     <InstanceInputEndpoint name="<instance-input-endpoint-name>" localPort="<port-number>" protocol="[udp|tcp]">
         <AllocatePublicPortFrom>
            <FixedPortRange min="<minium-port-number>" max="<maximum-port-number>"/>
         </AllocatePublicPortFrom>
      </InstanceInputEndpoint>
    </Endpoints>
    <Imports>
      <Import moduleName="[RemoteAccess|RemoteForwarder|Diagnostics|Connect]"/>
    </Imports>
    <LocalResources>
      <LocalStorage name="<local-store-name>" cleanOnRoleRecycle="[true|false]" sizeInMB="<size-in-megabytes>" />
    </LocalResources>
    <LocalStorage name="<local-store-name>" cleanOnRoleRecycle="[true|false]" sizeInMB="<size-in-megabytes>" />
    <Runtime executionContext="[limited|elevated]">
      <Environment>
         <Variable name="<variable-name>" value="<variable-value>">
            <RoleInstanceValue xpath="<xpath-to-role-environment-settings>"/>
          </Variable>          
      </Environment>
      <EntryPoint>
         <NetFxEntryPoint assemblyName="<name-of-assembly-containing-entrypoint>" targetFrameworkVersion="<.net-framework-version>"/>
         <ProgramEntryPoint commandLine="<application>" setReadyOnProcessStart="[true|false]" "/>
      </EntryPoint>
    </Runtime>
    <Startup priority="<for-internal-use-only>”>
      <Task commandLine="" executionContext="[limited|elevated]" taskType="[simple|foreground|background]">
        <Environment>
         <Variable name="<variable-name>" value="<variable-value>">
            <RoleInstanceValue xpath="<xpath-to-role-environment-settings>"/>
          </Variable>          
        </Environment>
      </Task>
    </Startup>
    <Contents>
      <Content destination="<destination-folder-name>" >
        <SourceDirectory path="<local-source-directory>" />
      </Content>
    </Contents>
  </WorkerRole>
</ServiceDefinition>

架构元素

WorkerRole

WorkerRole 元素描述一个对通用开发非常有用的角色,该角色可对 Web 角色执行后台处理。一个服务可包含零个或多个辅助角色。

下表介绍 WorkerRole 元素的特性。

 

特性 类型 说明

name

string

必需。辅助角色的名称。角色的名称必须独一无二。

enableNativeCodeExecution

boolean

可选。默认值为 true;默认情况下启用本机代码执行和完全信任。将此特性设置为 false 可禁止对辅助角色执行本机代码,并改用 Windows Azure 部分信任。

vmsize

string

可选。设置此值可更改分配给此角色的虚拟机的大小。默认值为 Small。有关可取的虚拟机大小及其特性的列表,请参见 Windows Azure 虚拟机和云服务的大小

ConfigurationSettings

ConfigurationSettings 元素描述辅助角色的配置设置的集合。此元素是 Setting 元素的父元素。

Setting

Setting 元素描述一个用于指定角色实例的配置设置的名称和值对。

下表介绍 Setting 元素的特性。

 

特性 类型 说明

name

string

必需。配置设置的唯一名称。

角色的配置设置是在服务定义文件中声明并在服务配置文件中设置的名称和值对。

LocalResources

LocalResources 元素描述辅助角色的本地存储资源的集合。此元素是 LocalStorage 元素的父元素。

LocalStorage

LocalStorage 元素标识在运行时为服务提供文件系统空间的本地存储资源。一个角色可定义零个或多个本地存储资源。

note注释
LocalStorage 元素可显示为 WorkerRole 元素的子元素以支持与 Windows Azure SDK 的早期版本兼容。

下表介绍 LocalStorage 元素的特性。

 

特性 类型 说明

name

string

必需。本地存储区的唯一名称。

cleanOnRoleRecycle

boolean

可选。指示重新启动角色时是否应清除本地存储区。默认值为 true

sizeInMb

int

可选。要为本地存储区分配的存储空间量 (MB)。如果未指定,则分配的默认存储空间为 100 MB。可分配的最小存储空间量为 1 MB。

本地资源的最大大小取决于虚拟机大小。有关更多信息,请参阅Windows Azure 虚拟机和云服务的大小

分配给本地存储资源的目录的名称与为 name 特性提供的值对应。有关通过在角色实例中运行的代码访问本地存储资源的详细信息,请参阅配置本地存储资源

Endpoints

Endpoints 元素描述角色的输入(外部)终结点、内部终结点和实例输入终结点的集合。此元素是 InputEndpointInternalEndpointInstanceInputEndpoint 元素的父元素。

输入终结点和内部终结点需单独分配。一个服务总共可有 25 个输入、内部和实例输入终结点,可将这些终结点分配到一个服务中允许的 25 个角色上。例如,如果有 5 个角色,则可以为每个角色分配 5 个输入终结点,或者可以将 25 个输入终结点分配给一个角色,或者还可以为 25 个角色分别分配 1 个输入终结点。

note注释
所部署的每个角色都需要一个实例。订阅的默认配置最多可使用 20 个内核,并因此最多可使用一个角色的 20 个实例。如果应用程序需要的实例多于默认配置提供的实例,请参阅计费、订阅管理和配额支持以获取有关提高配额的详细信息。

InputEndpoint

InputEndpoint 元素描述辅助角色的外部终结点。

可按 HTTP、HTTPS、UDP 和 TCP 终结点的组合定义多个终结点。可指定所选的任何端口号用于输入终结点,但为服务中每个角色指定的端口号必须独一无二。例如,如果指定角色将端口 80 用于 HTTP,将端口 443 用于 HTTPS,则可能指定另一个角色将端口 8080 用于 HTTP,将端口 8043 用于 HTTPS。

下表介绍 InputEndpoint 元素的特性。

 

特性 类型 说明

name

string

必需。外部终结点的唯一名称。

protocol

string

必需。外部终结点的传输协议。对于辅助角色,可取的值为 HTTPHTTPSUDPTCP

port

int

必需。用于外部终结点的端口。可指定所选的任何端口号,但为服务中每个角色指定的端口号必须独一无二。

可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

certificate

string

对于 HTTPS 终结点,此项为必需。Certificate 元素定义的证书的名称。

localPort

int

可选。指定终结点上用于内部连接的端口。localPort 将端点上的外部端口映射到角色上的内部端口。对于角色必须与某个端口上的内部组件通信,而该端口与在外部公开的端口不同的情况下,此项很有用。

如果未指定,则 localPort 的值与 port 特性的相同。将 localPort 的值设置为“*”可自动分配可使用运行时 API 发现的未分配端口。

可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 localPort 特性。

ignoreRoleInstanceStatus

boolean

可选。将此特性的值设为 true 后,将忽略服务的状态,并且负载平衡器将不删除该终结点。将此值设置为 true 有助于调试服务的繁忙实例。默认值为 false

note注释
即使在角色不处于就绪状态时,终结点仍可接收通信。

loadBalancerProbe

string

可选。与输入终结点关联的负载平衡器探测的名称。有关更多信息,请参阅 LoadBalancerProbe 架构

InternalEndpoint

InternalEndpoint 元素描述辅助角色的内部终结点。内部终结点仅对在服务中运行的其他角色实例可用;对服务以外的客户端不可用。一个辅助角色最多可有 5 个 HTTP、UDP 或 TCP 内部终结点。

下表介绍 InternalEndpoint 元素的特性。

 

特性 类型 说明

name

string

必需。内部终结点的唯一名称。

protocol

string

必需。内部终结点的传输协议。可取的值为 HTTPTCPUDPANY

值为 ANY 表示允许使用任何协议、任何端口。

port

int

可选。终结点上用于内部进行负载平衡的连接的端口。进行负载平衡的终结点使用两个端口。用于公共 IP 地址的端口和用于专用 IP 地址的端口。通常,将这两个端口设置为同一端口,但也可使用不同端口。

可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Port 特性。

InstanceInputEndpoint

InstanceInputEndpoint 元素描述辅助角色的实例输入终结点。通过在负载平衡器中使用端口转发,将实例输入终结点与特定角色实例关联。每个实例输入终结点都映射到可取的端口范围中某个特定的端口。此元素是 AllocatePublicPortFrom 元素的父元素。

仅在 InstanceInputEndpoint SDK 1.7 版或更高版本中才可以使用 Windows Azure 元素。

下表介绍 InstanceInputEndpoint 元素的特性。

 

特性 类型 说明

name

string

必需。终结点的唯一名称。

localPort

int

必需。指定所有角色实例将侦听的内部端口,用于接收从负载平衡器转发的传入流量。可取值的范围介于 1 到 65535 之间(含二者)。

protocol

string

必需。内部终结点的传输协议。可能的值为 udptcp。对基于 http/https 的通信使用 tcp

AllocatePublicPortFrom

AllocatePublicPortFrom 元素描述可由外部客户用来访问每个实例输入终结点的公共端口范围。从此范围内分配公共 (VIP) 端口号,并在租户部署和更新期间将该端口号分配给每个单独的角色实例终结点。此元素是 FixedPortRange 元素的父元素。

仅在 AllocatePublicPortFrom SDK 1.7 版或更高版本中才可以使用 Windows Azure 元素。

FixedPort

FixedPort 元素指定内部终结点的端口,该端口将在终结点上启用负载平衡连接。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 FixedPort 元素。

下表介绍 FixedPort 元素的特性。

 

特性 类型 说明

port

int

必需。用于内部终结点的端口。这与将 FixedPortRange 的 min 和 max 特性设置为同一端口的效果相同。

可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

FixedPortRange

FixedPortRange 元素指定分配到内部终结点或实例输入终结点的端口范围,并设置用于终结点上的负载平衡连接的端口。

note注释
FixedPortRange 元素的工作方式因其驻留的元素而异。当 FixedPortRange 元素位于 InternalEndpoint 元素中时,它将在负载平衡器上为所有运行该角色的虚拟机打开 min 和 max 特性范围内的所有端口。当 FixedPortRange 元素位于 InstanceInputEndpoint 元素中时,它在每个运行该角色的虚拟机上将仅打开 min 和 max 特性范围内的一个端口。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 FixedPortRange 元素。

下表介绍 FixedPortRange 元素的特性。

 

特性 类型 说明

min

int

必需。范围中的最小端口。可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

max

string

必需。范围中的最大端口。可取值的范围介于 1 到 65535 之间(含二者)(Windows Azure SDK 1.7 版或更高版本)。

Certificates

Certificates 元素描述辅助角色的证书的集合。此元素是 Certificate 元素的父元素。一个角色可拥有任意数量的关联证书。有关使用证书的详细信息,请参阅将证书与服务相关联

Certificate

Certificate 元素描述与辅助角色关联的证书。

下表介绍 Certificate 元素的特性。

 

特性 类型 说明

name

string

必需。此证书的名称,用于在此证书与 HTTPS InputEndpoint 元素关联时引用此证书。

storeLocation

string

必需。本地计算机上可从中找到此证书的证书存储区的位置。可能的值为 CurrentUserLocalMachine

storeName

string

必需。本地计算机上此证书所在的证书存储区的名称。可取的值包括内置存储区名称 MyRootCATrustDisallowedTrustedPeopleTrustedPublisherAuthRootAddressBook 或任何自定义存储区名称。如果指定了自定义存储区名称,则将自动创建该存储区。

permissionLevel

string

可选。指定向角色进程授予的访问权限。如果仅希望提升的进程可访问私钥,请指定 elevated 权限。limitedOrElevated 权限允许所有角色进程访问私钥。可能的值为 limitedOrElevatedelevated。默认值为 limitedOrElevated

Imports

Imports 元素描述辅助角色的导入模块的集合,这些模块向来宾操作系统添加组件。此元素是 Import 元素的父元素。此元素为可选,并且一个角色只能有一个 Runtime 块。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Imports 元素。

Import

Import 元素指定要添加到来宾操作系统的模块。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Import 元素。

下表介绍 Import 元素的特性。

 

特性 类型 说明

moduleName

string

必需。要导入的模块的名称。有效的导入模块为:

  • RemoteAccess

  • RemoteForwarder

  • Diagnostics

  • Connect

通过 RemoteAccess 和 RemoteForwarder 模块,可配置角色实例进行远程桌面连接。有关详细信息,请参阅Set Up a Remote Desktop Connection for a Role

通过 Diagnostics 模块,可收集角色实例的诊断数据。有关详细信息,请参阅Initialize the Windows Azure Diagnostic Monitor

利用 Connect 模块,可在组织网络中的计算机或虚拟机与在 Windows Azure 中运行的角色之间配置受 IPsec 保护的连接。有关详细信息,请参阅Configure Windows Azure Connect

Runtime

Runtime 元素描述辅助角色的环境变量设置的集合,这些设置控制 Windows Azure 主机进程的运行时环境。此元素是 Environment 元素的父元素。此元素为可选,并且一个角色只能有一个 Runtime 块。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Runtime 元素。

下表介绍 Runtime 元素的特性:

 

特性 类型 说明

executionContext

string

可选。指定从中启动角色进程的上下文。默认上下文为 limited

  • limited - 不用管理员权限启动进程。

  • elevated - 用管理员权限启动进程。

Environment

Environment 元素描述辅助角色的环境变量设置的集合。此元素是 Variable 元素的父元素。一个角色可拥有任意数量的环境变量集。

Variable

Variable 元素指定要在来宾操作中设置的环境变量。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Variable 元素。

下表介绍 Variable 元素的特性:

 

特性 类型 说明

name

string

必需。要设置的环境变量的名称。

value

string

可选。要为环境变量设置的值。必须包括 value 特性或 RoleInstanceValue 元素。

RoleInstanceValue

RoleInstanceValue 元素指定要从中检索变量值的 xPath。

下表介绍 RoleInstanceValue 元素的特性。

 

特性 类型 说明

xpath

string

可选。实例的部署设置的位置路径。有关更多信息,请参阅Windows Azure 中的 xPath 值

必须包括 value 特性或 RoleInstanceValue 元素。

EntryPoint

EntryPoint 元素指定角色的入口点。此元素是 NetFxEntryPoint 元素的父元素。通过这些元素,可指定默认 WaWorkerHost.exe 以外的应用程序充当角色入口点。

仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 EntryPoint 元素。

NetFxEntryPoint

NetFxEntryPoint 元素指定要为角色运行的程序。

note注释
仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 NetFxEntryPoint 元素。

下表介绍 NetFxEntryPoint 元素的特性。

 

特性 类型 说明

assemblyName

string

必需。包含入口点的程序集的路径和文件名。该路径相对于文件夹 \%ROLEROOT%\Approot(请勿在 中指定 \%ROLEROOT%\ApprootcommandLine,已使用了它)。%ROLEROOT% 是 Windows Azure 维护的环境变量,它表示角色的根文件夹位置。\%ROLEROOT%\Approot 文件夹表示角色的应用程序文件夹。

targetFrameworkVersion

string

必需。根据其构建程序集的 .NET Framework 的版本。例如,targetFrameworkVersion="v4.0"

ProgramEntryPoint

ProgramEntryPoint 元素指定要为角色运行的程序。通过 ProgramEntryPoint 元素,可指定不基于 .NET 程序集的程序入口点。

note注释
仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 ProgramEntryPoint 元素。

下表介绍 ProgramEntryPoint 元素的特性。

 

特性 类型 说明

commandLine

string

必需。要执行的程序的路径、文件名和任何命令行参数。该路径相对于文件夹 %ROLEROOT%\Approot(请勿在 commandLine 中指定 %ROLEROOT%\Approot,这是假定的)。%ROLEROOT% 是 Windows Azure 维护的环境变量,它表示角色的根文件夹位置。%ROLEROOT%\Approot 文件夹表示角色的应用程序文件夹。

如果程序结束,则将回收角色,因此一般要将程序设置为继续运行,而不是刚启动并运行有限任务的程序。

setReadyOnProcessStart

boolean

必需。指定角色实例是否等待命令行程序表明它已启动。此时必须将此值设置为 true。将该值设置为 false 后,将保留其以供将来使用。

Startup

Startup 元素描述启动角色时运行的任务的集合。此元素可以是 Variable 元素的父元素。有关使用角色启动任务的更多信息,请参见在 Windows Azure 中配置 IIS 组件。此元素为可选,并且一个角色只能有一个 Startup 块。

下表介绍 Startup 元素的特性。

 

特性 类型 说明

priority

int

仅供内部使用。

Task

Task 元素指定在角色启动时进行的启动任务。启动任务可用于执行准备角色以运行安装软件组件或运行其他应用程序的任务。任务按其在 Startup 元素块中的出现顺序执行。

仅在 Windows Azure SDK 1.3 版或更高版本中才可以使用 Task 元素。

下表介绍 Task 元素的特性。

 

特性 类型 说明

commandLine

string

必需。一个包含要运行的命令的脚本,如 CMD 文件。必须以 ANSI 格式保存启动命令和批处理文件。将无法正确处理在文件开头设置字节顺序标记的文件格式。

executionContext

string

指定从中运行脚本的上下文。

  • limited(默认值)- 用与托管进程的角色相同的权限运行。

  • elevated - 用管理员权限运行。

taskType

string

指定命令的执行行为。

  • simple(默认值)- 系统先等待任务退出,然后再启动任何其他任务。

  • background - 系统不等待任务退出。

  • foreground - 与 background 相似,但直到所有前台任务退出后,才会重新启动角色。

Contents

Contents 元素描述辅助角色的内容的集合。此元素是 Content 元素的父元素。

仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 Contents 元素。

Content

Content 元素定义要复制到 Windows Azure 虚拟机的内容的源位置以及将其复制到的目标路径。

仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 Content 元素。

下表介绍 Content 元素的特性。

 

特性 类型 说明

destination

string

必需。Windows Azure 虚拟机上放置内容的位置。此位置相对于文件夹 %ROLEROOT%\Approot

此元素是 SourceDirectory 元素的父元素。

SourceDirectory

SourceDirectory 元素定义从其复制内容的本地目录。使用此元素指定要复制到 Windows Azure 虚拟机的本地内容。

仅在 Windows Azure SDK 1.5 版或更高版本中才可以使用 SourceDirectory 元素。

下表介绍 SourceDirectory 元素的特性。

 

特性 类型 说明

path

string

必需。其内容将复制到 Windows Azure 虚拟机的本地目录的相对或绝对路径。支持扩展目录路径中的环境变量。

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft. 版权所有。