「Amazon S3 発行」アクションの YAML - Amazon CodeCatalyst

「Amazon S3 発行」アクションの YAML

以下は、Amazon S3 発行アクションの YAML 定義です。このアクションの使用方法については、「ワークフローを使用して Amazon S3 にファイルを発行する」を参照してください。

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「ワークフロー YAML 定義」を参照してください。

注記

後続の YAML プロパティのほとんどには、対応する UI 要素がビジュアルエディタにあります。UI 要素を検索するには、Ctrl+F を使用します。要素は、関連付けられた YAML プロパティと共に一覧表示されます。

# The workflow definition starts here. # See 最上位プロパティ for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. S3Publish_nn: Identifier: aws/s3-publish@v1 DependsOn: - build-action Compute: Type: EC2 | Lambda Fleet: fleet-name Timeout: timeout-minutes Inputs: Sources: - source-name-1 Artifacts: - artifact-name Variables: - Name: variable-name-1 Value: variable-value-1 - Name: variable-name-2 Value: variable-value-2 Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name Configuration: SourcePath: my/source DestinationBucketName: amzn-s3-demo-bucket TargetPath: my/target

S3Publish

(必須)

アクションの名前を指定します。すべてのアクション名は、ワークフロー内で一意である必要があります。アクション名で使用できるのは、英数字 (a~z、A~Z、0~9)、ハイフン (-)、アンダースコア (_) のみです。スペースは使用できません。引用符を使用して、アクション名で特殊文字やスペースを有効にすることはできません。

デフォルト: S3Publish_nn

対応する UI: [設定] タブ/[アクション名]

Identifier

(S3Publish/Identifier)

(必須)

アクションを識別します。バージョンを変更しない限り、このプロパティを変更しないでください。詳細については、「使用するアクションバージョンの指定」を参照してください。

デフォルト: aws/s3-publish@v1

対応する UI: ワークフロー図/S3Publish_nn/aws/s3-publish@v1 ラベル

DependsOn

(S3Publish/DependsOn)

(オプション)

このアクションを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。

「DependsOn」機能の詳細については、「アクションの順序付け」を参照してください。

対応する UI: [入力] タブ/[依存 - オプション]

Compute

(S3Publish/Compute)

(オプション)

ワークフローアクションの実行に使用されるコンピューティングエンジン。コンピューティングはワークフローレベルまたはアクションレベルで指定できますが、両方で指定することはできません。ワークフローレベルで指定すると、コンピューティング設定はワークフローで定義されたすべてのアクションに適用されます。ワークフローレベルでは、同じインスタンスで複数のアクションを実行することもできます。詳細については、「アクション間でのコンピューティングの共有する」を参照してください。

対応する UI: なし

Type

(S3Publish/Compute/Type)

(Compute が含まれている場合は必須)

コンピューティングエンジンのタイプ。次のいずれかの値を使用できます。

  • EC2 (ビジュアルエディタ) または EC2 (YAML エディタ)

    アクション実行時の柔軟性のために最適化されています。

  • Lambda (ビジュアルエディタ) または Lambda (YAML エディタ)

    アクションの起動速度を最適化しました。

コンピューティングタイプの詳細については、「コンピューティングタイプ」を参照してください。

対応する UI: [設定] タブ/[コンピューティングタイプ]

Fleet

(S3Publish/Compute/Fleet)

(オプション)

ワークフローまたはワークフローアクションを実行するマシンまたはフリートを指定します。オンデマンドフリートでは、アクションが開始されると、ワークフローは必要なリソースをプロビジョニングし、アクションが完了するとマシンは破棄されます。オンデマンドフリートの例: Linux.x86-64.LargeLinux.x86-64.XLarge。オンデマンドフリートの詳細については、「オンデマンドフリートのプロパティ」を参照してください。

プロビジョニングされたフリートでは、ワークフローアクションを実行するように専用マシンのセットを構成します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できるようになっています。プロビジョニングされたフリートの詳細については、「プロビジョニングされたフリートのプロパティ」を参照してください。

