エクスポート (0) 印刷
すべて展開

WorkerRole スキーマ

更新日: 2014年2月

[このトピックには、Microsoft Azure の現行リリースの暫定版コンテンツが記載されています。]

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 要素には、一般化された開発に役立ち、Web ロールのためにバックグラウンド処理を実行できるロールを記述します。1 つのサービスに 0 個以上のワーカー ロールを含めることができます。

次の表では、WorkerRole 要素の属性について説明します。

 

属性 説明

name

string

必須。ワーカー ロールの名前。ロール名は一意である必要があります。

enableNativeCodeExecution

boolean

省略可能。既定値は true です。ネイティブ コードの実行と完全信頼が既定で有効です。この属性を false に設定すると、ワーカー ロールのネイティブ コードの実行が無効になり、Azure の部分信頼が使用されます。

vmsize

string

省略可能。ロールに割り当てられる仮想マシンのサイズを変更するには、この値を設定します。既定値は Small です。指定できる仮想マシンのサイズと属性の一覧については、「Azure の仮想マシンおよびクラウド サービスのサイズ」を参照してください。

ConfigurationSettings 要素には、ワーカー ロールの構成設定のコレクションを記述します。この要素は、Setting 要素の親です。

Setting 要素には、ロールのインスタンスの構成設定を指定する名前と値のペアを記述します。

次の表では、Setting 要素の属性について説明します。

 

属性 説明

name

string

必須。構成設定の一意の名前。

ロールの構成設定は、サービス定義ファイルで宣言され、サービス構成ファイルで設定されている名前と値のペアです。

LocalResources 要素には、ワーカー ロールのローカル ストレージ リソースのコレクションを記述します。この要素は、LocalStorage 要素の親です。

LocalStorage 要素では、実行時にサービスに対してファイル システム領域を提供するローカル ストレージ リソースを特定します。1 つのロールに 0 個以上のローカル ストレージ リソースを定義できます。

noteメモ
LocalStorage 要素は、Azure SDK の旧バージョンとの互換性をサポートするための WorkerRole 要素の子として使用される場合があります。

次の表では、LocalStorage 要素の属性について説明します。

 

属性 説明

name

string

必須。ローカル ストアの一意の名前。

cleanOnRoleRecycle

boolean

省略可能。ロールを再起動したときに、ローカル ストアがクリーンアップされるかどうかを示します。既定値は true です。

sizeInMb

int

省略可能。ローカル ストアに対して割り当てるために必要なストレージ領域の容量 (MB 単位)。指定しない場合、割り当てられる既定のストレージ領域は 100 MB となります。割り当てることができる最小のストレージ領域の容量は 1 MB です。

ローカル リソースの最大サイズは仮想マシンのサイズによって異なります。詳細については、「Azure の仮想マシンおよびクラウド サービスのサイズ」を参照してください。

ローカル ストレージ リソースに割り当てられたディレクトリの名前は、name 属性に指定された値と一致します。ロール インスタンス内で実行されるコードからのローカル ストレージ リソースにアクセスする方法については、「ローカル ストレージ リソースを構成する」を参照してください。

Endpoints 要素には、ロールの入力 (外部)、内部、およびインスタンス入力エンドポイントのコレクションを記述します。この要素は、InputEndpointInternalEndpoint、および InstanceInputEndpoint 要素の親です。

入力および内部エンドポイントは、別々に割り当てられます。1 つのサービスには、入力エンドポイント、内部エンドポイント、およびインスタンス入力エンドポイントを合計 25 個設定することができ、1 つのサービスで許容された 25 のロールに振り分けて割り当てることができます。たとえば、5 つのロールがある場合、1 ロールあたり 5 個の入力エンドポイントを割り当てたり、25 個の入力エンドポイントを 1 つのロールに割り当てたりすることができます。1 つの入力エンドポイントを 25 のロールに割り当てることもできます。

noteメモ
デプロイされた各ロールには、ロールあたり 1 個のインスタンスが必要となります。サブスクリプションの既定のプロビジョニングは 20 コアに制限されているため、ロールのインスタンスは 20 に制限されます。既定のプロビジョニングで指定された多数のインスタンスが必要なアプリケーションの場合、クォータを増やす方法の詳細については、「課金、サブスクリプションの管理、およびクォータのサポート」を参照してください。

