すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Image Builderでサポートされるコマンド

最終更新日:Dec 24, 2024

Image Builder機能は、画像テンプレートを使用して画像コンテンツをカスタマイズします。 イメージコンポーネントを指定するか、コマンドを直接指定してイメージテンプレートを作成できます。 画像コンポーネントは、1つ以上のコマンドから構成される。 コマンドは、画像テンプレートの最小単位です。 このトピックでは、Image Builderでサポートされている一般的なコマンドの構文と例を示します。

コマンド構文

Image Builderは、LinuxおよびWindowsオペレーティングシステムではYAML Ain't Markup Language (YAML) 形式のコマンドをサポートし、LinuxオペレーティングシステムではDockerFile形式のコマンドのみをサポートします。

説明

DockerFile形式のコマンドは柔軟性が低く、オペレーティングシステムに制限があります。 YAML形式の使用を推奨します。

YAML形式およびDockerFile形式のコマンドには、次の構文要件があります。

  • YAML: [パラメーター] および [タスク] フィールドを定義する必要があります。 構文:

    Parameters: # (Optional) Define custom parameters.
      param1: # (Required) Specify the parameter name.
        Type: String # (Required) Specify the parameter type. Valid values: String, Number, and Boolean.
        DefaultValue: defaultValue # (Optional) Configure the default value of the parameter. If a parameter does not have a default value, you must explicitly pass in the parameter to the image template that contains the image component in which the parameter is included.
    Tasks: # Define the task list of the image component, which contains at least one task. The tasks in the task list are executed in sequence.
      - Name: taskName1 # (Required) Specify the task name.
        Action: RunShellCommand # (Required) Specify the task action. For more information, see the component commands in the YAML format.
        Properties: # Specify action properties. The properties vary based on the action.
          commandContent: echo {{ param1 }} # Reference a custom parameter.
      - Name: taskName2
        Action: action2
        Properties:
          action2Property1: {{ taskName1.stdout }} # Reference the output of the taskName1 task.
    説明

    上記のパラメーターは、[タスク] フィールドのプロパティとして参照できます。 次のサンプルコードは、参照構文を提供します。

    {{taskName1.stdout}}           
  • DockerFile

    • 各行には、1つのコマンドまたは1つのコマンドの一部のみが含まれます。

    • 1つのコマンドを複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。

Image Builderでサポートされるコマンド

次のセクションでは、image Builderを使用してElastic Compute Service (ECS) コンソールでイメージコンポーネントを作成し、API操作を呼び出す場合に、イメージコンポーネントでサポートされるコマンド構文について説明します。

ECSコンソールおよびAPI操作でサポートされているコンポーネントコマンド

(推奨) Y AML形式

コマンド

構文または例

説明

出力

RunShellCommand

Name: String
Action: RunShellCommand
Properties:
  commandContent: String # Specify the command content.
  workingDir: String,optional # Specify the working directory.
  username: String,optional # Specify the username of the account that is used to run the command.
  • このコマンドは、シェルスクリプトを実行するために使用されます。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

stdout: String# Specify the output of the command.

RunPowerShellCommand

Name: String
Action: RunPowerShellCommand
Properties:
  commandContent: String # Specify the command content.
  workingDir: String,optional # Specify the working directory.
  username: String,optional # Specify the username of the account that is used to run the command.
  windowsPasswordName: String,optional # Specify the password of the account that is used to run the command on a Windows instance.
  • このコマンドは、PowerShellスクリプトの実行に使用されます。

  • このコマンドは、Windowsオペレーティングシステムにのみ適用されます。

InvokeCommand

Name: String
Action: InvokeCommand
Properties:
 commandId: String # Specify the command ID.
 username: String,optional # Specify the username of the account that is used to run the command.
 parameters: Json,optional # Specify the key-value pairs of custom parameters.

このコマンドは、共通コマンドを実行するために使用されます。

OSSDownload

Name: String
Action: OSSDownload
Properties:
 bucketName: String # Specify the name of an Object Storage Service (OSS) bucket.
 destinationDir: String # Specify a folder on an ECS instance.
 objectName: String # Specify the name of an OSS object.
 ossRegion: String,optional # Specify the OSS region.
 validTime: Number,optional # Specify the validity period of the OSS object URL.
  • このコマンドは、OSSバケットからECSインスタンスにファイルをダウンロードするために使用されます。

  • 使用するバケットにallowImageBuilderAccess:trueタグを追加する必要があります。

なし。

OSSUpload