Fleet を省略した場合、デフォルトは Linux.x86-64.Large です。

対応する UI: [設定] タブ/[コンピューティングフリート]

Timeout

(S3Publish/Timeout)

(必須)

CodeCatalyst がアクションを終了するまでにアクションを実行できる時間を分単位 (YAML エディタ) または時間分単位 (ビジュアルエディタ) で指定します。最小値は 5 分で、最大値は「CodeCatalyst のワークフローのクォータ」で説明されています。デフォルトのタイムアウトは、最大タイムアウトと同じです。

対応する UI: [設定] タブ/[タイムアウト - オプション]

Inputs

(S3Publish/Inputs)

(オプション)

Inputs セクションでは、ワークフローの実行中に S3Publish に必要なデータを定義します。

注記

AWS CDK デプロイアクションごとに最大 4 つの入力 (1 つのソースと 3 つのアーティファクト) が許可されます。変数はこの合計にはカウントされません。

異なる入力 (ソースとアーティファクトなど) にあるファイルを参照する必要がある場合、ソース入力はプライマリ入力で、アーティファクトはセカンダリ入力になります。セカンダリ入力内のファイルへの参照には、プライマリからファイルを区別するための特別なプレフィックスが付きます。詳細については、「例: 複数のアーティファクトでのファイルの参照」を参照してください。

対応する UI: 入力タブ

Sources

(S3Publish/Inputs/Sources)

(Amazon S3 に発行するファイルがソースリポジトリに保存されている場合は必須)

Amazon S3 に発行するファイルがソースリポジトリに保存されている場合は、そのソースリポジトリのラベルを指定します。現在サポートされているラベルは、WorkflowSource のみです。

Amazon S3 に発行するファイルがソースリポジトリに含まれていない場合は、別のアクションによって生成されたアーティファクトに存在する必要があります。

sources の詳細については、「ワークフローへのソースリポジトリの接続」を参照してください。

対応する UI: 入力タブ/ソース - オプション

Artifacts - input

(S3Publish/Inputs/Artifacts)

(Amazon S3 に発行するファイルが前のアクションの出力アーティファクトに保存されている場合は必須)

Amazon S3 に発行するファイルが、前のアクションによって生成されたアーティファクトに含まれている場合は、ここでそのアーティファクトを指定します。ファイルがアーティファクトに含まれていない場合は、ソースリポジトリに存在する必要があります。

アーティファクトの詳細 (例を含む) については、「アクション間でのアーティファクトとファイルの共有」を参照してください。

対応する UI: [設定] タブ/[アーティファクト - オプション]

Variables - input

(S3Publish/Inputs/Variables)

(オプション)

アクションで使用する入力変数を定義する名前と値のペアのシーケンスを指定します。変数名に使用できるのは、英数字 (a~z、A~Z、0~9)、ハイフン (-)、アンダースコア (_) のみです。スペースは使用できません。引用符を使用して、変数名で特殊文字とスペースを有効にすることはできません。

変数の詳細 (例を含む) については、「ワークフローでの変数の使用」を参照してください。

対応する UI: 入力タブ/変数 - オプション

Environment

(S3Publish/Environment)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境で指定された AWS アカウント および任意の Amazon VPC に接続します。このアクションは、環境で指定されたデフォルトの IAM ロールを使用して AWS アカウント に接続し、[Amazon VPC 接続] で指定された IAM ロールを使用して Amazon VPC に接続します。

注記

デフォルトの IAM ロールにアクションに必要なアクセス許可がない場合は、別のロールを使用するようにアクションを設定できます。詳細については、「アクションの IAM ロールの変更」を参照してください。

環境タグ付けの詳細については、「AWS アカウント と VPC へのデプロイ」と「環境を作成する」を参照してください。

対応する UI: [設定] タブ/[環境]

Name

(S3Publish/Environment/Name)

(Environment が含まれている場合は必須)

アクションに関連付ける既存の環境の名前を指定します。

対応する UI: [設定] タブ/[環境]

Connections

(S3Publish/Environment/Connections)

