Assets
CDK ライブラリやアプリケーションにバンドルできるローカルファイル 、ディレクトリ、または Docker イメージです。
S3 アセット
CDK が S3 にアップロードするローカルファイルおよびディレクトリです。
aws-s3-assets モジュールを通じて、パッケージ化し S3 へアップロードすることが可能です。
Lambda 関数の例
from_asset で、ディレクトリの内容をバンドルし、それを関数のソースコードとして使用します。
from aws_cdk import Stack
from constructs import Construct
from aws_cdk import aws_lambda as lambda_
import os.path
dirname = os.path.dirname(__file__)
class HelloAssetStack(Stack):
def __init__(self, scope: Construct, id: str, **kwargs):
super().__init__(scope, id, **kwargs)
lambda_.Function(self, 'myLambdaFunction',
code=lambda_.Code.from_asset(os.path.join(dirname, 'handler')),
runtime=lambda_.Runtime.PYTHON_3_9,
handler="index.lambda_handler")
Docker イメージアセット
CDK は、ローカルの Docker イメージをアセットとしてバンドルすることもできます。
例
ローカルでビルドし、ECR に push する Docker イメージを定義しています。
イメージはローカルの Dockerfile でビルドされ、CDK CLI またはアプリの CI/CD パイプラインによって ECR にアップロードされ、CDK アプリで自然に参照することができます。
この例では、Dockerfile は、CDK が Docker イメージを構築する my-image ディレクトリにあります。ビルド時に、CDK はイメージを ECR リポジトリに push します。
from aws_cdk.aws_ecr_assets import DockerImageAsset
import os.path
dirname = os.path.dirname(__file__)
asset = DockerImageAsset(self, 'MyBuildImage',
directory=os.path.join(dirname, 'my-image'))