InputEndpoint 要素には、ワーカー ロールに対する外部エンドポイントを記述します。

HTTP、HTTPS、UDP、および TCP エンドポイントの組み合わせた複数のエンドポイントを定義できます。入力エンドポイントに対しては、ユーザーが選択する任意のポート番号を指定できますが、サービスの各ロールに対して指定されたポート番号は一意である必要があります。たとえば、あるロールで HTTP にポート 80、HTTPS にポート 443 を使用するように指定する場合、2 番目のロールでは HTTP にポート 8080、HTTPS にポート 8043 を使用するように指定できます。

次の表では、InputEndpoint 要素の属性について説明します。

 

属性 説明

name

string

必須。外部エンドポイントの一意な名前。

protocol

string

必須。外部エンドポイントのトランスポート プロトコル。ワーカー ロールの場合、有効値は、HTTPHTTPSUDP、または TCP です。

port

int

必須。外部エンドポイント用のポート。ユーザーが選択する任意のポート番号を指定できますが、サービスの各ロールに対して指定されたポート番号は一意である必要があります。

有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

certificate

string

HTTPS エンドポイントに対して必須。Certificate 要素で定義された証明書の名前。

localPort

int

省略可能。エンドポイント上の内部接続に使用するポートを指定します。localPort 属性は、ロールの内部ポートにエンドポイントの外部ポートをマップします。ロールの通信先の内部コンポーネントが、外部に公開されたポートとは異なるポート上に存在する場合に使用します。

指定しない場合、localPort の値は、port 属性と同じ値になります。localPort の値を "*" に設定すると、ランタイム API を使用して検出できるまだ割り当てられていないポートを自動的に割り当てることができます。

有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

localPort 属性を使用できるのは、Azure SDK バージョン 1.3 以上を使用している場合だけです。

ignoreRoleInstanceStatus

boolean

省略可能。この属性の値を true に設定した場合、サービスの状態は無視され、エンドポイントが負荷分散により削除されることはありません。この値を true に設定すると、ビジー状態のサービスのインスタンスをデバッグする場合に便利です。既定値は false です。

noteメモ
エンドポイントは、ロールが準備完了状態でない場合でも、トラフィックを受信できます。

loadBalancerProbe

string

省略可能。入力エンドポイントに関連付けられているロード バランサー プローブの名前。詳細については、「LoadBalancerProbe スキーマ」を参照してください。

InternalEndpoint 要素には、ワーカー ロールに対する内部エンドポイントを記述します。内部エンドポイントは、サービス内で実行されている他のロール インスタンスにのみ使用できます。サービス外のクライアントでは使用できません。ワーカー ロールには、最大 5 つまでの HTTP、UDP、または TCP の内部エンドポイントが存在する場合があります。

次の表では、InternalEndpoint 要素の属性について説明します。

 

属性 説明

name

string

必須。内部エンドポイントの一意な名前。

protocol

string

必須。内部エンドポイントのトランスポート プロトコル。有効値は HTTPTCPUDP、または ANY です。

ANY を指定すると、すべてのプロトコルおよびすべてのポートが許可されます。

port

int

省略可能。エンドポイント上での負荷分散された内部接続に使用するポート。1 つの負荷分散されたエンドポイントでは、パブリック IP アドレスに使用されるポートとプライベート IP アドレスで使用されるポートの 2 つのポートを使用します。通常、これらのポートの設定値は同じですが、別のポートを使用するように設定することもできます。

有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

Port 属性を使用できるのは、Azure SDK バージョン 1.3 以上を使用している場合だけです。

InstanceInputEndpoint 要素には、ワーカー ロールのインスタンス入力エンドポイントを記述します。インスタンス入力エンドポイントは、ロード バランサーでポート転送を使用することで、特定のロール インスタンスに関連付けられています。各インスタンス入力エンドポイントは、有効なポート範囲にある特定のポートにマップされます。この要素は、AllocatePublicPortFrom 要素の親です。

InstanceInputEndpoint 要素を使用できるのは、Azure SDK バージョン 1.7 以上を使用している場合だけです。

