

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# デプロイマニフェストスキーマのリファレンス
<a name="dotnet-manifest-schema"></a>

デプロイマニフェストは、Elastic Beanstalk が Windows アプリケーションをデプロイおよび設定する方法を定義する JSON ファイルです。このセクションでは、マニフェストスキーマでサポートされているすべてのプロパティと設定オプションの包括的なリファレンスを提供します。

## マニフェスト構造
<a name="dotnet-manifest-schema-structure"></a>

デプロイマニフェストは、次の最上位構造を持つ特定の JSON スキーマに従います。

**Example 基本的なマニフェスト構造**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### 最上位プロパティ
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion` (必須)  
*タイプ:* 数値  
*デフォルト:* 1  
*有効な値:* 1  
マニフェストスキーマのバージョンを指定します。現在、バージョン 1 のみがポートされていますです。

`skipIISReset` (オプション)  
型: ブール  
*デフォルト:* false  
アプリケーションのデプロイ中に IIS をリセットするかどうかを制御します。このフラグは、`msDeploy` と `aspNetCoreWeb` の両方のデプロイタイプに影響します。  
*動作:*  
+ *指定されていないまたは `false` (デフォルト):* IIS リセットは、インストール、アンインストール、および更新オペレーション中に実行されます。これは従来の動作です。
+ *`true`:* IIS リセットはデプロイオペレーション中にスキップされます。
*利点:*  
+ *ダウンタイムの短縮* – アプリケーションでは、デプロイ中のサービスの中断が短くなります。
+ *デプロイの高速化* – IIS が完全に再起動して再初期化するために必要な時間を無くします。
`skipIISReset` を使用すると、[RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html) オペレーションは、このフラグ設定に関係なく IIS リセットを実行します。
*例*:  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments` (必須)  
*タイプ:* オブジェクト  
アプリケーションのデプロイ設定が含まれます。このオブジェクトには、`msDeploy`、`aspNetCoreWeb`、および `custom` のデプロイタイプを含めることができます。

`iisConfig` (オプション)  
*タイプ:* オブジェクト  
アプリケーションをデプロイする前に適用する IIS 構成設定を定義します。ウェブサイトとアプリケーションプールの両方の設定をサポートします。

## IIS 設定
<a name="dotnet-manifest-schema-iis-config"></a>

`iisConfig` セクションにより、アプリケーションをデプロイする前に IIS 設定を構成できるようになります。これには、特定の設定でアプリケーションプールをセットアップし、カスタムバインディングで IIS ウェブサイトを設定することが含まれます。

### IIS ウェブサイト
<a name="dotnet-manifest-schema-websites"></a>

IIS ウェブサイトにより、アプリケーションをデプロイする前に、物理パスやネットワークバインディングなどのカスタムウェブサイト設定を行えるようになります。

**さまざまな IIS ウェブサイトを作成するための重要な考慮事項**  
*ウェブサイトのセットアップ順序:* ウェブサイトは `websites` 配列に表示される順序で順番に設定されます。プラットフォームは各ウェブサイト設定を順番に処理するため、ウェブサイト間に依存関係がある場合は適切な順序を確保します。
*ファイアウォールとポートへのアクセス:* ポート 80 のみがデフォルトの Elastic Beanstalk Windows ファイアウォール設定を介して自動的に公開されます。非標準ポートを使用するようにウェブサイトを設定する場合は、ebextensions またはカスタムデプロイスクリプトを介してカスタムファイアウォールルールを定義し、これらのポートへの外部アクセスを許可する必要があります。

**Example ウェブサイト設定**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```ウェブサイトのプロパティ

`name` (必須)  
*タイプ:* 文字列  
IIS ウェブサイトの名前。この名前は IIS Manager のウェブサイトを特定するために使用され、IIS 設定内で一意である必要があります。

`physicalPath` (必須)  
*タイプ:* 文字列  
ウェブサイトファイルが保存されているサーバーの物理パス。このパスは IIS ワーカープロセスからアクセス可能である必要があります。

`bindings` (必須)  
*型*: 配列  
*最小項目:* 1  
ウェブサイトがネットワークリクエストに応答する方法を定義するバインディング設定の配列。各バインディングは、プロトコル、ポート、およびオプションのホスト名を指定します。

#### ウェブサイトバインディング
<a name="dotnet-manifest-schema-bindings"></a>

ウェブサイトバインディングは、IIS ウェブサイトが受信リクエストをリッスンするネットワークエンドポイントを定義します。

`protocol` (必須)  
*タイプ:* 文字列  
*有効な値:*「http」、「https」  
バインディングに使用されるプロトコル。

`port` (必須)  
*タイプ:* 整数  
*有効な範囲:* 1～65535  
ウェブサイトがリクエストをリッスンするポート番号。

`hostName` (オプション)  
*タイプ:* 文字列  
バインディングのホスト名 (ドメイン名)。

### アプリケーションプール
<a name="dotnet-manifest-schema-app-pools"></a>

アプリケーションプールはアプリケーション間の分離を提供し、アプリケーションのグループのランタイム設定を構成することを許可します。

**Example アプリケーションプールの設定**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```アプリケーションプールのプロパティ