(新しいバージョンのアクションでは任意。古いバージョンでは必須)

アクションに関連付けるアカウント接続を指定します。Environment で最大 1 つのアカウント接続を指定できます。

アカウント接続を指定しない場合:

  • このアクションは、CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトの IAM ロールを使用します。アカウント接続とデフォルトの IAM ロールを環境に追加する方法については、「環境を作成する」を参照してください。

  • デフォルトの IAM ロールには、アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションの YAML 定義ドキュメントの Role プロパティの説明を参照してください。

アカウント接続の詳細については、「接続された AWS アカウントでの AWS リソースへのアクセスを許可する」を参照してください。アカウント接続を環境に追加する方法については、「環境を作成する」を参照してください。

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[AWS アカウント接続]

Name

(S3Publish/Environment/Connections/Name)

(Connections が含まれている場合は必須)

アカウント接続の名前を指定します。

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[AWS アカウント接続]

Role

(S3Publish/Environment/Connections/Role)

(Connections が含まれている場合は必須)

Amazon S3 発行アクションが AWS にアクセスしてファイルを Amazon S3 にコピーするために使用する IAM ロールの名前を指定します。ロールを CodeCatalyst スペースに追加し、ロールに次のポリシーが含まれていることを確認します。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの [環境] に記載されているデフォルトの IAM ロールを使用します。環境でデフォルトのロールを使用する場合は、次のポリシーが設定されていることを確認してください。

  • 以下のアクセス許可ポリシー:

    警告

    アクセス許可は、次のポリシーに示すアクセス許可に制限します。範囲の広いアクセス許可を持つロールを使用すると、セキュリティリスクが発生する可能性があります。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  • 次のカスタム信頼ポリシー:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
注記

必要に応じて、このアクションで CodeCatalystWorkflowDevelopmentRole-spaceName ロールを使用できます。このロールの詳細については、「アカウントとスペース用の CodeCatalystWorkflowDevelopmentRole-spaceName ロールを作成する」を参照してください。CodeCatalystWorkflowDevelopmentRole-spaceName ロールにはフルアクセス許可があり、セキュリティ上のリスクをもたらす可能性があることを理解してください。このロールは、セキュリティが懸念されないチュートリアルやシナリオでのみ使用することをお勧めします。

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[ロール]

Configuration

(S3Publish/Configuration)

(必須)

アクションの設定プロパティを定義できるセクション。

対応する UI: 設定タブ

SourcePath

(S3Publish/Configuration/SourcePath)

(必須)

Amazon S3 に発行するディレクトリまたはファイルの名前とパスを指定します。ディレクトリまたはファイルは、ソースリポジトリまたは前のアクションからのアーティファクトに存在します。ソースリポジトリまたはアーティファクトのルートへの相対パスを指定します。

例:

./myFolder/ を指定すると、/myFolder の中身が Amazon S3 にコピーされ、内部のディレクトリ構造は保持されます。

./myFolder/myfile.txt を指定すると、myfile.txt のみが Amazon S3 にコピーされます。(ディレクトリ構造は削除されます。)

ワイルドカードは使用できません。

注記

ディレクトリまたはファイルパスにプレフィックスを追加して、見つけるアーティファクトまたはソースを示す必要がある場合があります。詳細については、「ソースリポジトリファイルの参照」と「アーティファクト内のファイルの参照」を参照してください。

対応する UI: [設定] タブ/[ソースパス]

DestinationBucketName

(S3Publish/Configuration/DestinationBucketName)

(必須)

ファイルを発行する Amazon S3 バケットの名前を指定します。

対応する UI: [設定] タブ/[送信先バケット - オプション]

TargetPath

(S3Publish/Configuration/TargetPath)

(オプション)

ファイルを発行する Amazon S3 のディレクトリの名前とパスを指定します。ディレクトリが存在しない場合は作成されます。ディレクトリパスにバケット名を含めることはできません。

例:

myS3Folder

./myS3Folder/myS3Subfolder

対応する UI: [設定] タブ/[送信先ディレクトリ - オプション]