次の表では、InstanceInputEndpoint 要素の属性について説明します。

 

属性 説明

name

string

必須。エンドポイントの一意の名前。

localPort

int

必須。ロード バランサーから転送された受信トラフィックを受け取るために、すべてのロール インスタンスがリッスンする内部ポートを指定します。有効値の範囲は 1 ~ 65535 で、両端の値を含みます。

protocol

string

必須。内部エンドポイントのトランスポート プロトコル。設定可能な値は、udp または tcp です。http/https ベースのトラフィックでは tcp を使用します。

AllocatePublicPortFrom 要素には、各インスタンス入力エンドポイントにアクセスするために外部顧客が使用できるパブリック ポートの範囲を記述します。パブリック (VIP) ポート番号はこの範囲から割り当てられ、テナントのデプロイおよび更新中に個別のロール インスタンス エンドポイントに割り当てられます。この要素は、FixedPortRange 要素の親です。

AllocatePublicPortFrom 要素を使用できるのは、Azure SDK バージョン 1.7 以上を使用している場合だけです。

FixedPort 要素は、エンドポイント上で負荷分散された接続を有効にする内部エンドポイントのポートを指定します。

FixedPort 要素を使用できるのは、Azure SDK バージョン 1.3 以上を使用している場合だけです。

次の表では、FixedPort 要素の属性について説明します。

 

属性 説明

port

int

必須。内部エンドポイントのポート。この属性は、FixedPortRange の最小値と最大値を同じポートに設定するのと同じ効果があります。

有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

FixedPortRange 要素は、内部エンドポイントまたはインスタンス入力エンドポイントを割り当てられるポートの範囲を指定し、エンドポイント上の負荷分散された接続に使用するポートを設定します。

noteメモ
FixedPortRange 要素は、どの要素で使用されるかによって機能が異なります。FixedPortRange 要素が InternalEndpoint 要素に含まれている場合、ロールを実行しているすべての仮想マシンについて、min 属性と max 属性で指定した範囲にあるロード バランサーのすべてポートが開かれます。FixedPortRange 要素が InstanceInputEndpoint 要素に含まれている場合、ロールを実行中の仮想マシンごとに min 属性と max 属性で指定した範囲内のポートが 1 つだけ開かれます。

FixedPortRange 要素を使用できるのは、Azure SDK バージョン 1.3 以上を使用している場合だけです。

次の表では、FixedPortRange 要素の属性について説明します。

 

属性 説明

min

int

必須。範囲内の最小値のポート。有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

max

string

必須。範囲内の最大値のポート。有効値の範囲は 1 ~ 65535 で、両端の値を含みます (Azure SDK バージョン 1.7 以上)。

Certificates 要素には、ワーカー ロールの証明書のコレクションを記述します。この要素は、Certificate 要素の親です。ロールには、関連付けられた証明書をいくつでも含めることができます。Certificates 要素の使用方法の詳細については、「サービスと証明書の関連付け」を参照してください。

Certificate 要素には、ワーカー ロールに関連付けられている証明書を記述します。

次の表では、Certificate 要素の属性について説明します。

 

属性 説明

name

string

必須。この証明書の名前。この証明書が HTTPS InputEndpoint 要素に関連付けられている場合に、証明書を参照するために使用されます。

storeLocation

string

必須。この証明書がローカル マシン上に保管されている可能性がある証明書ストアの場所。指定できる値は CurrentUser および LocalMachine です。

storeName

string

必須。この証明書がローカル マシンに存在する証明書ストアの名前。有効値には、MyRootCATrustDisallowedTrustedPeopleTrustedPublisherAuthRootAddressBook などの組み込みのストア名または任意のカスタム ストア名を使用できます。カスタム ストア名を指定した場合、そのストアが自動的に作成されます。

permissionLevel

string

省略可能。ロール プロセスに付与されるアクセス許可を指定します。高度な権限を持つプロセスのみが秘密キーにアクセスできるようにするには、elevated 権限を指定します。limitedOrElevated 権限は、すべてのロール プロセスに秘密キーへのアクセスを許可します。設定可能な値は、limitedOrElevated または elevated です。既定値は limitedOrElevated です。