`name` (必須)  
*タイプ:* 文字列  
アプリケーションプールの名前。この名前は、デプロイ設定でプールを参照するために使用されます。

`enable32Bit` (オプション)  
型: ブール  
32 ビットアプリケーションが 64 ビットバージョンの Windows で実行できるようにします。32 ビットの互換性を必要とするレガシーアプリケーションの場合は、`true` に設定します。

`managedPipelineMode` (オプション)  
*タイプ:* 文字列  
*有効な値:*「Integrated」、「Classic」  
アプリケーションプールのリクエスト処理モードを指定します。

`managedRuntimeVersion` (オプション)  
*タイプ:* 文字列  
*有効な値:*「No Managed Code」、「v2.0」、「v4.0」  
アプリケーションプールの .NET Framework バージョンを指定します。

`queueLength` (オプション)  
*タイプ:* 整数  
追加のリクエストを拒否する前に HTTP.sys がアプリケーションプールに対してキューに入れるリクエストの最大数。

#### CPU 設定
<a name="dotnet-manifest-schema-cpu-config"></a>

`cpu` オブジェクトは、アプリケーションプールの CPU 使用率の制限とモニタリングを設定します。

`limitPercentage` (オプション)  
*タイプ:* 数値  
アプリケーションプール内のワーカープロセスが消費できる CPU 時間の最大パーセンテージ。

`limitAction` (オプション)  
*タイプ:* 文字列  
*有効な値:*「NoAction」、「KillW3wp」、「Throttle」、「ThrottleUnderLoad」  
CPU 制限に達したときに実行するアクション。

`limitMonitoringInterval` (オプション)  
*タイプ:* 数値  
CPU モニタリングとスロットリングの制限のリセット期間 (分単位)。

#### リサイクル設定
<a name="dotnet-manifest-schema-recycling-config"></a>

`recycling` オブジェクトは、アプリケーションプールワーカープロセスをいつどのようにリサイクルするかを設定します。

`regularTimeInterval` (オプション)  
*タイプ:* 整数  
アプリケーションプールがリサイクルされるまでの時間間隔 (分単位)。時間ベースのリサイクルを無効にするには、0 に設定します。

`requestLimit` (オプション)  
*タイプ:* 整数  
リサイクル前にアプリケーションプールが処理するリクエストの最大数。

`memory` (オプション)  
*タイプ:* 整数  
ワーカープロセスのリサイクルをトリガーする仮想メモリの量 (キロバイト単位)。

`privateMemory` (オプション)  
*タイプ:* 整数  
ワーカープロセスのリサイクルをトリガーするプライベートメモリの量 (キロバイト単位)。

## デプロイタイプ
<a name="dotnet-manifest-schema-deployments"></a>

`deployments` オブジェクトには、さまざまなアプリケーションタイプのデプロイ設定の配列が含まれています。各デプロイタイプには、特定のプロパティとユースケースがあります。

### MSDeploy デプロイ
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy デプロイは、Web Deploy (MSDeploy) を使用してデプロイできる従来の .NET Framework アプリケーションに使用されます。

**Example MSDeploy デプロイ構成**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy デプロイプロパティ

`name` (必須)  
*タイプ:* 文字列  
デプロイの一意の名前。この名前は、マニフェスト内のすべてのデプロイで一意である必要があります。

`description` (オプション)  
*タイプ:* 文字列  
人が読み取り可能なデプロイの記述。

`parameters` (必須)  
*タイプ:* オブジェクト  
MSDeploy オペレーションの設定パラメータ。

`scripts` (オプション)  
*タイプ:* オブジェクト  
デプロイライフサイクルのさまざまな段階で実行する PowerShell スクリプト。

#### MSDeploy パラメータ
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対するアプリケーションバンドル (ZIP ファイル) へのパス。このバンドルには、デプロイするアプリケーションファイルが含まれています。

`iisWebSite` (オプション)  
*タイプ:* 文字列  
*デフォルト:*「Default Web Site」  
アプリケーションをデプロイする IIS ウェブサイト。デフォルトでは、アプリケーションは「Default Web Site」にデプロイされます。オプションで、`iisConfig.websites` セクションで設定されたウェブサイト名など、別のウェブサイト名を指定できます。

`iisPath` (オプション)  
*タイプ:* 文字列  
*デフォルト:* "/"  
アプリケーションがデプロイされる IIS の仮想ディレクトリパス。ルートパスには「/」、サブディレクトリには「/api」を使用します。

`appPool` (オプション)  
*タイプ:* 文字列  
このアプリケーションを実行するアプリケーションプールの名前。

### ASP.NET Core デプロイ
<a name="dotnet-manifest-schema-aspnetcore"></a>

ASP.NET Core デプロイは、.NET Core および .NET 5\+ アプリケーション専用に設計されています。

**Example ASP.NET Core デプロイ設定**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

ASP.NET Core デプロイでは、MSDeploy デプロイと同じプロパティ構造を使用します。主な違いは、アプリケーションに使用されるランタイム環境とホスティングモデルです。ASP.NET Core デプロイパラメータ

`appBundle` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対するアプリケーションバンドルへのパス。これは、ZIP アーカイブ、または公開された ASP.NET Core アプリケーションを含むディレクトリパスのいずれかにすることができます。

`iisWebSite` (オプション)  
*タイプ:* 文字列  
*デフォルト:*「Default Web Site」  
ASP.NET Core アプリケーションをデプロイする IIS ウェブサイト。デフォルトでは、アプリケーションは「Default Web Site」にデプロイされます。オプションで、`iisConfig.websites` セクションで設定されたウェブサイト名など、別のウェブサイト名を指定できます。

`iisPath` (オプション)  
*タイプ:* 文字列  
*デフォルト:* "/"  
ASP.NET Core アプリケーションの IIS 内の仮想ディレクトリパス。

`appPool` (オプション)  
*タイプ:* 文字列  
ASP.NET Core アプリケーションのアプリケーションプール。プールは、ASP.NET Core ホスティング用に適切に設定されます。

### カスタムデプロイ
<a name="dotnet-manifest-schema-custom"></a>

カスタムデプロイでは、PowerShell スクリプトを介してデプロイプロセスを完全に制御できます。このデプロイタイプは、カスタムインストール、設定、またはデプロイロジックを必要とする複雑なシナリオに役立ちます。

**Example カスタムデプロイ設定**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```カスタムデプロイプロパティ

`name` (必須)  
*タイプ:* 文字列  
カスタムデプロイの一意の名前。

`description` (オプション)  
*タイプ:* 文字列  
カスタムデプロイの説明。

`architecture` (オプション)  
*タイプ:* 整数  
*デフォルト:* 32  
*有効な値:* 32、64  
PowerShell スクリプトの実行モードのアーキテクチャ仕様

`scripts` (必須)  
*タイプ:* オブジェクト  
デプロイ動作を定義する PowerShell スクリプト。カスタムデプロイでは、他のデプロイタイプと比較して追加のスクリプトタイプをサポートしています。

## デプロイスクリプト
<a name="dotnet-manifest-schema-scripts"></a>

デプロイスクリプトは、デプロイライフサイクル中の特定の時点で実行される PowerShell スクリプトです。異なるデプロイタイプは、異なるスクリプトイベントのセットをサポートします。

### スクリプトイベント
<a name="dotnet-manifest-schema-script-events"></a>

デプロイタイプに応じて、次のスクリプトイベントが利用可能です。標準デプロイスクリプト (msDeploy および aspNetCoreWeb)

`preInstall`  
アプリケーションがインストールまたは更新される前に実行されます。

`postInstall`  
アプリケーションがインストールまたは更新された後に実行されます。

`preRestart`  
アプリケーションが再起動される前に実行されます。

`postRestart`  
アプリケーションが再起動された後に実行されます。

`preUninstall`  
アプリケーションがアンインストールされる前に実行されます。

`postUninstall`  
アプリケーションがアンインストールされた後に実行されます。カスタムデプロイスクリプト (カスタムデプロイのみ)

`install`  
カスタムデプロイ用のプライマリインストールスクリプト。このスクリプトは、アプリケーションまたはサービスをインストールする役割を負います。

`restart`  
アプリケーションまたはサービスを再起動するスクリプト。環境が再起動されると呼び出されます。

`uninstall`  
アプリケーションまたはサービスをアンインストールするスクリプト。環境の終了またはアプリケーションの削除中に呼び出されます。

### スクリプトのプロパティ
<a name="dotnet-manifest-schema-script-properties"></a>

各スクリプトは、次のプロパティを持つオブジェクトとして定義されます。

`file` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対する PowerShell スクリプトファイルへの相対パス。スクリプトには `.ps1` 拡張子がある必要があります。

`ignoreErrors` (オプション)  
型: ブール  
*デフォルト:* false  
`true` に設定すると、スクリプトが失敗してもデプロイは続行されます。これは、重要ではないスクリプトまたはクリーンアップオペレーションに使用します。

**Example スクリプト設定の例**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```