LoginSignup
0
0

More than 1 year has passed since last update.

AWS CDK - Assets

Posted at

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'))
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0