Imports 要素には、ゲスト オペレーティング システムにコンポーネントを追加するワーカー ロールのインポート モジュールのコレクションを記述します。この要素は、Import 要素の親です。この要素は省略可能で、1 つのロールが持つことのできるランタイム ブロックは 1 つだけです。

Imports 要素は、Azure SDK バージョン 1.3 以上を使用している場合のみ使用できます。

Import 要素は、ゲスト オペレーティング システムに追加するモジュールを指定します。

Import 要素は、Azure SDK バージョン 1.3 以上を使用している場合のみ使用できます。

次の表では、Import 要素の属性について説明します。

 

属性 説明

moduleName

string

必須。インポートするモジュールの名前。有効なインポート モジュールは次のとおりです。

  • RemoteAccess

  • RemoteForwarder

  • 診断

  • 接続

RemoteAccess モジュールと RemoteForwarder モジュールを使用すると、リモート デスクトップ接続のロール インスタンスを構成できます。詳細については、「Set Up a Remote Desktop Connection for a Role」を参照してください。

Diagnostics モジュールを使用すると、ロール インスタンスの診断データを収集できます。詳細については、「Initialize the Azure Diagnostic Monitor」を参照してください。

Connect モジュールを使用すると、組織のネットワーク上のコンピューターまたは仮想マシンと Azure で実行中のロール間に IPsec 保護接続を構成できます。詳細については、「Configure Azure Connect」を参照してください。

Runtime 要素には、Azure ホスト プロセスのランタイム環境を制御するワーカー ロールに対する環境変数設定のコレクションを記述します。この要素は、Environment 要素の親です。この要素は省略可能で、1 つのロールが持つことのできるランタイム ブロックは 1 つだけです。

Runtime 要素は、Azure SDK バージョン 1.3 以上を使用している場合のみ使用できます。

次の表では、Runtime 要素の属性について説明します。

 

属性 説明

executionContext

string

省略可能。ロール プロセスが起動されるコンテキストを指定します。既定のコンテキストは limited です。

  • limited – 管理者特権なしでプロセスを起動します。

  • elevated – 管理者特権でプロセスを起動します。

Environment 要素には、ワーカー ロールの環境変数設定のコレクションを記述します。この要素は、Variable 要素の親です。ロールには、環境変数セットをいくつでも含めることができます。

Variable 要素は、ゲスト オペレーティング システムで設定する環境変数を指定します。

Variable 要素は、Azure SDK バージョン 1.3 以上を使用している場合のみ使用できます。

次の表では、Variable 要素の属性について説明します。

 

属性 説明

name

string

必須。設定する環境変数の名前。

value

string

省略可能。環境変数に対して設定する値。value 属性または RoleInstanceValue 要素が含まれている必要があります。

RoleInstanceValue 要素は、変数の値の取得先の xPath を指定します。

次の表では、RoleInstanceValue 要素の属性について説明します。

 

属性 説明

xpath

string

省略可能。インスタンスのデプロイ設定の場所へのパス。詳細については、「Azure の xPath 値」を参照してください。

value 属性または RoleInstanceValue 要素が含まれている必要があります。

EntryPoint 要素は、ロールのエントリ ポイントを指定します。この要素は、NetFxEntryPoint 要素の親です。これらの要素を使用すると、ロール エントリ ポイントとして機能する、既定の WaWorkerHost.exe 以外のアプリケーションを指定できます。

EntryPoint 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

NetFxEntryPoint 要素は、ロールに対して実行するプログラムを指定します。

noteメモ
NetFxEntryPoint 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

次の表では、NetFxEntryPoint 要素の属性について説明します。

 

属性 説明

assemblyName

string

必須。エントリ ポイントを含むアセンブリのパスとファイル名。パスは \%ROLEROOT%\Approot フォルダーに対して相対的です。 では \%ROLEROOT%\ApprootcommandLine までが既定値であるため、この部分は指定しないでください。%ROLEROOT% は、Azure によって維持されている環境変数であり、ロールのルート フォルダーの場所を表します。\%ROLEROOT%\Approot フォルダーは、ロールのアプリケーション フォルダーを表します。

targetFrameworkVersion

string

必須。アセンブリがビルドされた .NET Framework のバージョン。例: targetFrameworkVersion="v4.0"