Name: String
Action: OSSUpload
Properties:
 bucketName: String # Specify the name of an OSS bucket.
 fileToUpload: String # Specify the path of the file that you want to upload from an ECS instance.
 objectName: String # Specify the name of an OSS object.
 ossRegion: String,optional # Specify the OSS region.
 validTime: Number,optional # Specify the validity period of the OSS object URL.
  • このコマンドは、ECSインスタンスからOSSバケットにファイルをアップロードするために使用されます。

  • 使用するOSSバケットにallowImageBuilderAccess:trueタグを追加する必要があります。

WebDownload

Name: String
Action: WebDownload
Properties:
 sourcePath: String # Specify the URL of a network file.
 tokenInfo: String,optional # Specify a token used to download the file. This property is required only if you download files from GitHub.
 destinationDir: String # Specify the directory to which the file is downloaded on an ECS instance.
 timeout: Number,option,default=600 # Specify the download timeout time.

このコマンドは、ネットワークからファイルをダウンロードするために使用されます。

再起動

Name: String
Action: Reboot
Properties:
 forceStop: Boolean,optional,default=false # Specify whether to forcefully restart an ECS instance.

このコマンドは、ECSインスタンスを再起動するために使用されます。

DockerFile形式

コマンド

構文または例

説明

再起動

再起動

  • このコマンドは、ECSインスタンスを再起動するために使用されます。

  • コマンドの後にコンテンツを追加しないでください。

実行

RUN echo hello;\
echo world;
  • このコマンドは、イメージを作成するために使用されます。

  • このコマンドは複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。

ENV

  • ENVキー値

  • ENV key1="value1" key2="value2"

  • このコマンドは、システム変数を設定するために使用されます。

  • このコマンドは、キーと値のペアの形式です。

説明

