ENV GEM_HOME=${LAMBDA_TASK_ROOT} RUN bundle install CMD [ "app.lambda_handler" ] ※ アーキテクチャをDocker イメージを合わせてます(arm64 ) Mac でDocker イメージをダウンロードするとマルチアーキテクチャでarm64 が選択される。 最初、us-west1 で作っていたらx86_64 のアーキテクチャでLambda 関数が動作するので、アーキテクチャが⼀致せずにエ ラーになった。 そのためus-west-1 以外のリージョンでアーキテクチャを指定して合わせた。 現状M1 以外の⼈がローカルでDocker デプロイするとエラーになるので後ほど、CI 化する。 デプロイ⼿順 ローカルマシンで、git clone https://github.com/yojo-technologies/pharmacy-dx-line-handler ローカルのDockerfile からスクリプトを含めたコンテナイメージを作成 docker build --no-cache -t pharmacy-chatbot-line-handler-dev . ローカルで起動する Lambda コンテナイメージをローカルでテストする https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-test.html AWS Lambda Runtime Interface Emulator (RIE) は、Lambda ランタイム API のプロキシでコンテナイメージとしてパッ ケージ化された Lambda 関数をローカルでテストできる json のパースエラーが出てローカルでエミュレーターは動かせなかった。現状はローカルテストはせずにそのままデプロイし て動作確認してる。 curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' イメージを Amazon ECR コンテナレジストリにアップロード AWS CLI をインストール https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html AWS の認証情報を設定 aws configure にアクセスID とアクセスキーを設定 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html Amazon ECR レジストリに対して Docker を認証 aws ecr get-login-password このコマンドは、AmazonECR レジストリへの認証に使⽤できるGetAuthorizationTokenAPI を使⽤して認証トー クンを取得して表⽰します。 Docker CLI など、好みのコンテナクライアントのログインコマンドに認証トークンを渡すことができます このコマンドでAmazonECR レジストリに認証された後、トークンの有効期限が切れるまでIAM プリンシパルがア クセスできる限り、 クライアントを使⽤してそのレジストリからイメージをプッシュおよびプルできます。認証トークンは12 時間有 効です。