AWSTOE コンポーネントマネージャーがサポートするアクションモジュール - EC2 Image Builder

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

AWSTOE コンポーネントマネージャーがサポートするアクションモジュール

EC2 Image Builder などのイメージ構築サービスは、 AWSTOE アクションモジュールを使用して、カスタマイズされたマシンイメージの構築とテストに使用される EC2 インスタンスの設定を支援します。このセクションでは、一般的に使用される AWSTOE アクションモジュールの特徴と、それらの設定方法について説明します。例も示します。

AWSTOE コンポーネントはプレーンテキストの YAML ドキュメントで作成されます。ドキュメントの構文についてはカスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用するを参照。

注記

すべてのアクションモジュールは、Linux の root と Windows の NT Authority\SYSTEM の両方で、実行時に Systems Manager エージェントと同じアカウントを使用します。

汎用実行モジュール

次のセクションには、一般的な実行コマンドと命令を実行するアクションモジュールの詳細が含まれています。

一般的な実行アクションモジュール

ExecuteBash

ExecuteBash アクションモジュールを使用すると、インラインシェルコード/コマンドを使用して bash スクリプトを実行できます。このモジュールは Linux をサポートします。

コマンドブロックで指定したすべてのコマンドと命令はファイル (例:input.sh) に変換され、bash シェルで実行されます。シェルファイルを実行した結果がステップの終了コードです。

スクリプトが終了コード で終了すると、ExecuteBashモジュールはシステムの再起動を処理します194。起動すると、アプリケーションは以下のいずれかのアクションを実行します。

  • Systems Manager エージェントによって実行された場合、アプリケーションは終了コードを呼び出し側に渡します。Systems Manager エージェント はシステムの再起動を処理し、「スクリプトからのマネージドインスタンスの再起動」で説明されているように、再起動を開始したのと同じステップを実行します。

  • アプリケーションは現在の executionstate を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。

Input (入力)
プリミティブ型 説明 タイプ 必須
commands bash 構文に従って実行する命令またはコマンドのリストが含まれています。複数行の YAML を使用できます。 リスト あり

入力例: 再起動前と再起動後

name: ExitCode194Example description: This shows how the exit code can be used to restart a system with ExecuteBash schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecuteBash inputs: commands: - | REBOOT_INDICATOR=/var/tmp/reboot-indicator if [ -f "${REBOOT_INDICATOR}" ]; then echo 'The reboot file exists. Deleting it and exiting with success.' rm "${REBOOT_INDICATOR}" exit 0 fi echo 'The reboot file does not exist. Creating it and triggering a restart.' touch "${REBOOT_INDICATOR}" exit 194
出力
フィールド 説明 [Type] (タイプ)
stdout コマンド実行の標準出力。 string

再起動を開始し、194 アクションモジュールの一部として終了コードを返すと、再起動を開始したのと同じアクションモジュールステップでビルドが再開されます。終了コードなしで再起動を開始すると、ビルドプロセスが失敗する可能性があります。

出力例: 再起動前 (初めてドキュメントから)

{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }

出力例: 再起動後 (2 回目にドキュメントを通過)

{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }

ExecuteBinary

ExecuteBinary アクションモジュールを使用すると、コマンドライン引数のリストを含むバイナリファイルを実行できます。

バイナリファイルが (Linux) または 194 (3010Windows) の終了コードで終了すると、ExecuteBinaryモジュールはシステムの再起動を処理します。この場合、アプリケーションは以下のいずれかのアクションを実行する:

  • Systems Manager エージェントによって実行された場合、アプリケーションは終了コードを呼び出し側に渡します。Systems Manager エージェントはシステムの再起動を処理し、スクリプトから管理対象インスタンスを再起動するで説明したように、再起動を開始したのと同じステップを実行します。

  • アプリケーションは現在の executionstate を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。

Input (入力)
プリミティブ型 説明 タイプ 必須
path 実行用のバイナリファイルへのパス。 文字列 あり
arguments バイナリの実行時に使用するコマンドライン引数のリストが含まれています。 文字列リスト なし

入力例:.NET のインストール

- name: "InstallDotnet" action: ExecuteBinary inputs: path: C:\PathTo\dotnet_installer.exe arguments: - /qb - /norestart
出力
フィールド 説明 [Type] (タイプ)
stdout コマンド実行の標準出力。 string

出力例

{ "stdout": "success" }

ExecuteDocument

ExecuteDocument アクションモジュールは、ネストされたコンポーネントドキュメントのサポートを追加し、1 つのドキュメントから複数のコンポーネントドキュメントを実行します。 は、実行時に入力パラメータに渡されるドキュメント AWSTOE を検証します。

制限事項
  • このアクションモジュールは 1 回だけ実行され、再試行はできません。また、タイムアウト制限を設定するオプションもありません。ExecuteDocument は、次のデフォルト値を設定し、変更しようとするとエラーを返します。

    • timeoutSeconds:-1

    • maxAttempts: 1

    注記

    これらの値は空白のままにすると、 はデフォルト値 AWSTOE を使用します。

  • 文書のネストは最大 3 レベルまで可能ですが、それ以上はできません。最上位レベルはネストされていないため、3 レベルのネストは 4 つのドキュメントレベルに相当します。このシナリオでは、最下位の文書は他の文書を呼んではならない。

  • コンポーネントドキュメントを繰り返し実行することはできません。ループ構造の外部で自身を呼び出したり、現在の実行チェーンの上位にある別のドキュメントを呼び出したりするドキュメントは、サイクルを開始して無限ループに陥る可能性があります。 AWSTOE は周期的な実行を検出すると、実行を停止し、失敗を記録します。

ExecuteDocument アクションモジュールのネストレベルの制限。

コンポーネントドキュメント自体を実行しようとしたり、現在の実行チェーンで上位にあるコンポーネントドキュメントを実行しようとしたりすると、実行は失敗します。

Input (入力)

プリミティブ型 説明 タイプ 必須
document

コンポーネントドキュメントのパス。有効なオペレーションは以下のとおりです。

  • ローカルファイルパス

  • S3 URI

  • EC2 Image Builder コンポーネントビルドバージョン ARN

文字列 あり
document-s3-bucket-owner

コンポーネントドキュメントが保存されている S3 バケットの S3 バケット所有者のアカウント ID。(コンポーネントドキュメントで S3 URI を使用している場合にお勧めです。)

文字列 なし
phases

コンポーネントドキュメントで実行するフェーズ。カンマ区切りのリストで指定します。フェーズが指定されていない場合は、すべてのフェーズが実行されます。

文字列 なし
parameters

実行時にキーと値のペアとしてコンポーネントドキュメントに渡される入力パラメータ。

パラメータマップリスト なし

パラメータマップ入力

プリミティブ型 説明 タイプ 必須
name

ExecuteDocument アクションモジュールが実行中のコンポーネントドキュメントに渡す入力パラメータの名前。

文字列 あり
value

入力パラメータの値。

文字列 あり
入力例

以下の例は、インストールパスによってコンポーネントドキュメントに入力される内容のバリエーションを示しています。

入力例:ローカルドキュメントパス

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: Sample-1.yaml phases: build parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

入力例:ドキュメントパスとしての S3 URI

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: s3://my-bucket/Sample-1.yaml document-s3-bucket-owner: 123456789012 phases: build,validate parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

入力例:ドキュメントパスとしてEC2 Image Builder コンポーネント ARN

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0 phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

ForEach ループを使用したドキュメントの実行

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForEachLoop' forEach: - Sample-1.yaml - Sample-2.yaml inputs: document: "{{myForEachLoop.value}}" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

For ループを使ってドキュメントを実行する

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForLoop' for: start: 1 end: 2 updateBy: 1 inputs: document: "Sample-{{myForLoop.value}}.yaml" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
出力

AWSTOE は、 が実行されるdetailedoutput.jsonたびに という出力ファイルを作成します。このファイルには、実行中に呼び出される各コンポーネントドキュメントのすべてのフェーズとステップに関する詳細が含まれています。ExecuteDocument アクションモジュールの場合、 outputsフィールドにランタイムの簡単な概要、および で実行されるフェーズ、ステップ、ドキュメントの詳細が表示されますdetailedOutput

{ \"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\" }",

各コンポーネントドキュメントの出力サマリーオブジェクトには、次に示すように、以下の詳細とサンプル値が含まれています。

  • executedStepCount「:1

  • "executionId":"12345a67-89bc-01de-2f34-abcd56789012"

  • failedStepCount「」:0

  • "failureMessage":""

  • ignoredFailedStep「カウント」:0

  • "logUrl":""

  • "status":"success"

出力例

次の例は、ネストされた実行が発生したときのExecuteDocumentアクションモジュールからの出力を示しています。この例では、main.yaml コンポーネントドキュメントは Sample-1.yaml コンポーネントドキュメントを正常に実行します。

{ "executionId": "12345a67-89bc-01de-2f34-abcd56789012", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "main.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteNestedDocument", "status": "success", "failureMessage": "", "timeoutSeconds": -1, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteDocument", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]", "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]", "loop": null, "detailedOutput": [ { "executionId": "98765f43-21ed-09cb-8a76-fedc54321098", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "Sample-1.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteBashStep", "status": "success", "failureMessage": "", "timeoutSeconds": 7200, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteBash", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]", "outputs": "[{\"stdout\":\"Hello World!\"}]", "loop": null, "detailedOutput": null }] }] }] }] }] }] }] }