コマンドの各システム変数の値の前後に二重引用符 (") が必要です。 例: ENV key1="value1" key2="value2"

WORKDIR

  • WORKDIR /<パス>

  • WORKDIR <path1>/<path2>

このコマンドは、作業ディレクトリを指定するために使用されます。

COPY

  • COPY <ネットワークファイルのアドレス> <オンプレミスの宛先ディレクトリ>

  • COPY <オンプレミスのソースファイルパス> <オンプレミスの宛先ディレクトリ>

このコマンドはファイルのコピーに使用されます。

説明

ネットワークファイルはwgetユーティリティを使用してダウンロードする必要があり、クエリ文字列はURLでサポートされていません。 さらに、中間インスタンスはインターネットにアクセスできる必要があります。

USER

ユーザー <ユーザー名>

このコマンドは、コマンドの実行に使用されるアカウントのユーザー名を指定するために使用されます。

説明

<username> 変数を既存のユーザー名に置き換えます。 それ以外の場合、コマンドの実行後にエラーが報告されます。

ラベル

LABEL user="username"\
date="2020-11-11" key="value"
  • このコマンドは、テンプレートメタデータを定義するために使用されます。

  • このコマンドは複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。

CMD

  • CMD ["executable","param1","param2"]

  • CMDコマンドparam1 param2

このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。

エントリーポイント

  • ENTRYPOINT ["executable","param1","param2"]

  • CMDコマンドparam1 param2

このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。

説明

CMDコマンドとENTRYPOINTコマンドは、コンテナーの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。 コマンドにはさまざまな使用シナリオと機能があり、個別にまたは組み合わせて使用して、より柔軟な結果を実現できます。 CMDコマンドとENTRYPOINTコマンドの違いについては、「Dockerfileリファレンス」をご参照ください。

DockerFile形式のテンプレートコマンド (API操作でのみサポート)

コマンド

構文または例

説明

COMPONENT

  • 成分ic-bp18hy47cqavewsb ****

  • 部品ic-bp18hy47cqavewsb ****-paramName1 paramValue1-paramName2 paramValue2

  • コンポーネントacs:ecs:<RegionId >:< AliUid>:imagecomponent/<ComponentName >:< major>.<minor>.<patch>

    説明

    アスタリスク (*) をワイルドカード文字として使用して、イメージコンポーネントの最新バージョンを指定する <major><minor> 、または <patch> 変数を置き換えることができます。

このコマンドは、画像コンポーネントを指定するために使用されます。 システムコンポーネントまたはカスタムコンポーネントを指定できます。

  • このコマンドは、画像テンプレートにのみ適用されます。

  • イメージテンプレートを作成するときに、このコマンドを実行して、イメージテンプレートに1つ以上のイメージコンポーネントを指定できます。

  • このコマンドを使用して、YAMLまたはDockerFile形式のコンポーネントを呼び出すことができます。

再起動

再起動

  • このコマンドは、ECSインスタンスを再起動するために使用されます。

  • コマンドの後にコンテンツを追加しないでください。

実行

RUN echo hello;\
echo world;
  • このコマンドは、イメージを作成するために使用されます。

  • このコマンドは複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

ENV

  • ENVキー値

  • ENV key1="value1" key2="value2"

  • このコマンドは、システム変数を設定するために使用されます。

  • このコマンドは、キーと値のペアの形式です。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

説明

コマンドの各システム変数の値の前後に二重引用符 (") が必要です。 例: ENV key1="value1" key2="value2"

WORKDIR

  • WORKDIR /<パス>

  • WORKDIR <path1>/<path2>

  • このコマンドは、作業ディレクトリを指定するために使用されます。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

COPY

  • COPY <ネットワークファイルのアドレス> <オンプレミスの宛先ディレクトリ>

  • COPY <オンプレミスのソースファイルパス> <オンプレミスの宛先ディレクトリ>

  • このコマンドはファイルのコピーに使用されます。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

説明

ネットワークファイルはwgetユーティリティを使用してダウンロードする必要があり、クエリ文字列はURLでサポートされていません。 さらに、中間インスタンスはインターネットにアクセスできる必要があります。

USER

ユーザー <ユーザー名>

  • このコマンドは、コマンドの実行に使用されるアカウントのユーザー名を指定するために使用されます。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

説明

<username> 変数をシステム内の既存のユーザー名に置き換えます。 それ以外の場合、コマンドの実行時にエラーが報告されます。

ラベル

LABEL user="username"\
date="2020-11-11" key="value"
  • このコマンドは、テンプレートメタデータを定義するために使用されます。

  • このコマンドは複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

CMD

  • CMD ["executable","param1","param2"]

  • CMDコマンドparam1 param2

  • このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

エントリーポイント

  • ENTRYPOINT ["executable","param1","param2"]

  • CMDコマンドparam1 param2

  • このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。

  • このコマンドは、Linuxオペレーティングシステムにのみ適用されます。

説明

CMDコマンドとENTRYPOINTコマンドは、コンテナーの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。 コマンドにはさまざまな使用シナリオと機能があり、個別にまたは組み合わせて使用して、より柔軟な結果を実現できます。 CMDコマンドとENTRYPOINTコマンドの違いについては、「Dockerfileリファレンス」をご参照ください。

componentコマンドの例

イメージコンポーネントを作成するときに、[ビルド] または [テスト] を選択できます。 次のサンプルテンプレートコマンドをコピーし、ビジネスシナリオに基づいてコマンドを変更できます。

  • ビルドコンポーネントは、イメージコンテンツをカスタマイズするために使用され、イメージビルドテンプレートでのみ使用できます。

  • テストコンポーネントは、イメージを期待どおりに実行でき、イメージテストテンプレートでのみ使用できるかどうかをテストするために使用されます。

ビルドコンポーネント

Linuxオペレーティングシステム

Parameters:
  message:
    Type: String
    DefaultValue: hello world
Tasks:
  - Name: HelloWorld
    Action: RunShellCommand
    Properties:
      commandContent: echo {{messgae}}
  - Name: HelloWorldAgain
    Action: RunShellCommand
    Properties:
      commandContent: echo {{HelloWorld.stdout}}

Windowsオペレーティングシステム

Parameters:
  message:
    Type: String
    DefaultValue: hello world
Tasks:
  - Name: HelloWorld
    Action: RunPowerShellCommand
    Properties:
      commandContent: echo {{messgae}}
  - Name: HelloWorldAgain
    Action: RunPowerShellCommand
    Properties:
      commandContent: echo {{HelloWorld.stdout}}

テストコンポーネント

Linuxオペレーティングシステム

Parameters:
  message:
    Type: String
    DefaultValue: hello world
Tasks:
  - Name: HelloWorld
    Action: RunShellCommand
    Properties:
      commandContent: echo {{messgae}}
  - Name: HelloWorldAgain
    Action: RunShellCommand
    Properties:
      commandContent: |-
        echo {{HelloWorld.stdout}}
        exit 0

Windowsオペレーティングシステム

Parameters:
  message:
    Type: String
    DefaultValue: hello world
Tasks:
  - Name: HelloWorld
    Action: RunPowerShellCommand
    Properties:
      commandContent: echo {{messgae}}
  - Name: HelloWorldAgain
    Action: RunPowerShellCommand
    Properties:
      commandContent: |-
        echo {{HelloWorld.stdout}}
        exit 0