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

XML マニフェスト ファイルの形式

更新日: 2013年12月

XML マニフェスト ファイルではパッケージの内容を記述し、パッケージの内容を各ロールのディレクトリ構造へマップする方法を指定します。一般に、特定のロールにデプロイされるファイルは、他のロールでも必要となります。新しいパッケージ形式のマニフェストを使用すれば、複製したファイルを 1 回だけ追加し、そのファイルを複数のロールへどのようにデプロイするかを宣言できます。新しいパッケージ形式を使用することでアーカイブ構造が簡素化され、異なる複数のロールでファイルを共有するのか、1 つのロール内でファイルを共有するのかに応じてアーカイブを最適化できます。その結果、パッケージ サイズが小さくなり、Windows Azure へ短時間でデプロイできます。

通常、XML マニフェスト ファイルには package.xml という名前を付けます。ただし、リレーションシップが XML マニフェスト ファイルを参照し、XML マニフェスト ファイルがスキーマに準拠している限り、どのようなアーカイブ ファイルでも XML マニフェストとして使用できます。

このトピックでは、サンプルを紹介しながら、XML マニフェスト ファイルの形式について説明します。XML マニフェスト ファイルのスキーマについては、「XML マニフェスト ファイルのスキーマ」を参照してください。

基本的な XML 形式は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<PackageDefinition xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
  <PackageMetaData />
  <PackageContents />
  <PackageLayouts />
</PackageDefinition>

XML マニフェスト ファイルの XML 名前空間は次のとおりです。

http://schemas.microsoft.com/windowsazure

XML マニフェストは 3 つのセクションで構成されます。各セクションは名前付きリソースのコレクションであり、名前はすべて "a/b/c..." 構文を使用した相対 URI です。これらの名前が等しいかどうかを判断するときは大文字と小文字が区別されるので、通常の URI エンコーディング規則とエスケープ規則に従う必要があります。ここでは、3 つのセクションを次の順番で説明します。

PackageMetaData

PackageMetaData コレクションには "キー/値" を格納します。キーと値はいずれも文字列です。PackageMetaData コレクションの例を次に示します。

<PackageMetaData>
  <KeyValuePair>
    <Key>http://schemas.microsoft.com/windowsazure/ProductVersion/</Key>
    <Value>1.7.30308.2000 </Value>
  </KeyValuePair>
</PackageMetaData>

キーと値をエンコードする UTF-8 バイトの合計が 1 MB を超えないようにしてください。パッケージ プロセッサは、1 MB を超えるメタデータを拒否するか可能性があります。

名前空間の競合を回避するため、メタデータ キーの URI も XML 名前空間と同じ規則に従う必要があります。

PackageContents

PackageContents コレクションでは、パッケージを構成するファイルについて記述します。ここでは、ファイル名、長さ、コンテンツの sha256 ハッシュ (省略可能)、パスを指定します。The following is an example of a PackageContents collection:

<PackageContents>
  <ContentDefinition>
    <Name>Content/Example/WithoutHash</Name>
    <ContentDescription>
      <LengthInBytes>123</LengthInBytes>
      <IntegrityCheckHashAlgortihm>None</IntegrityCheckHashAlgortihm>
      <IntegrityCheckHash/>
      <DataStorePath>File00</DataStorePath>
    </ContentDescription>
  </ContentDefinition>
  <ContentDefinition>
    <Name>Content/Example/WithHash</Name>
    <ContentDescription>
      <LengthInBytes>123</LengthInBytes>
      <IntegrityCheckHashAlgortihm>Sha256</IntegrityCheckHashAlgortihm>          <IntegrityCheckHash>AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=</IntegrityCheckHash>
      <DataStorePath>File01</DataStorePath>
    </ContentDescription>
  </ContentDefinition>
</PackageContents>

コンテンツ項目は、名前付きのバイト ストリームとコンテンツ BLOB リソースです。サイズに制限はありません。必要であれば、このバイト ストリームに整合性チェックを指定し、バイトが破損せずに正しく転送されたかどうかを確認できます。

IntegrityCheckHashAlgortihm 要素に指定できる値は、NoneSha256 です。None を指定した場合は、IntegrityCheckHash 要素を空にする必要があります。Sha256 を使用する場合は、base-64 エンコーディングのハッシュ バイトを文字列として指定します。この文字列は、XSD 型 xs:base64Binary で指定する必要があります。

名前は相対 URI であり、大文字と小文字が区別されます。各コンテンツ項目に DataStorePath 要素を追加します。これは、その項目で使用する OPC アーカイブのバイト ストリームを参照する相対 URI です。DataStorePath の名前は任意です。他のファイル システムでも OPC ファイルを容易に展開し、再パッケージ化できるよう、OPC 項目名では US-ASCII を使用し、大文字と小文字を区別してください。また、ファイル システムのパス制限を回避するため、短い名前を使用してください。

PackageLayouts