ExecutePowerShell

ExecutePowerShell アクションモジュールを使用すると、インラインシェルコード/コマンドを使用して PowerShell スクリプトを実行できます。このモジュールは、Windows プラットフォームと Windows をサポートしています PowerShell。

コマンドブロックで指定されたすべてのコマンド/命令は、スクリプトファイル ( などinput.ps1) に変換され、Windows を使用して実行されますPowerShell。シェルファイルを実行した結果が終了コードです。

シェルコマンドが終了コード で終了すると、ExecutePowerShellモジュールはシステムの再起動を処理します3010。起動すると、アプリケーションは以下のいずれかのアクションを実行します。

  • Systems Manager エージェントによって実行された場合、終了コードを呼び出し側に渡します。Systems Manager エージェント はシステムの再起動を処理し、「スクリプトからのマネージドインスタンスの再起動」で説明されているように、再起動を開始したのと同じステップを実行します。

  • 現在の executionstate を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。

Input (入力)
プリミティブ型 説明 タイプ 必須
commands PowerShell 構文に従って実行する命令またはコマンドのリストが含まれます。複数行の YAML を使用できます。 文字列リスト

はい。両方ではなく、commands または file を指定する必要があります。

file PowerShell スクリプトファイルへのパスが含まれます。 PowerShell は、-fileコマンドライン引数を使用してこのファイルに対して実行されます。パスは.ps1ファイルを指していなければなりません。 文字列

はい。両方ではなく、commands または file を指定する必要があります。

入力例: 再起動前と再起動後

name: ExitCode3010Example description: This shows how the exit code can be used to restart a system with ExecutePowerShell schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecutePowerShell inputs: commands: - | $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator' if (Test-Path -Path $rebootIndicator) { Write-Host 'The reboot file exists. Deleting it and exiting with success.' Remove-Item -Path $rebootIndicator -Force | Out-Null [System.Environment]::Exit(0) } Write-Host 'The reboot file does not exist. Creating it and triggering a restart.' New-Item -Path $rebootIndicator -ItemType File | Out-Null [System.Environment]::Exit(3010)
出力
フィールド 説明 [Type] (タイプ)
stdout コマンド実行の標準出力。 string

アクションモジュールの一部として再起動を実行して終了コード 3010 を返した場合、ビルドは再起動を開始したのと同じアクションモジュールステップで再開されます。終了コードを指定せずに再起動を実行すると、ビルドプロセスが失敗する可能性があります。

出力例: 再起動前 (初めてドキュメントから)

{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }

出力例: 再起動後 (2 回目にドキュメントを通過)

{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }

ファイルダウンロードとアップロードモジュール

次のセクションでは、ダウンロードとアップロードのコマンドと指示を実行するアクションモジュールの詳細を説明します。

ダウンロードおよびアップロードアクションモジュール

S3 ダウンロード

S3Download アクションモジュールを使用すると、Amazon S3 オブジェクトまたはオブジェクトのセットを、destination パスで指定したローカルファイルまたはフォルダにダウンロードできます。指定した場所に既にファイルが存在し、overwrite フラグが true に設定されている場合、S3Download がそのファイルを上書きします。