ProgramEntryPoint 要素は、ロールに対して実行するプログラムを指定します。ProgramEntryPoint 要素を使用すると、.NET アセンブリに基づいていないプログラムのエントリ ポイントを指定できます。

noteメモ
ProgramEntryPoint 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

次の表では、ProgramEntryPoint 要素の属性について説明します。

 

属性 説明

commandLine

string

必須。実行するプログラムのパス、ファイル名、および任意のコマンド ライン引数。パスは \%ROLEROOT%\Approot フォルダーに対して相対的です。commandLine では %ROLEROOT%\Approot までが既定値であるため、この部分は指定しないでください。%ROLEROOT% は、Azure によって維持されている環境変数であり、ロールのルート フォルダーの場所を表します。%ROLEROOT%\Approot フォルダーは、ロールのアプリケーション フォルダーを表します。

プログラムが終了すると、ロールがリサイクルされるため、通常はプログラムが実行され続けるようにし、単に起動して有限のタスクを実行するだけのプログラムにはしないようにします。

setReadyOnProcessStart

boolean

必須。ロール インスタンスが、コマンド ライン プログラムの開始が通知されるのを待機するかどうかを指定します。この値は、現時点では true に設定する必要があります。この値の false への設定は、将来的に使用される予定です。

Startup 要素には、ロールが開始時に実行するタスクのコレクションを記述します。この要素は、Variable 要素の親要素になることができます。ロールのスタートアップ タスクの使用方法の詳細については、「Azure の IIS コンポーネントを構成する」を参照してください。この要素は省略可能で、1 つのロールが持つことのできるスタートアップ ブロックは 1 つだけです。

次の表では、Startup 要素の属性について説明します。

 

属性 説明

priority

int

内部使用のみです。

Task 要素は、ロールの開始時に実行されるスタートアップ タスクを指定します。スタートアップ タスクは、このようなインストール ソフトウェアのコンポーネントまたはその他のアプリケーションをロールが実行するように準備するタスクを実行するために使用できます。タスクは、Startup 要素ブロック内に表示される順序で実行されます。

Task 要素は、Azure SDK バージョン 1.3 以上を使用している場合のみ使用できます。

次の表では、Task 要素の属性について説明します。

 

属性 説明

commandLine

string

必須。実行するコマンドを含む、CMD ファイルなどのスクリプト。スタートアップ コマンドおよびバッチ ファイルは、ANSI 形式で保存する必要があります。ファイルの先頭にバイト順マーカーを設定するファイル形式は正しく処理されません。

executionContext

string

スクリプトが実行されるコンテキストを指定します。

  • limited [既定] – プロセスをホストしているロールと同じ特権で実行されます。

  • elevated – 管理者特権で実行されます。

taskType

string

コマンドの実行動作を指定します。

  • simple [既定] – タスクの終了を待って次のタスクを開始します。

  • background – タスクの終了を待ちません。

  • foreground – バックグラウンドに似ていますが、すべてのフォアグラウンド タスクが終了するまでロールが再開されないところが異なります。

Contents 要素には、ワーカー ロールのコンテンツのコレクションを記述します。この要素は、Content 要素の親です。

Contents 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

Content 要素は、Azure の仮想マシンにコピーされるコンテンツのソースの場所、およびコピー先のパスを定義します。

Content 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

次の表では、Content 要素の属性について説明します。

 

属性 説明

destination

string

必須。コンテンツが配置される Azure 仮想マシンの場所。この場所は、フォルダー %ROLEROOT%\Approot に対して相対的です。

この要素は、SourceDirectory 要素の親要素です。

SourceDirectory 要素は、コンテンツのコピー元のローカル ディレクトリを定義します。この要素を使用すると、ローカル コンテンツを Azure 仮想マシンにコピーするよう指定できます。

SourceDirectory 要素は、Azure SDK バージョン 1.5 以上を使用している場合のみ使用できます。

次の表では、SourceDirectory 要素の属性について説明します。

 

属性 説明

path

string

必須。Azure 仮想マシンにコピーするコンテンツがあるローカル ディレクトリの相対パスまたは絶対パス。ディレクトリ パスでの環境変数の展開がサポートされています。

関連項目

表示:
© 2014 Microsoft