翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アクション間でのコンピューティングの共有
デフォルトでは、ワークフロー内のアクションはフリート 内の個別のインスタンスで実行されます。この動作は、入力の状態を分離し、予測可能なアクションを提供します。デフォルトの動作では、ファイルや変数などのコンテキストをアクション間で共有するための明示的な設定が必要です。
コンピューティング共有は、ワークフロー内のすべてのアクションを同じインスタンスで実行できる機能です。コンピューティング共有を使用すると、インスタンスのプロビジョニングに費やす時間が短縮されるため、ワークフローのランタイムが短縮されます。ワークフロー設定を追加しなくても、アクション間でファイル (アーティファクト) を共有することもできます。
コンピューティング共有を使用してワークフローを実行すると、デフォルトまたは指定されたフリートのインスタンスは、そのワークフロー内のすべてのアクションの期間中予約されます。ワークフローの実行が完了すると、インスタンスの予約が解放されます。
共有コンピューティングで複数のアクションを実行する
YAML ワークフローレベルで定義の Compute
属性を使用して、アクションのフリート共有プロパティとコンピューティング共有プロパティの両方を指定できます。のビジュアルエディタを使用してコンピューティングプロパティを設定することもできます CodeCatalyst。フリートを指定するには、既存のフリートの名前を設定し、コンピューティングタイプを に設定してEC2、コンピューティング共有を有効にします。
注記
コンピューティング共有は、コンピューティングタイプが に設定されている場合にのみサポートされEC2、Windows Server 2022 オペレーティングシステムではサポートされていません。コンピューティングフリート、コンピューティングタイプ、プロパティの詳細については、「」を参照してくださいコンピューティングイメージとランタイムイメージの設定。
注記
無料利用枠で、ワークフロー定義 で Linux.x86-64.XLarge
または Linux.x86-64.2XLarge
フリートを手動で指定するとYAML、アクションは引き続きデフォルトのフリート () で実行されますLinux.x86-64.Large
。コンピューティングの可用性と料金の詳細については、階層オプション の表
コンピューティング共有がオンになっている場合、ワークフローソースを含むフォルダはアクション間で自動的にコピーされます。出力アーティファクトを設定し、ワークフロー定義 (YAML ファイル) 全体で入力アーティファクトとして参照する必要はありません。ワークフロー作成者は、コンピューティング共有を使用しない場合と同様に、入力と出力を使用して環境変数をワイヤアップする必要があります。ワークフローソース外のアクション間でフォルダを共有する場合は、ファイルのキャッシュを検討してください。詳細については、「アクション間でのアーティファクトとファイルの共有」および「ワークフロー実行間のファイルのキャッシュ」を参照してください。
ワークフロー定義ファイルが存在するソースリポジトリは、ラベル によって識別されますWorkflowSource
。コンピューティング共有の使用中に、ワークフローソースは、それを参照する最初のアクションでダウンロードされ、ワークフロー実行の後続のアクションで使用できるようになります。ファイルの追加、変更、削除などのアクションによってワークフローソースを含むフォルダに加えられた変更は、ワークフローの後続のアクションにも表示されます。コンピューティング共有を使用せずに、ワークフローアクションのワークフローソースフォルダにあるファイルを参照できます。詳細については、「ソースリポジトリファイルを参照する」を参照してください。
注記
コンピューティング共有ワークフローでは、並列アクションを設定できないように、アクションの厳密なシーケンスを指定する必要があります。出力アーティファクトはシーケンス内の任意のアクションで設定できますが、入力アーティファクトはサポートされていません。
コンピューティング共有に関する考慮事項
コンピューティング共有を使用してワークフローを実行して、ワークフローの実行を高速化し、同じインスタンスを使用するワークフロー内のアクション間でコンテキストを共有できます。コンピューティング共有の使用がシナリオに適しているかどうかを判断するには、次の点を考慮してください。
コンピューティング共有 | コンピューティング共有なし | |
---|---|---|
コンピューティングタイプ |
Amazon EC2 |
Amazon EC2、AWSLambda |
インスタンスのプロビジョニング |
同じインスタンスで実行されるアクション |
アクションは個別のインスタンスで実行されます |
オペレーティングシステム |
Amazon Linux 2 |
Amazon Linux 2、Windows Server 2022 (ビルドアクションのみ) |
ファイルを参照する |
|
|
Workflow 構造 |
アクションは順番にしか実行できません |
アクションは並列で実行できます |
ワークフローアクション間のデータへのアクセス |
キャッシュされたワークフローソースへのアクセス ( |
共有アーティファクトのアクセス出力 (追加の設定が必要) |
コンピューティング共有を有効にする
次の手順に従って、ワークフローのコンピューティング共有を有効にします。
例
例: Amazon S3 Publish
次のワークフロー例は、Amazon S3 Publish アクションを 2 つの方法で実行する方法を示しています。まず入力アーティファクトを使用し、次にコンピューティング共有を使用します。コンピューティング共有では、キャッシュされた にアクセスできるため、入力アーティファクトは必要ありませんWorkflowSource
。さらに、ビルドアクションの出力アーティファクトは不要になりました。S3 Publish アクションは、明示的な DependsOn
プロパティを使用してシーケンシャルアクションを維持するように設定されています。S3 Publish アクションを実行するには、ビルドアクションが正常に実行されている必要があります。
コンピューティング共有を使用しない場合は、入力アーティファクトを使用し、出力を後続のアクションと共有する必要があります。
Name: S3PublishUsingInputArtifact SchemaVersion: "1.0" Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ArtifactToPublish Files: [output.zip] Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 Inputs: Artifacts: - ArtifactToPublish Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket
-
を
SharedInstance
に設定してコンピューティング共有を使用する場合TRUE
、同じインスタンスで複数のアクションを実行し、単一のワークフローソースを指定してアーティファクトを共有できます。入力アーティファクトは必須ではなく、指定できません。Name: S3PublishUsingComputeSharing SchemaVersion: "1.0" Compute: Type: EC2 Fleet: dev-fleet SharedInstance: TRUE Actions: Build: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 DependsOn: - Build Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket