

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

# Amazon WorkSpaces アプリケーションで VHD のセットアップスクリプトを作成する
<a name="create-setup-script"></a>

WorkSpaces Applications は、アプリケーションの起動前に指定したセットアップスクリプトを使用して VHD をマウントします。セットアップスクリプトは、アプリケーションを動作させるために必要なその他のタスクを完了するために使用することもできます。例えば、レジストリキーの設定、DLL の登録、前提条件の管理、またはセットアップスクリプトからのユーザープロファイルの変更を行うことができます。WorkSpaces Applications には、VHD のマウントに使用できるスクリプト例が用意されています。これらのスクリプトは、お使いの VHD とアプリケーションのニーズに合わせて変更する必要があります。

**注記**  
WorkSpaces Applications パッケージングのアプリケーションブロックには、セットアップスクリプトは必要ありません。ただし、オプションでセットアップ後のスクリプトを使用することで、アプリケーションのインストールをカスタマイズできます。

サンプルスクリプトをダウンロードするには、次のリンクを使用します。
+ [Ubuntu Pro 24.04 LTS bash スクリプト](samples/Linux-mount-vhd-script2.zip)
+ [Microsoft Windows PowerShell スクリプト](samples/Windows-mount-vhd-script3.zip)
**注記**  
WorkSpaces アプリケーションと Microsoft Windows オペレーティングシステムは、ドライブ文字 A から E を予約します。これらのドライブ文字に VHDsやネットワーク共有をマウントしないでください。

WorkSpaces Applications は、セットアップスクリプトと VHD をフリートストリーミングインスタンスのディレクトリにダウンロードし、セットアップスクリプトを実行します。セットアップスクリプトは、完全な管理者権限を用いてオペレーティングシステム上で実行されます。セットアップスクリプトは、Microsoft Windows の`SYSTEM`コンテキストで実行され、Ubuntu Pro 24.04 LTS の`root`ユーザーとして実行されます。

VHD とセットアップスクリプトのファイルシステムの場所は以下のとおりです。
+ Ubuntu Pro 24.04 LTS: 

  `/opt/appstream/AppBlocks/{{appblock-name}}/`  
**`appblock-name` **  
VHD とセットアップスクリプトに対応する App Block の名前です。
+ Microsoft Windows:

  `C:\AppStream\AppBlocks\{{appblock-name}}\`  
**`appblock-name` **  
VHD とセットアップスクリプトに対応する App Block の名前です。

WorkSpaces Applications は、オブジェクト上のファイル名をそのまま維持します。例えば、App Block の名前が `MyApps` で、`apps.vhd` という名前の VHD と `mount-apps.ps1` という名前のセットアップスクリプトがある場合、Windows ストリーミングインスタンス上のフルパスは以下のようになります。
+ VHD

  `C:\AppStream\AppBlocks\{{MyApps}}\{{apps.vhd}}`
+ セットアップスクリプト

  `C:\AppStream\AppBlocks\{{MyApps}}\{{mount-apps.ps1}}`

WorkSpaces Applications は、フリートストリーミングインスタンスで実行されたときにセットアップスクリプトから標準エラーと標準出力をキャプチャし、アカウント内の Amazon S3 バケットに出力をアップロードします。これらのログを使用して、セットアップスクリプトで発生する可能性のある問題を特定し、解決することができます。バケットは、以下にあるような特定の形式で命名されます。

```
appstream-logs-{{region-code}}-{{account-id-without-hyphens}}-{{random-identifier}}
```

**`region-code` **  
これは、Elastic フリートが作成される AWS リージョンコードです。

**`account-id-without-hyphens` **  
 AWS アカウント識別子。ランダムな ID は、そのリージョン内のその他バケットとの競合が発生しないことを確実にします。バケット名の最初の部分である appstream-logs は、アカウントおよびリージョンに応じて変化するものではありません。

たとえば、アカウント番号 123456789012 で米国西部 (オレゴン) リージョン (us-west-2) に Elastic フリートを作成すると、WorkSpaces Applications は、表示された名前でそのリージョンのアカウント内に Amazon S3 バケットを作成します。適切なアクセス許可を持つ管理者のみが、このバケットを削除できます。

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

アカウントの S3 バケットでログファイルが保存されているフォルダへのパスは、以下の構造になります。

```
{{bucket-name}}/{{fleet-name}}/{{instance-id}}/{{appblock-name}}/
```

**`bucket-name` **  
セッションスクリプトログが保存されている Amazon S3 バケットの名前です。名前の形式については、このセクションで先ほど説明しました。

**`Instance-id` **  
セットアップスクリプトが実行されたストリーミングインスタンスの一意の識別子です。

**`appblock-name` **  
セットアップスクリプトに対応する App Block の名前です。

以下のフォルダ構造の例は、`test-fleet` で始まるストリーミングセッションに該当します。セッションの AWS アカウント ID は 123456789012 で、アプリケーションブロック名は米国西部 (オレゴン) リージョン (us-west-2) の testappblock です。

`appstream-logs-us-west-2-1234567890123-abcdefg/test-fleet/i-084427ab4a1cff7f5/testappblock/`

このフォルダ構造の例には、標準出力用のログファイルが 1 つ、および標準エラー用のログファイルが 1 つ含まれています。

**Topics**
+ [Amazon WorkSpaces アプリケーションでのアプリケーションブロック設定スクリプトの実行](script-execution.md)