CDK Toolkit インスタンスの設定 - AWS クラウド開発キット (AWS CDK) v2

これは AWS CDK v2 デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

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

CDK Toolkit インスタンスの設定

メッセージ処理、 AWS プロファイル選択、スタック選択戦略のオプションを使用して AWS CDK Toolkit Library インスタンスをカスタマイズする方法について説明します。このガイドでは、使用可能な設定オプションと、特定のデプロイ要件を満たすためにそれらを効果的に実装する方法について説明します。

AWS プロファイルの設定

CDK Toolkit Library を使用すると、SDK AWS を使用して への API コールが行われます。認証が環境から自動的にロードされる間、使用するプロファイルを明示的に指定できます。

import { Toolkit } from '@aws-cdk/toolkit-lib'; // Create a toolkit instance with a specific AWS profile const toolkit = new Toolkit({ sdkConfig: { profile: "my-profile" }, });

スタック選択の設定

ほとんどの CDK Toolkit アクションでは、操作するスタックを指定する必要があります。 StackSelector 設定は、この選択を制御します。

すべてのスタックを選択する

これは、CDK アプリ内のすべてのスタックで操作する場合に使用します。

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Select all stacks in the cloud assembly await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } });

メインアセンブリスタックのみを選択する

これを使用して、メインアセンブリから最上位スタックのみを選択します。

// Select only top-level stacks await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.MAIN_ASSEMBLY } });

1 つのスタックを選択する

これは、アセンブリにスタックが 1 つだけ含まれていて、この条件をアサートする場合に使用します。アセンブリに 1 つのスタックが含まれている場合、そのスタックが返されます。それ以外の場合は、例外がスローされます。

// Ensure there's exactly one stack and select it await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ONLY_SINGLE } });

パターンでスタックを選択する

これを使用して、名前パターンで特定のスタックを選択します。

// Select stacks matching specific patterns await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["Dev-*", "Test-Backend"], // Supports wildcards } });
ヒント

PATTERN_MUST_MATCH_SINGLE を使用して、1 つのスタックがパターンと一致することを確認するか、スタックが一致しPATTERN_MATCHない場合は を使用します。パターンマッチングは、「*」などのワイルドカードをサポートし、類似した名前の複数のスタックを照合します。

エラー処理の設定

CDK Toolkit は、構造化エラーを使用して問題の特定と処理を支援します。各エラーには以下が含まれます。

  • エラーの発生元 (ツールキットまたはユーザー) を示すソース

  • 特定のエラータイプ (認証、検証など)。

  • わかりやすいメッセージ

エラー処理

CDK Toolkit が提供するヘルパーメソッドを使用して、特定のエラータイプを検出して処理します。

import { ToolkitError } from '@aws-cdk/toolkit-lib'; try { // Attempt a CDK Toolkit operation await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } }); } catch (error) { // Handle specific error types if (ToolkitError.isAuthenticationError(error)) { // Example: AWS credentials are missing or invalid console.error('Authentication failed. Check your AWS credentials.'); } else if (ToolkitError.isAssemblyError(error)) { // Example: Your CDK app has errors in stack definitions console.error('CDK app error:', error.message); } else if (ToolkitError.isDeploymentError(error)) { // Example: CloudFormation deployment failed console.error('Deployment failed:', error.message); } else if (ToolkitError.isToolkitError(error)) { // Handle all other Toolkit errors console.error('CDK Toolkit error:', error.message); } else { // Handle unexpected errors console.error('Unexpected error:', error); } }
重要

同じパッケージの複数のコピーを操作するときに予期せず動作する可能性があるため、エラータイプのinstanceofチェックに頼らないでください。必ず、 のように提供されているヘルパーメソッドを使用してくださいToolkitError.isAuthenticationError()

Toolkit アクションの設定

各 CDK Toolkit アクション (デプロイ、合成、リストなど) には、固有の設定オプションがあります。これらのアクションにより、CDK インフラストラクチャの完全なライフサイクルを管理できます。個々のアクションの設定の詳細については、「Configure CDK Toolkit programmatic actions」を参照してください。

ヒント

自動化ワークフローを構築するときは、複数のアクションを順番に組み合わせることを検討してください。たとえば、synthアプリ、デプロイされるものを検証するlistスタック、インフラストラクチャなどですdeploy