

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

# Windows サーバーでのソフトウェアのカスタマイズ
<a name="customize-containers-windows-ec2"></a>

アプリケーションが依存するソフトウェアをカスタマイズして設定できます。これらのファイルは、例えば、実行する必要のある追加パッケージやサービスなど、アプリケーションが必要とするいずれかの依存関係です。Elastic Beanstalk 環境のカスタマイズと設定に関する一般的な情報については、「[Elastic Beanstalk 環境の設定](customize-containers.md)」を参照してください。

**注記**  
YAML は、一貫したインデントに依存します。設定ファイルの例でコンテンツを置き換える際はインデントレベルを一致させ、テキストエディタがインデントにタブ文字ではなくスペースを使用していることを確認します。

設定ファイルは、アプリケーションが実行している Windows サーバーに影響する次のキーをサポートします。

**Topics**
+ [パッケージ](#windows-packages)
+ [[Sources] (出典)](#windows-sources)
+ [ファイル](#windows-files)
+ [コマンド](#windows-commands)
+ [サービス](#windows-services)
+ [コンテナコマンド](#windows-container-commands)

キーは、上に表示した順に処理されます。

**注記**  
古い (バージョニング非対応) .NET プラットフォームのバージョンの場合は、正しい順序で設定ファイルが処理されません。詳細については、「[Elastic Beanstalk Windows サーバープラットフォームのメジャーバージョン間での移行](dotnet-v2migration.md)」を参照してください。

設定ファイルの作成およびテスト中は、環境の[イベント](using-features.events.md)を監視します。Elastic Beanstalk は、無効なキーなどの検証エラーが含まれている設定ファイルを無視し、同じファイルに含まれている他のキーを一切処理しません。これが発生すると、Elastic Beanstalk は警告イベントをイベントログに追加します。

## パッケージ
<a name="windows-packages"></a>

`packages` キーを使用して、パッケージ済みのアプリケーションとコンポーネントをダウンロードしてインストールします。

Windows 環境では、Elastic Beanstalk は MSI パッケージのダウンロードとインストールをサポートしています。(Linux 環境は、追加のパッケージマネージャをサポートします。詳細については、*Linux サーバーでのソフトウェアのカスタマイズ*ページで [パッケージ](customize-containers-ec2.md#linux-packages) を参照してください)。

Amazon Simple Storage Service (Amazon S3) オブジェクトなどの外部の場所は、その URL がパブリックアクセス可能であれば参照できます。

複数の `msi:` パッケージを指定する場合、それらのインストール順序は保証されません。

### 構文
<a name="windows-packages-syntax"></a>

パッケージ名として選択した名前と、値としての MSI ファイルの場所への URL を指定します。`msi:` キーの下に複数のパッケージを指定できます。

```
packages: 
  msi:
    package name: package url
    ...
```

### 例
<a name="windows-packages-snippet"></a>

次の例では、`https://dev.mysql.com/` から [**mysql**] をダウンロードする URL を指定します。

```
packages:
  msi:
    mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi
```

次の例では、MSI ファイルの場所として Amazon S3 オブジェクトを指定しています。

```
packages:
  msi:
    mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi
```

## [Sources] (出典)
<a name="windows-sources"></a>

`sources` キーを使用して、公開 URL からアーカイブファイルをダウンロードし、EC2 インスタンス上のターゲットディレクトリに解凍します。

### 構文
<a name="windows-sources-syntax"></a>

```
sources:  
  target directory: location of archive file
```

### サポートされる形式
<a name="windows-sources-support"></a>

Windows 環境では、Elastic Beanstalk は .zip 形式をサポートしています。(Linux 環境は、追加の形式をサポートします。詳細については、*Linux サーバーでのソフトウェアのカスタマイズ*ページで [[Sources] (出典)](customize-containers-ec2.md#linux-sources) を参照してください)。

Amazon Simple Storage Service (Amazon S3) オブジェクトなどの外部の場所は、その URL がパブリックアクセス可能であれば参照できます。

### 例
<a name="windows-sources-example"></a>

以下の例では、Amazon S3 から公開 .zip ファイルをダウンロードし、`c:/myproject/myapp` に解凍しています。

```
sources:  
  "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip
```

## ファイル
<a name="windows-files"></a>

`files` キーを使用して、EC2 インスタンス上にファイルを作成できます。内容は、設定ファイルでインラインとするか、URL から指定できます。ファイルは辞書式順序でディスクに書き込まれます。Amazon S3 からプライベートファイルをダウンロードするには、認可のインスタンスプロファイルを指定します。

### 構文
<a name="windows-files-syntax"></a>

```
files:  
  "target file location on disk":
    source: URL
    authentication: authentication name:

  "target file location on disk":
    content: |
      this is my content
    encoding: encoding format
```

### オプション
<a name="windows-files-options"></a>

`content`  
(オプション) 文字列。

`source`  
(オプション) ファイルの読み込み元の URL。このオプションと content キーを一緒に指定することはできません。

`encoding`  
(オプション) エンコード形式。このオプションは、指定されたコンテンツキーの値にのみ使用されます。デフォルト値は `plain` です。  
有効な値: `plain` \$1 `base64`

`authentication`  
(オプション) 使用する [CloudFormation 認証方法](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html)の名前。リソースキーで、Auto Scaling グループメタデータに認証方法を追加できます。

### 例
<a name="windows-files-snippet"></a>

次の例は、ファイルコンテンツを提供する 2 つの方法である、URL からと設定ファイルのインラインからの方法を示しています。

```
files:
  "c:\\targetdirectory\\targetfile.txt":
    source: http://foo.bar/myfile
 
  "c:/targetdirectory/targetfile.txt":
    content: |
      # this is my file
      # with content
```

**注記**  
ファイルパスにバックスラッシュ (\$1) を使用する場合、前の例に示すようにこの前に別のバックスラッシュ (エスケープ文字) を置く必要があります。

次の例では、リソースキーを使用して S3Auth という認証方法を追加して、Amazon S3 から秘密ファイルをダウンロードするのに使用します。

```
files:
  "c:\\targetdirectory\\targetfile.zip":
    source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip
    authentication: S3Auth

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          s: ["amzn-s3-demo-bucket"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
```

## コマンド
<a name="windows-commands"></a>

`commands` キーを使用して、EC2 インスタンスでコマンドを実行します。コマンドは、名前のアルファベット順に処理され、アプリケーションとウェブサーバーが設定されてアプリケーションバージョンファイルが抽出される前に実行されます。

指定されたコマンドが管理者ユーザーとして実行されます。

コマンドの問題をトラブルシューティングするには、[インスタンスログ](using-features.logging.md)で出力を確認できます。

### 構文
<a name="windows-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
```

### オプション
<a name="windows-commands-options"></a>

`command`  
実行するコマンドを指定する配列または文字列です。配列を使用する場合、スペース文字をエスケープしたり、コマンドパラメータを引用符で囲んだりする必要はありません。

`cwd`  
（オプション）作業ディレクトリです。デフォルトでは、Elastic Beanstalk はプロジェクトのディレクトリの場所を探します。見つからない場合は、デフォルトとして `c:\Windows\System32` を使用します。

`env`  
（オプション）コマンドの環境変数を設定します。このプロパティは、既存の環境に追加するのではなく、既存の環境を上書きします。

`ignoreErrors`  
（オプション）`command` キーに含まれるコマンドが失敗した場合（非ゼロ値を返した場合）、他のコマンドを実行する必要があるかどうかを指定するブール値です。失敗したコマンドがあっても他のコマンドの実行を続ける場合は、この値を `true` に設定します。コマンドが失敗したら実行を停止する場合は、`false` に設定します。デフォルト値は `false` です。

`test`  
(オプション) Elastic Beanstalk が `command` キーに含まれるコマンドを処理するために、値 `true` (終了コード 0) を返す必要があるコマンド。

`waitAfterCompletion`  
(オプション) コマンドが完了してから次のコマンドを実行するまでに、待機する秒数。デフォルト値は **60** 秒です。**forever** を指定することもできます。  
デプロイ中のシステム再起動はサポートされていません。コマンドの結果としてシステムが再起動すると、インスタンスの初期化が失敗し、それによりデプロイが失敗します。  
回避策として、この [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config) を使用して、デプロイの完了後に再起動をスケジュールできます。

### 例
<a name="windows-commands-snippet"></a>

次の例は、指定されたファイルに `set` コマンドの出力を保存します。後続のコマンドがある場合、Elastic Beanstalk は、このコマンドの完了直後にそのコマンドを実行します。このコマンドで再起動が必要な場合、Elastic Beanstalk はコマンドが完了すると、直後にインスタンスを再起動します。

```
commands:
  test: 
    command: set > c:\\myapp\\set.txt
    waitAfterCompletion: 0
```

## サービス
<a name="windows-services"></a>

`services` キーを使用して、インスタンスが起動されるときに開始または停止する必要のあるサービスを定義できます。また、`services` キーではソース、パッケージ、ファイルへの依存関係も指定でき、インストールされているファイルのために再起動が必要になった場合に、Elastic Beanstalk がサービスの再起動を処理します。

### 構文
<a name="windows-services-syntax"></a>

```
services: 
  windows:
    name of service:
      files:
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
            "package name[: version]"
      commands: 
        - "name of command"
```

### オプション
<a name="windows-services-options"></a>

`ensureRunning`  
(オプション) `true` に設定すると、Elastic Beanstalk が終了した後でサービスが実行されます。  
`false` に設定すると、Elastic Beanstalk が終了した後でサービスは実行されません。  
このキーを省略すると、サービスの状態は変更されません。

`enabled`  
(オプション) `true` に設定すると、起動時にサービスが自動的に開始されます。  
`false` に設定すると、起動時にサービスが自動的に開始されません。  
このキーを省略すると、このプロパティは変更されません。

`files`  
ファイルのリストです。Elastic Beanstalk がファイルブロックによって直接変更した場合、サービスは再起動されます。

`sources`  
ディレクトリのリストです。Elastic Beanstalk がこれらのディレクトリの 1 つにアーカイブを拡張した場合、サービスは再起動されます。

`packages`  
パッケージ名のリストに対するパッケージマネージャのマップです。Elastic Beanstalk がこれらのパッケージの 1 つをインストールまたは更新した場合、サービスは再起動されます。

`commands`  
コマンド名のリストです。Elastic Beanstalk が指定したコマンドを実行すると、サービスは再起動されます。

### 例
<a name="windows-services-snippet"></a>

```
services: 
  windows:
    myservice:
      enabled: true
      ensureRunning: true
```

## コンテナコマンド
<a name="windows-container-commands"></a>

`container_commands` キーを使用して、アプリケーションのソースコードに影響するコマンドを実行します。コンテナコマンドは、アプリケーションおよびウェブサーバーが設定され、アプリケーションバージョンアーカイブが抽出された後、アプリケーションバージョンがデプロイされる前に実行されます。コンテナ以外のコマンドと他のカスタマイズオペレーションは、アプリケーションソースコードが抽出される前に実行されます。

コンテナコマンドは、ソースコードがアプリケーションサーバーにデプロイされる前に抽出されたステージングディレクトリから実行されます。コンテナコマンドを使用してステージングディレクトリにあるソースコードに対して行うすべての変更は、ソースが最終的な場所にデプロイされる際に含まれます。

コンテナコマンドの問題をトラブルシューティングするには、[インスタンスログ](using-features.logging.md)で出力を確認できます。

`leader_only` オプションを使用して、1 つのインスタンスでコマンドを実行するか、テストコマンドが `test` と評価される場合のみコマンドを実行するよう `true` を設定します。リーダー専用コンテナコマンドは、環境の作成およびデプロイ中のみ実行されます。他のコマンドやサーバーカスタマイズオペレーションは、インスタンスがプロビジョニングまたは更新されるたびに実行されます。リーダー専用コンテナコマンドは、AMI ID やインスタンスタイプの変更などの起動設定の変更によって実行されることはありません。

### 構文
<a name="windows-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: command to run
```

### オプション
<a name="windows-container-commands-options"></a>

`command`  
実行する文字列または文字列の配列。

`env`  
(オプション) コマンドを実行する前に環境変数を設定し、既存の値を上書きします。

`cwd`  
（オプション）作業ディレクトリです。デフォルトでは、これは解凍されたアプリケーションのステージングディレクトリです。

`leader_only`  
(オプション) Elastic Beanstalk によって選択された単一のインスタンスでコマンドを実行するのみです。リーダー専用コンテナコマンドは、他のコンテナコマンドより前に実行されます。コマンドはリーダー専用または `test` を持つことができますが、両方はできません (`leader_only` が優先されます)。

`test`  
(オプション) このコンテナコマンドを実行するために、`true` を返す必要があるテストコマンドを実行します。コマンドはリーダー専用または `test` を持つことができますが、両方はできません (`leader_only` が優先されます)。

`ignoreErrors`  
(オプション) このコンテナコマンドが 0 (成功) 以外の値を返す場合は、デプロイに失敗しません。有効にするには、`true` に設定します。

`waitAfterCompletion`  
(オプション) コマンドが完了してから次のコマンドを実行するまでに、待機する秒数。デフォルト値は **60** 秒です。**forever** を指定することもできます。  
デプロイ中のシステム再起動はサポートされていません。コマンドの結果としてシステムが再起動すると、インスタンスの初期化が失敗し、それによりデプロイが失敗します。  
回避策として、この [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config) を使用して、デプロイの完了後に再起動をスケジュールできます。

### 例
<a name="windows-container-commands-snippet"></a>

次の例は、指定されたファイルに `set` コマンドの出力を保存します。Elastic Beanstalk は 1 つのインスタンスでコマンドを実行し、コマンドが完了すると、直後にインスタンスを再起動します。

```
container_commands:
  foo:
    command: set > c:\\myapp\\set.txt
    leader_only: true
    waitAfterCompletion: 0
```