概要
AWS CDK v2.191.0では、CodeBuildのLambda用ビルドイメージに新しいランタイムサポートが追加され、Aurora MySQLの最新バージョン2.12.4および3.08.2がサポートされました。また、CloudFormationリソース定義の更新と、alphaモジュールにおけるエラーハンドリングの改善が行われています。
新機能
CodeBuildに新しいLambda用ビルドイメージを追加
AWS CodeBuildで利用できるLambda用のビルドイメージに、最新のランタイムバージョンが追加されました。ARM64とx86_64の両アーキテクチャに対応しています。
追加されたイメージ:
ARM64版 (LinuxArmLambdaBuildImage):
- Node.js 22
- Python 3.13
- Ruby 3.4
- Go 1.24
x86_64版 (LinuxLambdaBuildImage):
- Node.js 22
- Python 3.13
- Ruby 3.4
- Go 1.24
これらの新しいイメージを使用することで、最新のランタイムバージョンでLambda関数のビルドとテストを行うことができます。
使用例(ARM64版):
import * as codebuild from 'aws-cdk-lib/aws-codebuild';
import * as cdk from 'aws-cdk-lib';
const project = new codebuild.Project(this, 'LambdaProject', {
// Node.js 22を使用したARM64 Lambda用ビルド環境
environment: {
buildImage: codebuild.LinuxArmLambdaBuildImage.AMAZON_LINUX_2_STANDARD_3_0_NODEJS_22,
},
buildSpec: codebuild.BuildSpec.fromObject({
version: '0.2',
phases: {
build: {
commands: [
'npm install',
'npm run build',
],
},
},
}),
});
使用例(x86_64版 - Python 3.13):
const pythonProject = new codebuild.Project(this, 'PythonLambdaProject', {
// Python 3.13を使用したx86_64 Lambda用ビルド環境
environment: {
buildImage: codebuild.LinuxLambdaBuildImage.AMAZON_LINUX_2_STANDARD_5_0_PYTHON_3_13,
},
buildSpec: codebuild.BuildSpec.fromObject({
version: '0.2',
phases: {
build: {
commands: [
'pip install -r requirements.txt -t .',
'python -m pytest tests/',
],
},
},
}),
});
参考: AWS CodeBuild Lambda compute images
関連PR: #34197
Aurora MySQLの新しいバージョンをサポート
Amazon Aurora MySQLの最新バージョン2.12.4および3.08.2がサポートされました。
追加されたバージョン:
- Aurora MySQL 2.12.4 (MySQL 5.7互換)
- Aurora MySQL 3.08.2 (MySQL 8.0互換)
使用例:
import * as rds from 'aws-cdk-lib/aws-rds';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
// Aurora MySQL 2.12.4を使用
const cluster2 = new rds.DatabaseCluster(this, 'AuroraCluster2', {
engine: rds.DatabaseClusterEngine.auroraMysql({
version: rds.AuroraMysqlEngineVersion.VER_2_12_4, // 新バージョン
}),
instanceProps: {
vpc,
instanceType: ec2.InstanceType.of(
ec2.InstanceClass.T3,
ec2.InstanceSize.MEDIUM,
),
},
});
// Aurora MySQL 3.08.2を使用
const cluster3 = new rds.DatabaseCluster(this, 'AuroraCluster3', {
engine: rds.DatabaseClusterEngine.auroraMysql({
version: rds.AuroraMysqlEngineVersion.VER_3_08_2, // 新バージョン
}),
instanceProps: {
vpc,
instanceType: ec2.InstanceType.of(
ec2.InstanceClass.T3,
ec2.InstanceSize.MEDIUM,
),
},
});
参考:
関連PR: #34045
CloudFormationリソース定義の更新
CloudFormationのL1リソース定義が更新されました。最新のAWSサービス機能が利用可能になります。
関連PR: #34207
Alphaモジュールの変更
aws-location-alpha: ValidationErrorの導入
aws-location-alphaモジュールで、エラーハンドリングが改善され、型付きのValidationErrorがスローされるようになりました。これまで一般的なErrorが使用されていた箇所で、より明確なエラー情報が提供されます。
影響を受けるコンストラクト:
- GeofenceCollection
- Map
- PlaceIndex
- RouteCalculator
- Tracker
この変更により、エラーハンドリングが改善され、開発者がより具体的なエラー情報を取得できるようになります。
関連PR: #34174
aws-msk-alpha: ValidationErrorの導入
aws-msk-alphaモジュールでも同様に、ValidationErrorがスローされるようになりました。
影響を受けるコンストラクト:
- Cluster
- ServerlessCluster
この変更により、MSKクラスターの構成エラーをより適切に処理できるようになります。
関連PR: #34214
破壊的変更
Alphaモジュールの破壊的変更
neptune-alpha
AWS::Neptune::DBClusterParameterGroupおよびAWS::Neptune::DBParameterGroupリソースからId属性が削除されました。
これらの属性に依存しているコードがある場合は、代替の識別方法を使用するように更新する必要があります。
L1コンストラクトの破壊的変更
CloudFormationリソースの更新に伴い、一部のL1リソースに破壊的変更が含まれています。
aws-launchwizard
CfnDeploymentのspecificationsプロパティが必須から任意に変更されました。
変更前:
new launchwizard.CfnDeployment(this, 'Deployment', {
specifications: { /* 必須 */ },
// その他のプロパティ
});
変更後:
new launchwizard.CfnDeployment(this, 'Deployment', {
// specificationsは任意に
// その他のプロパティ
});
aws-ses
RuleBooleanToEvaluatePropertyのattribute属性が必須から任意に変更されました。
影響範囲:
これらの変更により、既存のコードでTypeScriptのコンパイルエラーが発生する可能性があります。該当するリソースを使用している場合は、プロパティの指定方法を確認してください。
まとめ
AWS CDK v2.191.0では、CodeBuildとRDSの機能強化が行われ、最新のランタイムとデータベースエンジンのサポートが追加されました。特に、Lambda用ビルドイメージへの最新ランタイム追加により、モダンなアプリケーション開発がより容易になります。
alphaモジュールでは、エラーハンドリングの改善により、開発者体験が向上しています。一方で、L1コンストラクトの破壊的変更には注意が必要です。
最新バージョンへの更新を検討する際は、特にneptune-alpha、aws-launchwizard、aws-sesを使用している場合は、破壊的変更の影響を確認してください。