

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

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

# CDK Toolkit インスタンスの設定
<a name="toolkit-library-configure"></a>

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

## AWS プロファイルの設定
<a name="toolkit-library-configure-profile"></a>

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" },
});
```

## スタック選択の設定
<a name="toolkit-library-configure-stacks"></a>

ほとんどの CDK Toolkit アクションでは、操作するスタックを指定する必要があります。` [StackSelector](https://docs.aws.amazon.com/cdk/api/toolkit-lib/Package/toolkit-lib/Interface/StackSelector/) ` 設定は、この選択を制御します。

### すべてのスタックセットを選択する
<a name="toolkit-library-configure-stacks-all"></a>

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

```
import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib';

// Select all stacks in the cloud assembly
await toolkit.deploy(cloudAssemblySource, {
  stacks: {
    strategy: StackSelectionStrategy.ALL_STACKS
  }
});
```

### メインアセンブリスタックのみを選択する
<a name="toolkit-library-configure-stacks-main"></a>

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

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

### 1 つのスタックを選択する
<a name="toolkit-library-configure-stacks-single"></a>

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

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

### パターンでスタックを選択する
<a name="toolkit-library-configure-stacks-pattern"></a>

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

```
// 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` を使用します。パターンマッチングは、「\*」などのワイルドカードをサポートし、類似した名前の複数のスタックを照合します。

## エラー処理の設定
<a name="toolkit-library-configure-errors"></a>

CDK Toolkit は、構造化エラーを使用して、問題の特定と処理を支援します。各エラーには以下が含まれます。
+ エラーの発生元 (ツールキットまたはユーザー) を示す**ソース**。
+ 特定の**エラータイプ** (認証、検証など)。
+ 記述的な**メッセージ**。

### エラー処理
<a name="toolkit-library-configure-errors-how"></a>

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 アクションの設定
<a name="toolkit-library-configure-actions"></a>

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

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