このトピックでは、Windowsインスタンス用のユーザーデータスクリプトを準備する方法と、ユーザーデータを渡してユーザーデータの実行結果を検証する方法について説明します。

始める前に

インスタンスのユーザーデータを変更する場合、インスタンスは [停止済み] 状態になります。

このタスクについて

ユーザーデータ機能により、Windowsインスタンスは初期化スクリプトを実行できます。 インスタンスが起動すると、システムは管理者権限を使用してインスタンスのユーザーデータを実行します。
ユーザーデータには次の制限が適用されます。
  • ユーザーデータ機能は、仮想プライベートクラウド (VPC) に存在するインスタンスでのみサポートされます。
  • インスタンスは、次のパブリックイメージまたはパブリックイメージから派生したカスタムイメージから作成する必要があります。
    • Alibaba Cloud Linux、CentOS、Ubuntu、SUSE Linux Enterprise、OpenSUSE、およびDebian
    • Windows Server 2008 R2以降
  • ユーザーデータ機能は、使用可能なすべてのインスタンスタイプでサポートされています。 廃止されたインスタンスタイプの場合、ユーザーデータ機能はI/O最適化インスタンスでのみサポートされます。 詳細については、「サポートが終了しているインスタンスタイプ」をご参照ください。
  • 実行するユーザーデータはBase64でエンコードする必要があります。 ユーザーデータのサイズは、エンコード前に16 KBを超えることはできません。
    説明 コンソールには、Base64でエンコードされていないユーザーデータを入力できます。 コンソールは自動的にBase64のユーザーデータをエンコードします。 コンソールにユーザーデータを入力したくない場合は、自分でBase64でエンコードする必要があります。

手順

  1. ユーザーデータを準備します。
    バッチスクリプトとPowerShellスクリプトを実行して、Windowsインスタンスのユーザーデータを準備できます。 さまざまなスクリプトの特性とその例の詳細については、次のセクションを参照してください。
  2. ユーザーデータをインスタンスに渡します。
    • インスタンスの作成時にユーザーデータを渡します。[システム構成 (オプション)] で、[詳細設定] をクリックしてパラメーターを表示し、[ユーザーデータ] セクションにユーザーデータを入力します。 ユーザーデータがBase64でエンコードされている場合は、Enter Base64 encoded Informationを選択します。
      指定したファイルへの書き込み例を次の図に示します。 createinstance-powershellsample
    • 既存のインスタンスのユーザーデータを変更する: [インスタンス] ページで、ユーザーデータを変更するインスタンスを見つけ、[詳細] > [インスタンス設定] > [ユーザーデータの設定] を選択します。 [ユーザーデータの設定] ダイアログボックスで、[ユーザーデータ] セクションに新しいユーザーデータを入力します。
      説明 インスタンスのユーザーデータを変更した直後に従量課金インスタンスを起動する場合は、インスタンスの停止モードを [インスタンスの保持と課金の継続] に設定することを推奨します。
      指定したファイルへの書き込み内容の例を次の図に示します。 modifyinstance-powershellsample
      説明 Windowsインスタンスのユーザーデータが変更された後、インスタンスの起動時に新しいユーザーデータは実行されません。
  3. インスタンスに渡されたコンテンツとスクリプトの結果を表示します。
    1. インスタンスに接続します。 詳細については、「概要」をご参照ください。
    2. インスタンスのメタデータを使用してコンテンツを表示します。
      Invoke-RestMethod http:// 100.100.100.200/latest/user-data
      この例では、ステップ2で渡されるユーザーデータを例として使用します。 ユーザーデータが出力に含まれている場合、次の図に示すように、ユーザーデータが渡されます。 view-userdata
    3. 実行結果を表示します。
      スクリプトの実行結果は、そのコンテンツに関連しています。 指定したファイルにコンテンツを書き込んだ結果の例を次の図に示します。 powershell-サンプル

バット

バッチスクリプトには次の特徴があります。
  • 最初の行は [bat] で始まり、ヘッダーにはスペースを使用できません。
  • 半幅の文字のみを入力でき、追加の文字は許可されません。
例:
[バット]
エコー "バットテスト" > C:\userdata_test.txt
次の図に示すように、サンプルバッチスクリプトを実行して、インスタンスの初回起動時に "bat test"userdata_test.txtファイルに書き込むことができます。 bat-サンプル

PowerShell

PowerShellスクリプトには次の特徴があります。
  • 最初の行は [powershell] で始まり、ヘッダーにはスペースを使用できません。
  • 半幅の文字のみを入力でき、追加の文字は許可されません。
例:
[パワーシェル]
書き込み出力 "powershell test"  出力ファイルC:\userdata_test.txt
次の図に示すように、PowerShellスクリプトの例を実行して、インスタンスの初回起動時にpowershell testuserdata_test.txtファイルに書き込むことができます。 powershell-サンプル