💬

SAMでlmabda生成する際にアーティファクトをコンテナイメージにする方法

2025/03/12に公開

lmabdaを生成する際に、コンテナイメージと.zip ファイルアーカイブの2種類存在します。
SAM環境で、コンテナイメージを利用してLambdaを生成する例を紹介します。

ディレクトリ構成:

/sample
    Dockerfile
template.yaml
samconfig.toml

Dockerfileにビルド環境が記述されています。
本来であればアプリケーションのソースコードのディレクトリなどもあると思います。
Dockerfile内部でアプリケーションのソースコードなどもCOPYなどでビルド時にイメージに取り込む想定です。

SAM template.yaml

MetadataとPropertiesのPackageTypeをコンテナイメージ用に設定してあげます。

  SampleFunction:
    Type: AWS::Serverless::Function
    Metadata:
      BuildMethod: docker
      DockerContext: ./sample
      Dockerfile: Dockerfile
    Properties:
      PackageType: Image

Discussion