Back to Releases
AWS CDK 2026年5月13日

AWS CDK v2.254.0 リリース解説

PromQL Alarm L2 コンストラクト、weak cross-stack references、DynamoDB Streams リソースポリシー、SES 自動メール検証など多数の新機能を追加。破壊的変更として一部 L1 リソースの属性が削除されています。

概要

このリリースでは、CloudWatch の PromQL Alarm L2 コンストラクト、スタック間参照の新しい「weak」モード、DynamoDB Streams へのリソースポリシーサポートなど、多くの重要な新機能が追加されました。また、L1 CloudFormation リソース定義の更新に伴い、一部の属性が削除される破壊的変更が含まれています。

リリース: v2.254.0


破壊的変更

L1 CloudFormation リソース定義の更新 (#37826)

L1 リソースが CloudFormation リソーススキーマから自動生成される際に、以下の属性が削除されました:

  • aws-elasticache: AWS::ElastiCache::CacheClusterId 属性が削除
  • aws-sagemaker: AWS::SageMaker::ModelId 属性が削除
  • aws-vpclattice: AWS::VpcLattice::AuthPolicyState 属性の enum 値が ACTIVE|INACTIVE から Active|Inactive に変更

移行方法:

  • これらの属性を参照しているコードがある場合は、代替の方法(Ref や他の属性)を使用するように修正してください。

新機能

CloudWatch PromQL Alarm L2 コンストラクト (#37793)

この機能でできること:

  • PromQL インスタントクエリに基づいて CloudWatch アラームを作成できます。CloudWatch OTLP エンドポイントを通じて取り込まれたメトリクスを監視し、標準のアラームとは異なる期間ベースの状態遷移(pending/recovery periods)を使用します。

使用例:

import { PromQLAlarm } from 'aws-cdk-lib/aws-cloudwatch';
import * as cdk from 'aws-cdk-lib';

const alarm = new PromQLAlarm(this, 'MyPromQLAlarm', {
  // PromQL インスタントクエリ
  query: 'sum(rate(http_requests_total[5m]))',

  // アラーム状態に遷移するまでの待機時間
  pendingPeriod: cdk.Duration.minutes(5),

  // OK 状態に戻るまでの待機時間
  recoveryPeriod: cdk.Duration.minutes(10),

  // クエリの評価間隔
  evaluationInterval: cdk.Duration.minutes(1),

  // アラームの説明
  alarmDescription: 'HTTP リクエストレートが高すぎます',
});

// アラームアクションの追加も可能
alarm.addAlarmAction(new SnsAction(topic));

ポイント:

  • PromQL アラームは CloudWatch OTLP エンドポイントで取り込まれたメトリクス専用です
  • pendingPeriodrecoveryPeriod は標準アラームの評価期間/データポイント モデルとは異なります

スタック間参照の weak モード(クロスリージョン) (#37800)

この機能でできること:

  • Fn::GetStackOutput を使用した weak 参照により、プロデューサースタックをコンシューマースタックとは独立して削除できるようになります。SSM ベースの strong 参照に比べて追加インフラが不要でシンプルです。

使用例:

cdk.json でコンテキストキーを設定:

{
  "context": {
    "@aws-cdk/core:crossStackReferenceStrength": "weak"
  }
}

設定オプション:

  • "strong"(デフォルト): SSM 経由の ExportWriter/ExportReader — プロデューサーはコンシューマーが存在する間削除不可
  • "weak": Fn::GetStackOutput — シンプルだがプロデューサーを独立して削除可能
  • "both": 移行用 — SSM と Output の両方を維持

ポイント:

  • クロスアカウント参照の場合、プロデューサースタックに IAM ロールとポリシーが自動作成されます
  • "both" モードは既存の strong から weak への移行パスとして使用できます

スタック間参照の weak モード(同一環境) (#37824)

この機能でできること:

  • 同一アカウント・同一リージョン内のスタック間でも weak 参照が使用可能になりました。これまではクロスリージョンのみでしたが、同一環境でも Fn::GetStackOutput を使用した参照が可能です。

使用例:

// ProducerStack
const bucket = new s3.Bucket(this, 'SharedBucket');
this.exportValue(bucket.bucketArn);

// ConsumerStack(cdk.json で weak モードを設定)
// bucket.bucketArn を参照すると Fn::GetStackOutput で解決される

PropertyMergeStrategy の配列マージ戦略 (#37841)

この機能でできること:

  • PropertyMergeStrategy.combine() でプロパティを結合する際に、配列の結合方法を指定できるようになりました。タグ、ルール、その他のリストタイプのプロパティを柔軟にマージできます。

使用例:

import { PropertyMergeStrategy, ArrayMergeStrategy } from 'aws-cdk-lib/core';

// 配列を末尾に追加
PropertyMergeStrategy.combine({
  arrays: ArrayMergeStrategy.append(),
});

// 配列を先頭に追加
PropertyMergeStrategy.combine({
  arrays: ArrayMergeStrategy.prepend(),
});

// インデックスで置換
PropertyMergeStrategy.combine({
  arrays: ArrayMergeStrategy.replaceByIndex(),
});

// キーで置換(オブジェクト配列用)
PropertyMergeStrategy.combine({
  arrays: ArrayMergeStrategy.replaceByKey('id'),
});

利用可能な戦略:

  • replace(デフォルト): 配列全体を置換
  • append: ソース要素をターゲットの後に追加
  • prepend: ソース要素をターゲットの前に追加
  • replaceByIndex: 先頭から位置で要素を上書き
  • replaceByKey(key): 共通キーフィールドでオブジェクトをマッチング

バリデーションプラグイン違反の抑制 (#37808)

この機能でできること:

  • バリデーションプラグイン(CfnGuard など)が報告する違反を、Validations.of().acknowledge() を使用して抑制できるようになりました。

使用例:

import { Validations } from 'aws-cdk-lib/core';

Validations.of(myBucket).acknowledge({
  id: 'CfnGuardValidator::S3_BUCKET_VERSIONING',
  reason: '組織レベルのポリシーで対応済み',
});

ポイント:

  • ルール ID は <pluginName>::<ruleName> 形式で指定
  • 重大度が fatal の違反は抑制できません

DynamoDB Streams リソースポリシー (#37254)

この機能でできること:

  • DynamoDB TableV2 の Streams に対してリソースベースポリシーを設定できるようになりました。

使用例:

import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as iam from 'aws-cdk-lib/aws-iam';

// プロパティで指定
const table = new dynamodb.TableV2(this, 'MyTable', {
  partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
  dynamoStream: dynamodb.StreamViewType.NEW_AND_OLD_IMAGES,
  // Streams に対するリソースポリシー
  streamResourcePolicy: new iam.PolicyDocument({
    statements: [
      new iam.PolicyStatement({
        actions: ['dynamodb:GetRecords', 'dynamodb:GetShardIterator'],
        principals: [new iam.AccountPrincipal('123456789012')],
        resources: ['*'],
      }),
    ],
  }),
});

// または命令的に追加
table.addToStreamResourcePolicy(
  new iam.PolicyStatement({
    actions: ['dynamodb:DescribeStream'],
    principals: [new iam.ServicePrincipal('lambda.amazonaws.com')],
    resources: ['*'],
  })
);

Lambda SQS provisionedPollerConfig サポート (#37550)

この機能でできること:

  • SQS イベントソースに対して provisionedPollerConfig を設定し、ポーラーの最小・最大数を制御できるようになりました。

使用例:

import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as eventsources from 'aws-cdk-lib/aws-lambda-event-sources';

fn.addEventSource(new eventsources.SqsEventSource(queue, {
  provisionedPollerConfig: {
    // SQS の場合: 2-200(デフォルト: 2)
    minimumPollers: 5,
    // SQS の場合: 2-2000(デフォルト: 200)
    maximumPollers: 50,
  },
}));

ポイント:

  • SQS の有効範囲: minimum 2-200、maximum 2-2000
  • MSK/Kafka/MQ の有効範囲: minimum 1-200、maximum 1-2000

SES コンフィギュレーションセットの自動メール検証 (#36679)

この機能でできること:

  • SES のコンフィギュレーションセットで自動メール検証を設定できるようになりました。無効なメールアドレスへの送信を自動的に抑制します。

使用例:

import * as ses from 'aws-cdk-lib/aws-ses';

// HIGH 信頼度で自動検証を有効化
new ses.ConfigurationSet(this, 'ConfigSet', {
  confidenceVerdictThreshold: ses.ConfidenceVerdictThreshold.HIGH,
});

// MEDIUM 信頼度
new ses.ConfigurationSet(this, 'ConfigSetMedium', {
  confidenceVerdictThreshold: ses.ConfidenceVerdictThreshold.MEDIUM,
});

// AWS 管理の閾値
new ses.ConfigurationSet(this, 'ConfigSetManaged', {
  confidenceVerdictThreshold: ses.ConfidenceVerdictThreshold.MANAGED,
});

// 明示的に無効化
new ses.ConfigurationSet(this, 'ConfigSetDisabled', {
  confidenceVerdictThreshold: ses.ConfidenceVerdictThreshold.DISABLED,
});

利用可能な閾値:

  • DISABLED: 機能を無効化
  • MEDIUM: 中程度の信頼度
  • HIGH: 高い信頼度
  • MANAGED: AWS 管理の閾値

バグ修正

ファイルフィンガープリントが約33%高速化 (#37802)

  • アセットのフィンガープリント計算時に同じファイルを重複して stat していた問題を修正
  • 特定のディレクトリで約19秒から約13秒に改善

クロスリージョン参照で「exports cannot be updated」エラー (#37790)

  • クロスリージョン参照使用時に発生していたエラーを修正

RDS ClusterInstance の promotionTier 下限バリデーション追加 (#37519)

  • promotionTier が負の値を許容していた問題を修正
  • 0-15 の範囲チェックが正しく動作するように

S3 BucketDeployment で空の sources がエラーになる問題 (#37786)

  • sources: [] を指定した場合にデプロイが失敗する問題を修正

@aws-cdk/cloud-assembly-api のバンドルされた jsonschema の問題 (#37774)

  • バンドルされた jsonschema が ELSPROBLEMS を引き起こす問題を修正

Alpha モジュール (2.254.0-alpha.0)

Bedrock AgentCore: Evaluator と OnlineEvaluationConfig のタグサポート (#37804)

この機能でできること:

  • Evaluator および OnlineEvaluationConfig L2 コンストラクトでタグを設定できるようになりました。

使用例:

import * as agentcore from '@aws-cdk/aws-bedrock-agentcore-alpha';

new agentcore.Evaluator(this, 'MyEvaluator', {
  // その他のプロパティ...
  tags: {
    Environment: 'Production',
    Team: 'ML',
  },
});

Bedrock AgentCore: Identity L2 コンストラクト (#37610)

この機能でできること:

  • Token Vault の認証情報プロバイダー(ApiKeyCredentialProvider、OAuth2CredentialProvider、WorkloadIdentity)用の新しい L2 コンストラクトが追加されました。

使用例:

import * as agentcore from '@aws-cdk/aws-bedrock-agentcore-alpha';
import * as cdk from 'aws-cdk-lib';

// API キー認証プロバイダー
const apiKeyProvider = new agentcore.ApiKeyCredentialProvider(this, 'ApiKeyProvider', {
  apiKeyCredentialProviderName: 'my-api-key-provider',
  apiKey: cdk.SecretValue.secretsManager('my-api-key-secret'),
});

// OAuth2 認証プロバイダー(GitHub 用)
const oauthProvider = agentcore.OAuth2CredentialProvider.usingGithub(this, 'OAuthProvider', {
  oAuth2CredentialProviderName: 'my-oauth-provider',
  clientId: 'github-client-id',
  clientSecret: cdk.SecretValue.secretsManager('github-client-secret'),
});

// Workload Identity
const workloadIdentity = new agentcore.WorkloadIdentity(this, 'WorkloadIdentity', {
  workloadIdentityName: 'my-workload-identity',
});

// Gateway ターゲットで認証プロバイダーを使用
gateway.addOpenApiTarget('ApiTarget', {
  gatewayTargetName: 'my-api-target',
  apiSchema: openApiSchema,
  credentialProviderConfigurations: [
    agentcore.GatewayCredentialProvider.fromApiKeyIdentity(apiKeyProvider),
  ],
});

MediaPackageV2: CloudFront との OAC 統合 (#37701)

この機能でできること:

  • CloudFront と MediaPackageV2 の間で Origin Access Control (OAC) を使用した統合が簡単に設定できるようになりました。

使用例:

import * as mediapackagev2 from '@aws-cdk/aws-mediapackagev2-alpha';
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';

// MediaPackageV2 エンドポイントを CloudFront オリジンとして使用
const origin = new mediapackagev2.MediaPackageV2Origin(endpoint, {
  // OAC が自動的に設定される
});

new cloudfront.Distribution(this, 'Distribution', {
  defaultBehavior: { origin },
});

Bedrock AgentCore: Cedar ポリシーのバグ修正 (#37782)

  • isIn() メソッドが Cedar のセットリテラルを誤って文字列リテラルとしてクォートしていた問題を修正

カスタムリソースハンドラー: パラメータ既存時のデプロイ失敗 (#37852)

  • SSM パラメータが既に存在する場合にデプロイが失敗する問題を修正
  • putParameter 呼び出しに Overwrite: true を追加

まとめ

v2.254.0 は PromQL Alarm、weak cross-stack references、DynamoDB Streams ポリシーなど多くの機能追加に加え、L1 リソースの属性削除という破壊的変更を含む重要なリリースです。Alpha モジュールでは Bedrock AgentCore の Identity コンストラクトや MediaPackageV2 の CloudFront 統合が追加されました。