PackageLayouts コレクションは、Windows Azure VM 上のファイルとディレクトリのレイアウトにコンテンツ リソースをマップします。ファイル レイアウトには、作成時刻、修正時刻、および相対パスが含まれます。このパスは、対象となるファイル システムによって異なります。パスの構文はオペレーティング システムに依存するので、非透過値として処理されます。レイアウトは単にマップを記述したものなので、レイアウトのサイズは、コンテンツのサイズではなく、レイアウトに含まれるファイルの数に比例します。そのため、パッケージ作成者が後で別のレイアウトを追加する可能性があります。たとえば、Linux を対象とするレイアウトに Windows オペレーティング システムを対象とするレイアウトを追加し、オペレーティング システムに依存しないパッケージを作成することができます。ただし、Windows Azure SDK 1.7 では、パッケージは Windows の規則に従う必要があります。

PackageLayouts コレクションは、Windows Azure 仮想マシン上の特定のレイアウト (ファイルとディレクトリ) にパッケージの内容をマップします。パッケージ レイアウトには名前が付けられ、1 つのパッケージに複数のレイアウトを追加できます。各レイアウトは、パッケージ コンテンツ項目のバイト ストリームを対象となるファイル システム上のファイルへどのように抽出するかを指定します。各レイアウトは一意のファイル パスのリストであり、対象となるファイル システムの名前付け規則に従います。パッケージ作成者は、必要であれば別のレイアウトを追加し、オペレーティング システムに依存しないパッケージ作成できます。たとえば、1 つのパッケージに、Linux を対象とするレイアウトと Windows を対象とするレイアウトを含めることができます。レイアウトには、UTC の作成時刻や修正時刻、読み取り専用属性など、ファイル メタデータを追加することもできます。

次の例の PackageLayouts コレクションには、fileCollection1fileCollection2 という 2 つのレイアウトが含まれています。これらのレイアウトはいずれも、パッケージ リソース Content/Example/WithoutHashContent/Example/WithHash から 2 つのファイルを作成します。ただし、コンテンツをマップするファイルの名前はそれぞれ異なります。fileCollection1 では、どちらのファイル名も大文字/小文字の使い方が同じです。fileCollection2 では、ファイル名の文字列自体は同じですが、一方は大文字、もう一方は小文字を使用しています。この例では、オペレーティング システムに依存しないパッケージ形式を設定する方法を示しています。しかし、ファイル レイアウトを作成するパッケージ作成者は、対象となるファイル システムの規則を理解している必要があります。2 番目のファイル レイアウト fileCollection2 は、ファイル システムで大文字と小文字が区別されるオペレーション システムでのみ抽出されます。つまり、FilePath 引数でエンコードされた文字列は、大文字と小文字が区別される非透過のキーとして処理されます。

<PackageLayouts>
    <LayoutDefinition>
      <Name>fileColletion1</Name>
      <LayoutDescription>
        <FileDefinition>
          <FilePath>Readme.txt</FilePath>
          <FileDescription>
            <DataContentReference>Content/Example/WithoutHash</DataContentReference>
            <CreatedTimeUtc>2012-02-01T01:16:33.9633733Z</CreatedTimeUtc>
            <ModifiedTimeUtc>2012-02-01T01:16:33.9643734Z</ModifiedTimeUtc>
            <ReadOnly>false</ReadOnly>
          </FileDescription>
        </FileDefinition>
        <FileDefinition>
          <FilePath>ReadmeToo.txt</FilePath>
          <FileDescription>
            <DataContentReference>Content/Example/WithHash</DataContentReference>
            <CreatedTimeUtc>2012-02-01T01:16:33.9643734Z</CreatedTimeUtc>
            <ModifiedTimeUtc>2012-02-01T01:16:33.9643734Z</ModifiedTimeUtc>
            <ReadOnly>false</ReadOnly>
          </FileDescription>
        </FileDefinition>
      </LayoutDescription>
    </LayoutDefinition>
    <LayoutDefinition>
      <Name>fileColletion2</Name>
      <LayoutDescription>
        <FileDefinition>
          <FilePath>README</FilePath>
          <FileDescription>
            <DataContentReference>Content/Example/WithoutHash</DataContentReference>
            <CreatedTimeUtc>2012-02-01T01:16:33.9643734Z</CreatedTimeUtc>
            <ModifiedTimeUtc>2012-02-01T01:16:33.9643734Z</ModifiedTimeUtc>
            <ReadOnly>false</ReadOnly>
          </FileDescription>
        </FileDefinition>
        <FileDefinition>
          <FilePath>Readme</FilePath>
          <FileDescription>
            <DataContentReference>Content/Example/WithHash</DataContentReference>
            <CreatedTimeUtc>2012-02-01T01:16:33.9643734Z</CreatedTimeUtc>
            <ModifiedTimeUtc>2012-02-01T01:16:33.9643734Z</ModifiedTimeUtc>
            <ReadOnly>false</ReadOnly>
          </FileDescription>
        </FileDefinition>
      </LayoutDescription>
    </LayoutDefinition>
  </PackageLayouts>

参照

表示:
© 2014 Microsoft