source ロケーションは Amazon S3 内の特定のオブジェクトを指すこともできますし、アスタリスクワイルドカード (*) が付いたキー接頭辞を使用して、キー接頭辞パスと一致するオブジェクトのセットをダウンロードすることもできます。source ロケーションでキー接頭辞を指定すると、S3Download アクションモジュールはプレフィックスに一致するすべてのもの (ファイルとフォルダを含む) をダウンロードします。キー接頭辞がフォーワードスラッシュで終わり、その後にアスタリスク (/*) が続くことを確認してください。これにより、プレフィックスに一致するものをすべてダウンロードできるようになります。例: s3://my-bucket/my-folder/*

注記

ダウンロード先パス内のすべてのフォルダは、ダウンロード前に存在している必要があります。そうでない場合、ダウンロードは失敗します。

ダウンロード中に指定されたキー接頭辞 S3Download アクションが失敗した場合、フォルダの内容は失敗前の状態にロールバックされません。宛先フォルダは、障害発生時のままです。

対応するユースケース

S3Download アクションモジュールは以下のユースケースをサポートしています。

  • Amazon S3 オブジェクトは、ダウンロードパスで指定されたローカルフォルダにダウンロードされます。

  • Amazon S3 オブジェクト (Amazon S3 ファイルパスにキー接頭辞 が付いている) は、指定されたローカルフォルダにダウンロードされます。このローカルフォルダは、キー接頭辞 と一致するすべての Amazon S3 オブジェクトをローカルフォルダに再帰的にコピーします。

IAM の要件

インスタンスプロファイルに関連付ける IAM ロールには、S3Download アクションモジュールを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに、以下の IAM ポリシーをアタッチする必要があります:

  • 単一ファイル s3:GetObject バケット/オブジェクトに対して(例えばarn:aws:s3:::BucketName/*)。

  • 複数のファイル: s3:ListBucketバケット/オブジェクトに対するファイル (例:arn:aws:s3:::BucketName) s3:GetObject とバケット/オブジェクト (例: arn:aws:s3:::BucketName/*)。

Input (入力)

プリミティブ型

説明

タイプ

必須

デフォルト

source

ダウンロードのソースである Amazon S3 バケット。特定のオブジェクトへのパスを指定するか、またはキー接頭辞 (末尾がスラッシュ) で終わり、アスタリスクワイルドカード (/*) が続くものを使用して、キー接頭辞 に一致するオブジェクトのセットをダウンロードできます。

文字列

あり

該当なし

destination

Amazon S3 オブジェクトがダウンロードされるローカルパス。1 つのファイルをダウンロードするには、パスの一部としてファイル名を指定する必要があります。例えば /myfolder/package.zip です。

文字列

あり

該当なし

expectedBucketOwner

source パスで指定されたバケットの必要な所有者アカウント ID。ソースで指定されている Amazon S3 バケットの所有権を確認することをお勧めします。

文字列

いいえ

該当なし

overwrite

true に設定すると、指定したローカルパスの宛先フォルダに同じ名前のファイルが既に存在する場合、ダウンロードファイルはローカルファイルを上書きします。false に設定すると、ローカルシステム上の既存のファイルは上書きされないよう保護され、アクションモジュールはダウンロードエラーで失敗します。

例えば、次のようになります: Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.

ブール値

なし

true

注記

次の例では、Windows フォルダパスを Linux パスに置き換えることができます。例えば、C:\myfolder\package.zip/myfolder/package.zip に置き換えることができます。

入力例: Amazon S3 オブジェクトをローカルファイルにコピーする

以下の例では、Amazon S3 オブジェクトをローカルファイルにコピーする方法を示します。

- name: DownloadMyFile action: S3Download inputs: - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022 overwrite: false - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022 overwrite: true - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022
入力例:キープレフィックスを持つ Amazon S3 バケット内のすべての Amazon S3 オブジェクトをローカルフォルダにコピーする

次の例では、Amazon S3 バケット内のすべての Amazon S3 オブジェクトを、キーのプレフィックス付きでローカルフォルダにコピーする方法を示しています。Amazon S3 にはフォルダという概念がないため、キー接頭辞 に一致するすべてのオブジェクトがコピーされます。ダウンロードできるオブジェクトの最大数は 1000 です。

- name: MyS3DownloadKeyprefix action: S3Download maxAttempts: 3 inputs: - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022 overwrite: false - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022 overwrite: true - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022
出力

なし。

S3: アップロード

S3Upload アクションモジュールを使用すると、ソースファイルまたはフォルダから Amazon S3 の場所にファイルをアップロードできます。ソースロケーションに指定されたパスにワイルドカード (*) を使用すると、ワイルドカードパターンに一致するパスを持つすべてのファイルをアップロードできます。

再帰的な S3Upload アクションが失敗した場合、既にアップロードされたファイルは宛先の Amazon S3 バケットに残ります。

対応するユースケース
  • Amazon S3 オブジェクトへのローカルファイル。

  • Amazon S3 キー接頭辞 へのフォルダ内のローカルファイル (ワイルドカード付き)。

  • ローカルフォルダ (recursetrue に設定されている必要があります) を Amazon S3 キー接頭辞 にコピーします。

IAM の要件

インスタンスプロファイルに関連付ける IAM ロールには、S3Upload アクションモジュールを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに、以下の IAM ポリシーをアタッチする必要があります。ポリシーは、ターゲット Amazon S3 バケットに s3:PutObject アクセス権限を付与する必要があります。例えば、arn:aws:s3:::BucketName/* です。

Input (入力)

プリミティブ型

説明

タイプ

必須

デフォルト

source

ソースファイル/フォルダの生成元のローカルパス。source はアスタリスクワイルドカード (*) をサポートします。

文字列

あり

該当なし

destination

ソースファイル/フォルダがアップロードされる宛先 Amazon S3 バケットのパス。

文字列

あり

該当なし

recurse

true に設定すると、S3Upload を再帰的に実行します。

文字列

なし

false

expectedBucketOwner

宛先パスで指定されている Amazon S3 バケットの予想所有者アカウント ID。宛先に指定された Amazon S3 バケットの所有権を確認することをお勧めします。

文字列

いいえ

該当なし

入力例: ローカルファイルをAmazon S3 オブジェクトにコピーする

次の例は、ローカルファイルを Amazon S3 オブジェクトにコピーする方法を示しています。

- name: MyS3UploadFile action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\package.zip destination: s3://mybucket/path/to/package.zip expectedBucketOwner: 123456789022
入力例:ローカルフォルダ内のすべてのファイルを、キーの接頭辞を持つ Amazon S3 バケットにコピーする

次の例では、ローカルフォルダ内のすべてのファイルを、キープレフィックスを持つ Amazon S3 バケットにコピーする方法を示しています。この例では、recurse が指定されていないためサブフォルダやその内容はコピーされません。デフォルトは false です。

- name: MyS3UploadMultipleFiles action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\* destination: s3://mybucket/path/to/ expectedBucketOwner: 123456789022
入力例:ローカルフォルダから再帰的に Amazon S3 バケットにコピーする

次の例では、ローカルフォルダから Amazon S3 バケットに、キープレフィックスを付けてすべてのファイルとフォルダを再帰的にコピーする方法を示しています。

- name: MyS3UploadFolder action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\* destination: s3://mybucket/path/to/ recurse: true expectedBucketOwner: 123456789022
出力

なし。

WebDownload

WebDownload アクションモジュールを使用すると、HTTP/HTTPS プロトコル経由でリモートの場所からファイルとリソースをダウンロードできます (HTTPS が推奨されます)。ダウンロードの数やサイズに制限はありません。このモジュールはリトライとエクスポネンシャルバックオフロジックを処理します。

ユーザーの入力に応じて、各ダウンロード操作が成功するまでに最大 5 回の試行が割り当てられます。これらの試行は、アクションモジュールの障害に関連する maxAttemptssteps ドキュメントフィールドで指定されている試行とは異なります。

このアクションモジュールは暗黙的にリダイレクトを処理します。200 を除く、すべての HTTP ステータスコードはエラーになります。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト
source RFC 3986 標準に準拠した有効な HTTP/HTTPS URL (HTTPS を推奨)。式を連鎖させることは許可されます。 文字列

あり

該当なし
destination ローカルシステム上のファイルまたはフォルダの絶対パスまたは相対パス。フォルダパスは / で終わる必要があります。末尾が / でなければ、ファイルパスとして扱われます。モジュールは、ダウンロードを成功させるために必要なファイルまたはフォルダを作成します。式を連鎖させることは許可されます。 文字列 あり 該当なし
overwrite 有効にすると、ローカルシステム上の既存のファイルを、ダウンロードしたファイルまたはリソースで上書きします。有効にしないと、ローカルシステム上の既存のファイルは上書きされず、アクションモジュールはエラーで失敗します。上書きが有効で、チェックサムとアルゴリズムが指定されている場合、アクションモジュールは、既存のファイルのチェックサムとハッシュが一致しない場合にのみファイルをダウンロードします。 ブール値 なし true
checksum チェックサムを指定すると、指定されたアルゴリズムで生成されたダウンロードファイルのハッシュと照合されます。ファイル検証を有効にするには、チェックサムとアルゴリズムの両方を指定する必要があります。式を連鎖させることは許可されます。 文字列 いいえ 該当なし
algorithm チェックサムの計算に使用するアルゴリズム。オプションには MD5、SHA1、SHA256 および SHA512 があります。ファイル検証を有効にするには、チェックサムとアルゴリズムの両方を指定する必要があります。式を連鎖させることは許可されます。 文字列 いいえ 該当なし
ignoreCertificateErrors SSL 証明書の検証は有効になっていると無視されます。 ブール値 なし false
出力
プリミティブ型 説明 [Type] (タイプ)
destination ダウンロードしたファイルまたはリソースの保存先パスを指定する改行文字で区切られた文字列。 文字列

入力例: リモートファイルをローカルの宛先にダウンロードする

- name: DownloadRemoteFile action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\testfolder\package.zip

出力:

{ "destination": "C:\\testfolder\\package.zip" }

入力例: 複数のリモートファイルを複数のローカル宛先にダウンロードする

- name: DownloadRemoteFiles action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: /tmp/java14_renamed.zip - source: https://testdomain/path/to/java14.zip destination: /tmp/create_new_folder_and_add_java14_as_zip/

出力:

{ "destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip" }

入力例: ローカル宛先を上書きせずにリモートファイルを 1 つダウンロードし、ファイル検証を行って別のリモートファイルをダウンロードする

- name: DownloadRemoteMultipleProperties action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder\java14_renamed.zip overwrite: false - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder_and_add_java14_as_zip\ checksum: ac68bbf921d953d1cfab916cb6120864 algorithm: MD5 overwrite: true

出力:

{ "destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip" }

入力例: リモートファイルをダウンロードし、SSL 証明書の検証を無視

- name: DownloadRemoteIgnoreValidation action: WebDownload maxAttempts: 3 inputs: - source: https://www.bad-ssl.com/resource destination: /tmp/downloads/ ignoreCertificateErrors: true

出力:

{ "destination": "/tmp/downloads/resource" }

ファイルシステム操作モジュール

次のセクションでは、ファイルシステム操作のコマンドや命令を実行するアクションモジュールの詳細を説明します。

AppendFile

AppendFile アクションモジュールは、指定されたコンテンツをファイルの既存のコンテンツに追加します。

ファイルエンコーディング値がデフォルトのエンコーディング (utf-8) 値と異なる場合は、encoding オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは utf-16utf-32 リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定したファイルは実行時には存在しません。

  • ファイルの内容を変更するための書き込み権限がない。

  • ファイル操作中にモジュールにエラーが発生した。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし あり
content ファイルに追加するコンテンツ。 文字列 なし 空の文字列 該当なし あり
encoding エンコード形式です。 文字列 なし utf8 utf8utf-8utf16utf-16utf16-LEutf-16-LEutf16-BEutf-16-BEutf32utf-32utf32-LEutf-32-LEutf32-BEおよび utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 あり

入力例: エンコードせずにファイルを追加 (Linux)

- name: AppendingFileWithOutEncodingLinux action: AppendFile inputs: - path: ./Sample.txt content: "The string to be appended to the file"

入力例: エンコーディングなしでファイルを追加 (Windows)

- name: AppendingFileWithOutEncodingWindows action: AppendFile inputs: - path: C:\MyFolder\MyFile.txt content: "The string to be appended to the file"

入力例: エンコーディング付きファイルの追加 (Linux)

- name: AppendingFileWithEncodingLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32

入力例: エンコーディング付きファイルの追加 (Windows)

- name: AppendingFileWithEncodingWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32

入力例: 空の文字列を含むファイルの追加 (Linux)

- name: AppendingEmptyStringLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt

入力例: 空の文字列を含むファイルの追加 (Windows)

- name: AppendingEmptyStringWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt
出力

なし。

CopyFile

CopyFile アクションモジュールは、指定されたソースから指定された宛先にファイルをコピーします。デフォルトでは、実行時に宛先フォルダが存在しない場合、モジュールは再帰的に宛先フォルダを作成します。

指定された名前のファイルが指定されたフォルダーにすでに存在する場合、アクションモジュールはデフォルトで既存のファイルを上書きします。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。このオプションは Linux cp のコマンドと同じように機能し、デフォルトでは上書きされます。

ソースファイル名にはワイルドカード (*) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (/ または \) の後でのみ使用できます。ソースファイル名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのファイルが宛先フォルダにコピーされます。ワイルドカード文字を使用して複数のファイルを移動する場合は、destination オプションへの入力の末尾にファイルパスの区切り文字 (/ または \) を付ける必要があります。これは、移動先の入力がフォルダであることを示します。

移動先のファイル名がソースファイル名と異なる場合は、destination オプションを使用して移動先のファイル名を指定できます。宛先ファイル名を指定しない場合、ソースファイルの名前を使用して宛先ファイルが作成されます。最後のファイルパス区切り文字 (/ または \) に続くテキストはすべてファイル名として扱われます。ソースファイルと同じファイル名を使用する場合は、destination オプションの入力がファイルパスの区切り文字 (/ または \) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定されたフォルダにファイルを作成する権限がない。

  • ソースファイルは実行時には存在しません。

  • 指定したファイル名のフォルダが既に存在し、overwrite オプションは false に設定されています。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
source ソースファイルのパス。 文字列 あり 該当なし 該当なし あり
destination デスティネーションファイルパス。 文字列 あり 該当なし 該当なし あり
overwrite false に設定すると、指定した場所に指定した名前のファイルが既にある場合でも、宛先ファイルは置き換えられません。 ブール値 なし true 該当なし あり

入力例: ファイルのコピー (Linux)

- name: CopyingAFileLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt

入力例: ファイルのコピー (Windows)

- name: CopyingAFileWindows action: CopyFile inputs: - source: C:\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt

入力例: ソースファイル名を使用してファイルをコピーする (Linux)

- name: CopyingFileWithSourceFileNameLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/

入力例: ソースファイル名を使用してファイルをコピーする (Windows)

- name: CopyingFileWithSourceFileNameWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\

入力例: ワイルドカード文字を使用してファイルをコピーする (Linux)

- name: CopyingFilesWithWildCardLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

入力例: ワイルドカード文字を使用してファイルをコピーする (Windows)

- name: CopyingFilesWithWildCardWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

入力例: 上書きせずにファイルをコピーする (Linux)

- name: CopyingFilesWithoutOverwriteLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false

入力例: 上書きせずにファイルをコピーする (Windows)

- name: CopyingFilesWithoutOverwriteWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
出力

なし。

CopyFolder

CopyFolder アクションモジュールは、指定されたソースから指定された宛先にフォルダをコピーします。destination オプションの入力はコピーするフォルダであり、source オプションの入力はソースフォルダの内容をコピーするフォルダです。デフォルトでは、実行時に宛先フォルダが存在しない場合、モジュールは再帰的に宛先フォルダを作成します。

指定されたフォルダ内に指定された名前のフォルダが既に存在する場合、アクションモジュールは、デフォルトで、既存のフォルダを上書きします。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

ソースフォルダ名にはワイルドカード (*) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (/ または \) の後でのみ使用できます。コピー元フォルダ名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのフォルダがコピー先フォルダにコピーされます。ワイルドカード文字を使用して複数のフォルダをコピーする場合、destination オプションへの入力は、コピー先の入力がフォルダであることを示すファイルパス区切り記号 (/ または \) で終わる必要があります。

コピー先フォルダ名がソースフォルダ名と異なる場合は、destination オプションを使用してコピー先フォルダ名を指定できます。宛先フォルダ名を指定しない場合、ソースフォルダの名前が宛先フォルダの作成に使用されます。最後のファイルパスの区切り文字 (/ または \) に続くテキストはすべてフォルダ名として扱われます。ソースフォルダと同じフォルダ名を使用する場合は、destination オプションの入力がファイルパスの区切り文字 (/ または \) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定されたフォルダにフォルダを作成する権限がありません。

  • ソースフォルダは実行時には存在しません。

  • 指定したフォルダ名のフォルダが既に存在し、overwrite オプションは false に設定されています。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
source ソースフォルダのパス。 文字列 あり 該当なし 該当なし あり
destination 宛先フォルダのパス。 文字列 あり 該当なし 該当なし あり
overwrite false に設定すると、指定された場所に指定された名前のフォルダが既にある場合、保存先フォルダは置き換えられません。 ブール値 なし true 該当なし あり

入力例: フォルダのコピー (Linux)

- name: CopyingAFolderLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder

入力例: フォルダのコピー (Windows)

- name: CopyingAFolderWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder

入力例: ソースフォルダ名を使用してフォルダをコピーする (Linux)

- name: CopyingFolderSourceFolderNameLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/

入力例: ソースフォルダ名を使用してフォルダをコピーする (Windows)

- name: CopyingFolderSourceFolderNameWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\

入力例: ワイルドカード文字を使用してフォルダをコピーする (Linux)

- name: CopyingFoldersWithWildCardLinux action: CopyFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

入力例: ワイルドカード文字を使用してフォルダをコピーする (Windows)

- name: CopyingFoldersWithWildCardWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

入力例: フォルダを上書きせずにコピーする (Linux)

- name: CopyingFoldersWithoutOverwriteLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder overwrite: false

入力例: フォルダを上書きせずにコピーする (Windows)

- name: CopyingFoldersWithoutOverwrite action: CopyFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder overwrite: false
出力

なし。

CreateFile

CreateFile アクションモジュールは、指定された場所にファイルを作成します。デフォルトでは、モジュールは必要に応じて親フォルダも再帰的に作成します。

ファイルが指定されたフォルダに既に存在する場合、アクションモジュールはデフォルトで、既存のファイルを切り捨てるか上書きする。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。

ファイルエンコーディング値がデフォルトのエンコーディング (utf-8) 値と異なる場合は、encoding オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは utf-16utf-32 リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

ownergroup および permissions はオプションの入力です。permissions の入力は文字列値でなければなりません。指定しない場合、ファイルはデフォルト値で作成されます。これらのオプションは Windows プラットフォームではサポートされていません。Windows プラットフォームで、ownergrouppermissions オプションが使用されている場合、このアクションモジュールは検証してエラーを返します。

このアクションモジュールは、オペレーティングシステムのデフォルト umask 値で定義されたパーミッションを持つファイルを作成することができます。デフォルト値をオーバーライドする場合、umask 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された親フォルダにファイルまたはフォルダを作成する権限がありません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし あり
content ファイルのテキストコンテンツ。 文字列 いいえ 該当なし 該当なし あり
encoding エンコード形式です。 文字列 なし utf8 utf8utf-8utf16utf-16utf16-LEutf-16-LEutf16-BEutf-16-BEutf32utf-32utf32-LEutf-32-LEutf32-BEおよび utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 はい
owner ユーザー名または ID。 文字列 いいえ 該当なし 該当なし Windows ではサポートされていません。
group グループ名または ID。 文字列 なし 現在のユーザー。 該当なし Windows ではサポートされていません。
permissions ファイルのパーミッション。 文字列 いいえ 0666 該当なし Windows ではサポートされていません。
overwrite 指定したファイルの名前が既に存在する場合、この値を false に設定すると、デフォルトでファイルが切り捨てられたり上書きされたりするのを防ぐことができます。 ブール値 なし true 該当なし あり

入力例: 上書きせずにファイルを作成 (Linux)

- name: CreatingFileWithoutOverwriteLinux action: CreateFile inputs: - path: /home/UserName/Sample.txt content: The text content of the sample file. overwrite: false

入力例: 上書きせずにファイルを作成 (Windows)

- name: CreatingFileWithoutOverwriteWindows action: CreateFile inputs: - path: C:\Temp\Sample.txt content: The text content of the sample file. overwrite: false

入力例: ファイルプロパティを含むファイルの作成

- name: CreatingFileWithFileProperties action: CreateFile inputs: - path: SampleFolder/Sample.txt content: The text content of the sample file. encoding: UTF-16 owner: Ubuntu group: UbuntuGroup permissions: 0777 - path: SampleFolder/SampleFile.txt permissions: 755 - path: SampleFolder/TextFile.txt encoding: UTF-16 owner: root group: rootUserGroup

入力例: ファイルのプロパティなしでファイルを作成する

- name: CreatingFileWithoutFileProperties action: CreateFile inputs: - path: ./Sample.txt - path: Sample1.txt

入力例: Linux クリーンアップスクリプトのセクションをスキップするために空のファイルを作成する

- name: CreateSkipCleanupfile action: CreateFile inputs: - path: <skip section file name>

詳細については、「Linux クリーンアップスクリプトをオーバーライドする」を参照してください。

出力

なし。

CreateFolder

CreateFolder アクションモジュールは、指定された場所にフォルダを作成します。デフォルトでは、モジュールは必要に応じて親フォルダも再帰的に作成します。

指定されたフォルダに既にフォルダが存在する場合、アクションモジュールはデフォルトで、既存のフォルダを切り捨てるか上書きします。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

ownergroup および permissions はオプションの入力です。permissions の入力は文字列値でなければなりません。これらのオプションは Windows プラットフォームではサポートされていません。Windows プラットフォームで、ownergrouppermissions オプションが使用されている場合、このアクションモジュールは検証してエラーを返します。

このアクションモジュールは、umask オペレーティングシステムのデフォルト値で定義された権限を持つフォルダを作成できます。デフォルト値をオーバーライドする場合、umask 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された場所にフォルダを作成する権限がありません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path フォルダパス。 文字列 あり 該当なし 該当なし あり
owner ユーザー名または ID。 文字列 なし 現在のユーザー。 該当なし Windows ではサポートされていません。
group グループ名または ID。 文字列 なし 現在のユーザーのグループ。 該当なし Windows ではサポートされていません。
permissions フォルダのパーミッション。 文字列 いいえ 0777 該当なし Windows ではサポートされていません。
overwrite 指定したファイルの名前が既に存在する場合、この値を false に設定すると、デフォルトでファイルが切り捨てられたり上書きされたりするのを防ぐことができます。 ブール値 なし true 該当なし あり

入力例: フォルダの作成 (Linux)

- name: CreatingFolderLinux action: CreateFolder inputs: - path: /Sample/MyFolder/

入力例: フォルダの作成 (Windows)

- name: CreatingFolderWindows action: CreateFolder inputs: - path: C:\MyFolder

入力例: フォルダのプロパティを指定してフォルダの作成

- name: CreatingFolderWithFolderProperties action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ owner: SampleOwnerName group: SampleGroupName permissions: 0777 - path: /Sample/MyFolder/SampleFoler/ permissions: 777

入力例: 既存のフォルダ (ある場合) を上書きするフォルダを作成します。

- name: CreatingFolderWithOverwrite action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ overwrite: true
出力

なし。

CreateSymlink アクションモジュールは、シンボリックリンク、または別のファイルへの参照を含むファイルを作成します。このモジュールは Windows プラットフォームではサポートされていません。

path および target オプションの入力は、絶対パスでも相対パスでもかまいません。path オプションの入力が相対パスの場合は、リンクの作成時に絶対パスに置き換えられます。

デフォルトでは、指定された名前のリンクが指定されたフォルダに既に存在する場合、アクションモジュールからエラーが返されます。forceオプションをtrueに設定することで、このデフォルト動作をオーバーライドすることができます。force オプションを true に設定すると、モジュールは既存のリンクを上書きします。

親フォルダが存在しない場合、アクションモジュールはデフォルトでそのフォルダを再帰的に作成します。

アクションモジュールは、以下の場合にエラーを返します。

  • ターゲットファイルが実行時に存在しません。

  • 指定された名前の非シンボリックリンクファイルが既に存在する。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
target シンボリックリンクが指すターゲットファイルのパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
force 同じ名前のリンクが既に存在する場合、リンクの作成を強制します。 ブール値 なし false 該当なし Windows ではサポートされていません。

入力例: リンクの作成を強制するシンボリックリンクの作成

- name: CreatingSymbolicLinkWithForce action: CreateSymlink inputs: - path: /Folder2/Symboliclink.txt target: /Folder/Sample.txt force: true

入力例: リンクの作成を強制しないシンボリックリンクの作成

- name: CreatingSymbolicLinkWithOutForce action: CreateSymlink inputs: - path: Symboliclink.txt target: /Folder/Sample.txt
出力

なし。

DeleteFile

DeleteFile アクションモジュールは、指定された場所にあるファイルを削除します。

path の入力は、有効なファイルパスか、ファイル名にワイルドカード文字(*)を含むファイルパスでなければならない。ファイル名にワイルドカード文字を指定すると、ワイルドカードに一致する同じフォルダ内のすべてのファイルが削除されます。

アクションモジュールは、以下の場合にエラーを返します。

  • あなたには削除操作を実行する権限がありません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし あり

入力例: 1 つのファイルを削除する (Linux)

- name: DeletingSingleFileLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/Sample.txt

入力例: 1 つのファイルを削除する (Windows)

- name: DeletingSingleFileWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\Sample.txt

入力例:「log」で終わるファイルを削除する (Linux)

- name: DeletingFileEndingWithLogLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*log

入力例:「log」で終わるファイルを削除する (Windows)

- name: DeletingFileEndingWithLogWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*log

入力例: 指定したフォルダ内のファイルをすべて削除する (Linux)

- name: DeletingAllFilesInAFolderLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*

入力例: 指定したフォルダ内のファイルをすべて削除する (Windows)

- name: DeletingAllFilesInAFolderWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*
出力

なし。

DeleteFolder

DeleteFolder アクションモジュールはフォルダを削除します。

フォルダが空でない場合は、 フォルダとその内容を削除する force オプションを true に設定する必要があります。force オプションを true に設定せず、削除しようとしているフォルダが空でない場合、アクションモジュールはエラーを返します。forceオプションのデフォルト値はfalseです。

アクションモジュールは、以下の場合にエラーを返します。

  • あなたには削除操作を実行する権限がありません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path フォルダパス。 文字列 あり 該当なし 該当なし あり
force フォルダが空であろうとなかろうと、フォルダを削除します。 ブール値 なし false 該当なし あり

入力例: force オプションを使用して空でないフォルダを削除する (Linux)

- name: DeletingFolderWithForceOptionLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/ force: true

入力例: force オプションを使用して空でないフォルダを削除する (Windows)

- name: DeletingFolderWithForceOptionWindows action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\ force: true

入力例: フォルダの削除 (Linux)

- name: DeletingFolderWithOutForceLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/

入力例: フォルダの削除 (Windows)

- name: DeletingFolderWithOutForce action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\
出力

なし。

ListFiles

ListFiles アクションモジュールは、指定されたフォルダ内のファイルを一覧表示します。recursive オプションを true に設定すると、サブフォルダ内のファイルが一覧表示されます。このモジュールは、デフォルトではサブフォルダ内のファイルを一覧表示しません。

指定したパターンに一致する名前のファイルをすべて一覧表示するには、fileNamePattern オプションを使用してパターンを指定します。fileNamePattern オプションはワイルドカード (*) 値を受け入れます。fileNamePattern を指定すると、指定されたファイル名形式に一致するすべてのファイルが返されます。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定されたフォルダが実行時に存在しません。

  • 指定された親フォルダにファイルまたはフォルダを作成する権限がありません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path フォルダパス。 文字列 あり 該当なし 該当なし あり
fileNamePattern 一致するパターンで、そのパターンに一致する名前を持つすべてのファイルを一覧表示します。 文字列 いいえ 該当なし 該当なし あり
recursive フォルダ内のファイルを再帰的に一覧表示します。 ブール値 なし false 該当なし あり

入力例: 指定したフォルダ内のファイルを一覧表示する (Linux)

- name: ListingFilesInSampleFolderLinux action: ListFiles inputs: - path: /Sample/MyFolder/Sample

入力例: 指定したフォルダ内のファイルを一覧表示する (Windows)

- name: ListingFilesInSampleFolderWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\Sample

入力例:「log」で終わるファイルを一覧表示する (Linux)

- name: ListingFilesWithEndingWithLogLinux action: ListFiles inputs: - path: /Sample/MyFolder/ fileNamePattern: *log

入力例:「log」で終わるファイルを一覧表示する (Windows)

- name: ListingFilesWithEndingWithLogWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\ fileNamePattern: *log

入力例: ファイルを再帰的に一覧表示する

- name: ListingFilesRecursively action: ListFiles inputs: - path: /Sample/MyFolder/ recursive: true
出力
プリミティブ型 説明 [Type] (タイプ)
files ファイルのリストです。 文字列

出力例

{ "files": "/sample1.txt,/sample2.txt,/sample3.txt" }

MoveFile

MoveFile アクションモジュールは、指定されたソースから指定された宛先にファイルを移動します。

指定したフォルダーにファイルがすでに存在する場合、アクションモジュールはデフォルトで既存のファイルを上書きします。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。このオプションは Linux mv のコマンドと同じように機能し、デフォルトでは上書きされます。

ソースファイル名にはワイルドカード (*) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (/ または \) の後でのみ使用できます。ソースファイル名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのファイルが宛先フォルダにコピーされます。ワイルドカード文字を使用して複数のファイルを移動する場合は、destination オプションへの入力の末尾にファイルパスの区切り文字 (/ または \) を付ける必要があります。これは、移動先の入力がフォルダであることを示します。

移動先のファイル名がソースファイル名と異なる場合は、destination オプションを使用して移動先のファイル名を指定できます。宛先ファイル名を指定しない場合、ソースファイルの名前を使用して宛先ファイルが作成されます。最後のファイルパス区切り文字 (/ または \) に続くテキストはすべてファイル名として扱われます。ソースファイルと同じファイル名を使用する場合は、destination オプションの入力がファイルパスの区切り文字 (/ または \) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定されたフォルダにファイルを作成する権限がない。

  • ソースファイルは実行時には存在しません。

  • 指定したファイル名のフォルダが既に存在し、overwrite オプションは false に設定されています。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
source ソースファイルのパス。 文字列 あり 該当なし 該当なし あり
destination デスティネーションファイルパス。 文字列 あり 該当なし 該当なし あり
overwrite false に設定すると、指定した場所に指定した名前のファイルが既にある場合でも、宛先ファイルは置き換えられません。 ブール値 なし true 該当なし あり

入力例: ファイルを移動する (Linux)

- name: MovingAFileLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt

入力例: ファイルを移動する (Windows)

- name: MovingAFileWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt

入力例: ソースファイル名を使用してファイルを移動する (Linux)

- name: MovingFileWithSourceFileNameLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/

入力例: ソースファイル名を使用してファイルを移動する (Windows)

- name: MovingFileWithSourceFileNameWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder

入力例: ワイルドカード文字を使用してファイルを移動する (Linux)

- name: MovingFilesWithWildCardLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

入力例: ワイルドカード文字を使用してファイルを移動する (Windows)

- name: MovingFilesWithWildCardWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder

入力例: ファイルを上書きせずに移動する (Linux)

- name: MovingFilesWithoutOverwriteLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false

入力例: ファイルを上書きせずに移動する (Windows)

- name: MovingFilesWithoutOverwrite action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
出力

なし。

MoveFolder

MoveFolder アクションモジュールは、フォルダを指定された送信元から指定された送信先に移動します。sourceオプションの入力は移動するフォルダであり、destinationオプションの入力は移動元フォルダのコンテンツを移動するフォルダです。

実行時に移動先の親フォルダまたは destination オプションへの入力が存在しない場合、モジュールのデフォルト動作では、指定された宛先にフォルダを再帰的に作成します。

ソースフォルダと同じフォルダが宛先フォルダに既に存在する場合、アクションモジュールはデフォルトで、既存のフォルダを上書きします。上書きオプションをfalseに設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが false に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

ソースフォルダ名にはワイルドカード (*) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (/ または \) の後でのみ使用できます。コピー元フォルダ名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのフォルダがコピー先フォルダにコピーされます。ワイルドカード文字を使用して複数のフォルダを移動する場合、destination オプションへの入力は、コピー先の入力がフォルダであることを示すファイルパス区切り記号 (/ または \) で終わる必要があります。

コピー先フォルダ名がソースフォルダ名と異なる場合は、destination オプションを使用してコピー先フォルダ名を指定できます。宛先フォルダ名を指定しない場合、ソースフォルダの名前が宛先フォルダの作成に使用されます。最後のファイルパスの区切り文字 (/ または \) に続くテキストはすべてフォルダ名として扱われます。ソースフォルダと同じフォルダ名を使用する場合は、destination オプションの入力がファイルパスの区切り文字 (/ または \) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 保存先フォルダにフォルダを作成する権限がありません。

  • ソースフォルダは実行時には存在しません。

  • 指定した名前のフォルダが既に存在し、overwrite オプションは false に設定されています。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
source ソースフォルダのパス。 文字列 あり 該当なし 該当なし あり
destination 宛先フォルダのパス。 文字列 あり 該当なし 該当なし あり
overwrite false に設定すると、指定された場所に指定された名前のフォルダが既にある場合、保存先フォルダは置き換えられません。 ブール値 なし true 該当なし あり

入力例: フォルダの移動 (Linux)

- name: MovingAFolderLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder

入力例: フォルダの移動 (Windows)

- name: MovingAFolderWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder

入力例: ソースフォルダ名を使用してフォルダを移動する (Linux)

- name: MovingFolderWithSourceFolderNameLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/

入力例: ソースフォルダ名を使用してフォルダを移動する (Windows)

- name: MovingFolderWithSourceFolderNameWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\

入力例: ワイルドカード文字を使用してフォルダを移動 (Linux)

- name: MovingFoldersWithWildCardLinux action: MoveFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

入力例: ワイルドカード文字を使用してフォルダを移動する (Windows)

- name: MovingFoldersWithWildCardWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

入力例: フォルダを上書きせずに移動する (Linux)

- name: MovingFoldersWithoutOverwriteLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder overwrite: false

入力例: フォルダを上書きせずに移動する (Windows)

- name: MovingFoldersWithoutOverwriteWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder overwrite: false
出力

なし。

ReadFile

ReadFile アクションモジュールは、文字列型のテキストファイルの内容を読み取ります。このモジュールを使うと、ファイルの内容を読み取ってチェーニングによって後続のステップで使用したり、データを console.log ファイルに読み込んだりできます。指定されたパスがシンボリックリンクの場合、このモジュールはターゲットファイルの内容を返します。このモジュールはテキストファイルのみをサポートします。

ファイルエンコーディング値がデフォルトのエンコーディング (utf-8) 値と異なる場合は、encoding オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは utf-16utf-32 リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

デフォルトでは、このモジュールは console.log ファイルの内容をファイルに出力できません。printFileContent プロパティを true に設定すると、この設定を上書きできます。

このモジュールはファイルの内容のみを返すことができます。Excel や JSON ファイルなどのファイルを解析することはできません。

アクションモジュールは、以下の場合にエラーを返します。

  • 実行時にファイルが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし あり
encoding エンコード形式です。 文字列 なし utf8 utf8utf-8utf16utf-16utf16-LEutf-16-LEutf16-BEutf-16-BEutf32utf-32utf32-LEutf-32-LEutf32-BEおよび utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 あり
printFileContent ファイルの内容を console.log ファイルに出力します。 ブール値 なし false 該当なし はい。

入力例: ファイルの読み取り (Linux)

- name: ReadingFileLinux action: ReadFile inputs: - path: /home/UserName/SampleFile.txt

入力例: ファイルの読み込み(Windows)

- name: ReadingFileWindows action: ReadFile inputs: - path: C:\Windows\WindowsUpdate.log

入力例: ファイルを読み込んでエンコーディングの標準を指定する

- name: ReadingFileWithFileEncoding action: ReadFile inputs: - path: /FolderName/SampleFile.txt encoding: UTF-32

入力例: console.log ファイルを読み込んでファイルに出力する

- name: ReadingFileToConsole action: ReadFile inputs: - path: /home/UserName/SampleFile.txt printFileContent: true
出力
フィールド 説明 [Type] (タイプ)
content ファイルの内容。 string

出力例

{ "content" : "The file content" }

SetFileEncoding

SetFileEncoding アクションモジュールは、既存のファイルのエンコーディングプロパティを変更します。このモジュールは、utf-8 ファイルのエンコーディングを指定されたエンコーディング標準に変換できます。デフォルトでは、utf-16utf-32 リトルエンディアンエンディアンエンコーディングと想定されています。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された変更を実行するにはアクセス許可が必要です。

  • 実行時にファイルが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし あり
encoding エンコード形式です。 文字列 なし utf8 utf8utf-8utf16utf-16utf16-LEutf-16-LEutf16-BEutf-16-BEutf32utf-32utf32-LEutf-32-LEutf32-BEおよび utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 あり

入力例: ファイルエンコーディングプロパティの設定

- name: SettingFileEncodingProperty action: SetFileEncoding inputs: - path: /home/UserName/SampleFile.txt encoding: UTF-16
出力

なし。

SetFileOwner

SetFileOwner アクションモジュールは、既存のファイルの ownerプロパティとgroup所有者プロパティを変更します。指定されたファイルがシンボリックリンクの場合、owner モジュールはソースファイルのプロパティを変更します。このモジュールは Windows プラットフォームではサポートされていません。

このモジュールは、ユーザー名とグループ名を入力として受け入れます。グループ名が指定されていない場合、モジュールはファイルのグループ所有者をユーザーが所属するグループに割り当てます。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された変更を実行するにはアクセス許可が必要です。

  • 指定したユーザー名またはグループ名は実行時には存在しません。

  • 実行時にファイルが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
owner ユーザー名。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
group ユーザーグループの名前。 文字列 なし ユーザーが所属するグループ名。 該当なし Windows ではサポートされていません。

入力例: ユーザーグループの名前を指定せずにファイル所有者プロパティを設定

- name: SettingFileOwnerPropertyNoGroup action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser

入力例: 所有者とユーザーグループを指定してファイル所有者プロパティを設定

- name: SettingFileOwnerProperty action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser group: LinuxUserGroup
出力

なし。

SetFolderOwner

SetFolderOwner アクションモジュールは、既存のフォルダの ownerプロパティとgroup所有者プロパティを再帰的に変更します。デフォルトでは、モジュールはフォルダ内のすべてのコンテンツの所有権を変更できます。この動作をオーバーライドする recursive オプションを false に設定できます。このモジュールは Windows プラットフォームではサポートされていません。

このモジュールは、ユーザー名とグループ名を入力として受け入れます。グループ名が指定されていない場合、モジュールはファイルのグループ所有者をユーザーが所属するグループに割り当てます。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された変更を実行するにはアクセス許可が必要です。

  • 指定したユーザー名またはグループ名は実行時には存在しません。

  • 実行時にフォルダが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path フォルダパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
owner ユーザー名。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
group ユーザーグループの名前。 文字列 なし ユーザーが所属するグループ名。 該当なし Windows ではサポートされていません。
recursive false に設定すると、フォルダのすべてのコンテンツの所有権を変更するというデフォルトの動作が上書きされます。 ブール値 なし true 該当なし Windows ではサポートされていません。

入力例: ユーザーグループの名前を指定せずにフォルダ所有者プロパティを設定する

- name: SettingFolderPropertyWithOutGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser

入力例: フォルダ内のすべてのコンテンツの所有権を変更せずにフォルダ所有者プロパティを設定する

- name: SettingFolderPropertyWithOutRecursively action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser recursive: false

入力例: ユーザーグループの名前を指定してファイル所有権プロパティを設定します

- name: SettingFolderPropertyWithGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser group: LinuxUserGroup
出力

なし。

SetFilePermissions

SetFilePermissions アクションモジュールは、既存のファイルの permissions を変更します。このモジュールは Windows プラットフォームではサポートされていません。

permissions の入力は文字列値でなければなりません。

このアクションモジュールは、オペレーティングシステムのデフォルト値で定義された権限を使用してファイルを作成できます。デフォルト値をオーバーライドする場合、umask 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された変更を実行するにはアクセス許可が必要です。

  • 実行時にファイルが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path ファイルパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
permissions ファイルのパーミッション。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。

入力例:ファイル権限の変更

- name: ModifyingFilePermissions action: SetFilePermissions inputs: - path: /home/UserName/SampleFile.txt permissions: 766
出力

なし。

SetFolderPermissions

SetFolderPermissions アクションモジュールは、既存のフォルダpermissionsとそのすべてのサブファイルとサブフォルダの を再帰的に変更します。デフォルトでは、このモジュールは指定されたフォルダのすべてのコンテンツの許可を変更できます。この動作をオーバーライドする recursive オプションを false に設定できます。このモジュールは Windows プラットフォームではサポートされていません。

permissions の入力は文字列値でなければなりません。

このアクションモジュールは、オペレーティングシステムのデフォルト umask 値に従って権限を変更できます。デフォルト値をオーバーライドする場合、umask 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。

  • 指定された変更を実行するにはアクセス許可が必要です。

  • 実行時にフォルダが存在しません。

  • 操作の実行中にアクションモジュールがエラーに遭遇しました。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値 すべてのプラットフォームでサポートされています
path フォルダパス。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
permissions フォルダのパーミッション。 文字列 あり 該当なし 該当なし Windows ではサポートされていません。
recursive false に設定すると、フォルダのすべての内容の権限を変更するというデフォルトの動作が上書きされます。 ブール値 なし true 該当なし Windows ではサポートされていません。

入力例: フォルダ権限の設定

- name: SettingFolderPermissions action: SetFolderPermissions inputs: - path: SampleFolder/ permissions: 0777

入力例: フォルダのすべてのコンテンツのパーミッションを変更せずに、フォルダのパーミッションを設定する

- name: SettingFolderPermissionsNoRecursive action: SetFolderPermissions inputs: - path: /home/UserName/SampleFolder/ permissions: 777 recursive: false
出力

なし。

ソフトウェアインストールアクション

このセクションでは、ソフトウェアインストールアクションのコマンドと指示を実行するアクションモジュールについて説明します。

IAM の要件

インストールダウンロードパスが S3 URI の場合、インスタンスプロファイルに関連付ける IAM ロールには S3Download アクションモジュールを実行する権限が必要です。必要なアクセス権限を付与するには、インスタンスプロファイルに関連付けられている S3:GetObject IAM ロールに IAM ポリシーをアタッチし、バケットのパスを指定します。例えば、arn:aws:s3:::BucketName/* です。

複雑な MSI 入力

入力文字列に二重引用符 (") が含まれている場合は、以下のいずれかの方法を使用して正しく解釈されるようにする必要があります。

  • 次の例のように、文字列の外側には一重引用符 (') を使用し、文字列の内側には二重引用符 (「) を使用できます。

    properties: COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'

    この場合、文字列の中でアポストロフィを使用する必要がある場合は、そのアポストロフィをエスケープする必要があります。つまり、アポストロフィの前に一重引用符 (') をもう 1 つ使うということです。

  • 文字列の外側には二重引用符 (「) を使用して格納できます。また、次の例のように、バックスラッシュ文字 (\) を使用して、文字列内の二重引用符をエスケープできます。

    properties: COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""

これらのメソッドはいずれも、COMPANYNAME="Acme ""Widgets"" and ""Gizmos.""" 値をmsiexecコマンドに渡します。

ソフトウェアのインストールアクションモジュール

インストール/MSI

InstallMSI アクションモジュールは MSI ファイルを使用して Windows アプリケーションをインストールします。ローカルパス、S3 オブジェクト URI、またはウェブ URL を使用して MSI ファイルを指定できます。再起動オプションはシステムの再起動動作を設定します。

AWSTOE は、アクションモジュールの入力パラメータに基づいてmsiexecコマンドを生成します。path (MSI ファイルの場所) と logFile (ログファイルの場所) の入力パラメータの値は、引用符 (「) で囲む必要があります。

次の MSI 終了コードは成功とみなされます。

  • 0 - 成功

  • 1614 (製品_アンインストールエラー)

  • 1641 (再起動が開始されました)

  • 3010 (再起動が必要です)

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値
path

次のいずれかを使用して MSI ファイルの場所を指定します。

  • ローカルファイルのパス。パスは絶対パスでも相対パスでも可

  • 有効な S3 オブジェクト URI。

  • RFC 3986 標準に従った有効なウェブ HTTP/HTTPS URL(HTTPS を推奨)。

チェーン式は許可されています。

文字列 あり 該当なし 該当なし
reboot

アクションモジュールが正常に実行された後のシステム再起動動作を設定します。

設定:
  • Forcemsiexec コマンドが正常に実行されたら、システムの再起動を開始します。

  • Allowmsiexec コマンドが再起動が必要であることを示す終了コードを返した場合、システムの再起動を開始します。

  • Skip — 再起動がスキップされたことを示す情報メッセージを console.log ファイルに記録します。このオプションは、msiexec コマンドが再起動が必要であることを示す終了コードを返した場合でも、再起動を防止します。

文字列 なし Allow Allow, Force, Skip
logOptions

MSI インストールロギングに使用するオプションを指定します。指定されたフラグは、ロギングを有効にする /L コマンドラインパラメータとともに MSI インストーラーに渡されます。フラグが指定されていない場合、 はデフォルト値 AWSTOE を使用します。

MSI の Log オプションの詳細については、Microsoft Windows Installer 製品ドキュメントのコマンドラインオプションを参照してください。

文字列 なし *VX i,w,e,a,r,u,c,m,o,p,v,x,+,!,*
logFile

ログファイルの場所への絶対パスまたは相対パス。Log ファイルのパスが存在しない場合は、作成される。ログファイルパスが指定されていない場合、 AWSTOE は MSI インストールログを保存しません。

文字列 いいえ 該当なし 該当なし
properties

MSI ロギングプロパティのキーと値のペア。例: TARGETDIR: "C:\target\location"

 

注:以下のプロパティは変更できません。

  • REBOOT="ReallySupress"

  • REINSTALLMODE="ecmus"

  • REINSTALL="ALL"

Map[String]String なし 該当なし 該当なし
ignoreAuthenticodeSignatureErrors

path で指定されたインストーラーの authenticode 署名検証エラーを無視するフラグ。この Get-AuthenticodeSignature コマンドはインストーラーを検証するために使用されます。

設定:
  • true — 検証エラーは無視され、インストーラーが実行されます。

  • false — 検証エラーは無視されません。インストーラーは、検証が成功した場合にのみ実行されます。これがデフォルトの動作です。

ブール値 なし false true, false
allowUnsignedInstaller

パスに指定された署名なしインストーラーの実行を許可するフラグ。この Get-AuthenticodeSignature コマンドはインストーラーを検証するために使用されます。

設定:
  • true - Get-AuthenticodeSignature コマンドが返す NotSigned ステータスを無視し、インストーラを実行する。

  • false — インストーラーへの署名が必要です。署名のないインストーラーは実行されません。これがデフォルトの動作です。

ブール値 なし false true, false

以下の例は、コンポーネントドキュメントの入力セクションのバリエーションを示しています。

入力例: ローカルドキュメントパスのインストール

- name: local-path-install steps: - name: LocalPathInstaller action: InstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-install.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true

入力例: Amazon S3 パスのインストール

- name: s3-path-install steps: - name: S3PathInstaller action: InstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-install.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true

入力例: ウェブパスのインストール

- name: web-path-install steps: - name: WebPathInstaller action: InstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-install.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
出力

次は InstallMSI アクションモジュールの出力の例です。

{ "logFile": "web-path-install.log", "msiExitCode": 0, "stdout": "" }

UninstallMSI

UninstallMSI アクションモジュールでは、MSI ファイルを使用して Windows アプリケーションを削除することができます。ローカルファイルパス、S3 オブジェクト URI、またはウェブ URL を使用して、MSI ファイルの場所を指定できます。再起動オプションはシステムの再起動動作を設定します。

AWSTOE は、アクションモジュールの入力パラメータに基づいてmsiexecコマンドを生成します。MSI ファイルの場所 (path) とログファイルの場所 (logFile) は、msiexec コマンドの生成時に二重引用符 (") で明示的に囲まれます。

次の MSI 終了コードは成功とみなされます。

  • 0 - 成功

  • 1605 (製品不明エラー)

  • 1614 (製品_アンインストールエラー)

  • 1641 (再起動が開始されました)

  • 3010 (再起動が必要です)

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト値 許容値
path

次のいずれかを使用して MSI ファイルの場所を指定します。

  • ローカルファイルのパス。パスは絶対パスでも相対パスでもかまいません。

  • 有効な S3 オブジェクト URI。

  • RFC 3986 標準に従った有効なウェブ HTTP/HTTPS URL(HTTPS を推奨)。

チェーン式は許可されています。

文字列 あり 該当なし 該当なし
reboot

アクションモジュールが正常に実行された後のシステム再起動動作を設定します。

設定:
  • Forcemsiexec コマンドが正常に実行されたら、システムの再起動を開始します。

  • Allowmsiexec コマンドが再起動が必要であることを示す終了コードを返した場合、システムの再起動を開始します。

  • Skip — 再起動がスキップされたことを示す情報メッセージを console.log ファイルに記録します。このオプションは、msiexec コマンドが再起動が必要であることを示す終了コードを返した場合でも、再起動を防止します。

文字列 なし Allow Allow, Force, Skip
logOptions

MSI インストールロギングに使用するオプションを指定します。指定されたフラグは、ロギングを有効にする /L コマンドラインパラメータとともに MSI インストーラーに渡されます。フラグが指定されていない場合、 はデフォルト値 AWSTOE を使用します。

MSI の Log オプションの詳細については、Microsoft Windows Installer 製品ドキュメントのコマンドラインオプションを参照してください。

文字列 なし *VX i,w,e,a,r,u,c,m,o,p,v,x,+,!,*
logFile

ログファイルの場所への絶対パスまたは相対パス。Log ファイルのパスが存在しない場合は、作成される。ログファイルパスが指定されていない場合、 AWSTOE は MSI インストールログを保存しません。

文字列 いいえ 該当なし 該当なし
properties

MSI ロギングプロパティのキーと値のペア。例: TARGETDIR: "C:\target\location"

 

注:以下のプロパティは変更できません。

  • REBOOT="ReallySupress"

  • REINSTALLMODE="ecmus"

  • REINSTALL="ALL"

Map[String]String なし 該当なし 該当なし
ignoreAuthenticodeSignatureErrors

path で指定されたインストーラーの authenticode 署名検証エラーを無視するフラグ。この Get-AuthenticodeSignature コマンドはインストーラーを検証するために使用されます。

設定:
  • true — 検証エラーは無視され、インストーラーが実行されます。

  • false — 検証エラーは無視されません。インストーラーは、検証が成功した場合にのみ実行されます。これがデフォルトの動作です。

ブール値 なし false true, false
allowUnsignedInstaller

パスに指定された署名なしインストーラーの実行を許可するフラグ。この Get-AuthenticodeSignature コマンドはインストーラーを検証するために使用されます。

設定:
  • true - Get-AuthenticodeSignature コマンドが返す NotSigned ステータスを無視し、インストーラを実行する。

  • false — インストーラーへの署名が必要です。署名のないインストーラーは実行されません。これがデフォルトの動作です。

ブール値 なし false true, false

以下の例は、コンポーネントドキュメントの入力セクションのバリエーションを示しています。

入力例:ローカルドキュメントパスインストールの削除

- name: local-path-uninstall steps: - name: LocalPathUninstaller action: UninstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-uninstall.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true

入力例:Amazon S3 パスインストールの削除

- name: s3-path-uninstall steps: - name: S3PathUninstaller action: UninstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-uninstall.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true

入力例: ウェブパスのインストールを削除

- name: web-path-uninstall steps: - name: WebPathUninstaller action: UninstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-uninstall.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
出力

次は UninstallMSI アクションモジュールの出力の例です。

{ "logFile": "web-path-uninstall.log", "msiExitCode": 0, "stdout": "" }

システムアクションモジュール

次のセクションでは、ファイルシステムのアクションコマンドと命令を実行するアクションモジュールについて説明します。

システムアクションモジュール

再起動

再起動アクションモジュールはインスタンスを再起動します。再起動の開始を遅らせる設定可能なオプションがあります。デフォルトでは、delaySeconds0 に設定されています。つまり、遅延はありません。ステップタイムアウトは、インスタンスの再起動時には適用されないため、再起動アクションモジュールではサポートされていません。

アプリケーションが Systems Manager エージェントによって呼び出されると、終了コード (Windows 3010 の場合、Linux 194 の場合) がSystems Manager エージェントに渡されます。システムマネージャーエージェントは、スクリプトからマネージドインスタンスを再起動するの説明に従ってシステムの再起動を処理します。

アプリケーションがホスト上でスタンドアロンプロセスとして呼び出された場合、現在の実行状態を保存し、再起動後にアプリケーションを再実行するように再起動後の自動実行トリガーを構成し、システムを再起動します。

再起動後の自動実行トリガー:

  • Windows。 AWSTOE は SystemStartup で自動的に実行されるトリガーを含む Windows タスクスケジューラエントリを作成

  • Linux。 AWSTOE はシステム再起動後に自動的に実行されるジョブを crontab に追加します。

@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml

このトリガーはアプリケーションの起動時にクリーンアップされます。

再試行

デフォルトでは、再試行の最大回数は Systems Manager CommandRetryLimit に設定されています。再起動回数が再試行制限を超えると、自動化は失敗します。Systems Manager エージェント設定ファイル (Mds.CommandRetryLimit) を編集して制限を変更できます。Systems Manager エージェントオープンソースの「Runtime Configuration」を参照してください。

Reboot アクションモジュールを使用するには、reboot exitcode を含むステップ(例えば 3010)に対して、アプリケーションバイナリを sudo user として実行する必要があります。

Input (入力)
プリミティブ型 説明 タイプ 必須 デフォルト
delaySeconds 再起動を開始する前に、特定の時間だけ遅延させます。 整数

なし

0

入力例: 再起動ステップ

- name: RebootStep action: Reboot onFailure: Abort maxAttempts: 2 inputs: delaySeconds: 60

出力

なし。

再起動モジュールが完了すると、Image Builder はビルドの次のステップに進みます。

SetRegistry

SetRegistry アクションモジュールは入力のリストを受け入れ、指定されたレジストリキーの値を設定できます。レジストリキーが存在しない場合、定義されたパスに作成されます。この機能は Windows のみに適用されます。

Input (入力)
プリミティブ型 説明 タイプ 必須
path レジストリキーのパス。 文字列 あり
name レジストリキーの名前。 文字列 あり
value レジストリキーの値。 文字列/数値/配列 あり
type レジストリキーの値の型。 文字列 あり
サポートされているパスプレフィックス
  • HKEY_CLASSES_ROOT / HKCR:

  • HKEY_USERS / HKU:

  • HKEY_LOCAL_MACHINE / HKLM:

  • HKEY_CURRENT_CONFIG / HKCC:

  • HKEY_CURRENT_USER / HKCU:

サポートされている  型
  • BINARY

  • DWORD

  • QWORD

  • SZ

  • EXPAND_SZ

  • MULTI_SZ

入力例:レジストリキー値の設定

- name: SetRegistryKeyValues action: SetRegistry maxAttempts: 3 inputs: - path: HKLM:\SOFTWARE\MySoftWare name: MyName value: FirstVersionSoftware type: SZ - path: HKEY_CURRENT_USER\Software\Test name: Version value: 1.1 type: DWORD

出力

なし。

UpdateOS

UpdateOS アクションモジュールは、Windows と Linux のアップデートをインストールするためのサポートを追加します。使用可能なすべてのアップデートがデフォルトでインストールされます。あるいは、インストールするアクションモジュール用に 1 つ以上の特定のアップデートのリストを設定することもできます。インストールから除外するアップデートを指定することもできます。

「含める」リストと「除外」リストの両方を指定した場合、生成されるアップデートのリストには、「含む」リストにリストされているもののうち、「除外」リストには含まれていないものだけが含まれる可能性があります。

注記

UpdateOS は Amazon Linux 2023 (AL2023) をサポートしていません。ベース AMI をすべてのリリースに付属する新しいバージョンに更新することをお勧めします。他の方法については、Amazon Linux 2023 User Guide の Control updates received from major and minor releases を参照してください。

  • Windows。アップデートは、ターゲットマシンに設定されているアップデートソースからインストールされます。

  • Linux。アプリケーションは Linux プラットフォームでサポートされているパッケージマネージャーを確認し、yum または apt-get パッケージマネージャーを使用します。どちらもサポートされていない場合はエラーが返ります。UpdateOS アクションモジュールを実行するためのsudo権限を持っている必要があります。sudo 権限がない場合は、error.Input が返されます。

Input (入力)
プリミティブ型 説明 タイプ 必須
include

Windows の場合、以下のように指定できる:

  • インストールできるアップデートのリストに含める Microsoft Knowledge Base (KB) 記事 ID を 1 つ以上含めてください。有効な形式は、KB1234567 または 1234567 です。

  • ワイルドカード値 (*) を使用したアップデート名。有効な形式は、Security* または *Security* です。

Linux では、インストールするアップデートのリストに含めるパッケージを 1 つ以上指定できます。

文字列リスト なし
exclude

Windows の場合、以下のように指定できる:

  • インストールから除外する更新プログラムのリストに含める 1 つ以上の Microsoft Knowledge Base (KB) の記事 ID。有効な形式は、KB1234567 または 1234567 です。

  • ワイルドカード値 (*) を使用したアップデート名。有効な形式は、Security* または *Security* です。

Linux の場合、インストールするアップデートのリストから除外するパッケージを 1 つ以上指定できます。

文字列リスト なし

入力例: Linux アップデートのインストールのサポートを追加

- name: UpdateMyLinux action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: exclude: - ec2-hibinit-agent

入力例: Windows 更新プログラムのインストールサポートの追加

- name: UpdateWindowsOperatingSystem action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: include: - KB1234567 - '*Security*'

出力

なし。