AWS

AWS CLI を使用した Lambda関数のデプロイ

今までローカルで作成したLambda関数をAWS マネジメントコンソールを使用してデプロイ(zipファイルをアップロード)していました。

Lambda関数が多い場合、ブラウザ(AWS マネジメントコンソール)を使用してのデプロイは結構な手間になります。
そこで、AWS CLI を使用してコマンドベースでデプロイを行います。

前提

予めAWSに作成されているLambda関数を、ローカルで作成したLambda関数で更新(デプロイ)します。
したがって、AWSへLambda関数を作成しておいて下さい。
本稿ではLambda関数名を “test_deploy” という名前で作成してることとします。
Lambda関数の作成については説明しません。
なお、AWS CLI を使う為、AWS CLIを使用できる状態にしておいて下さい。
AWS CLI の設定については説明しません。
開発言語はnode.jsを使用します。

概要

AWS マネジメントコンソールでも同じですが、ローカルで作成したデプロイ対象のLambda関数をzipファイルにします。
その後、AWS CLI のコマンド使用してデプロイ(AWS へzipファイルをアップロード)します。

ローカルのLambda関数作成

ローカルでLambda関数を作成します。
ファイル名はindex.jsとします。
Lambda関数はデフォルトでindex.jsが実行されます。
以下はLambda関数の例になります。

const aws = require("aws-sdk");

exports.handler = async (event, context) => {
    context.succeed({
        statusCode: 200,
        body      : event,
    });
};

デプロイファイル作成

作成したLambda関数(index.js)をzipファイルにします。
以下はzipファイルを作成するコマンドの例になります。
コマンドはindex.jsファイルが存在するディレクトリで行って下さい。
一つ上の階層のディレクトリに test_deploy.zip が作成されます。

zip -r ../test_deploy.zip ./* -x \*/.DS_Store/\*

zipファイルの説明は以下を参考にして下さい。

zip ファイル作成

zip ファイル作成

デプロイ実行

先ほど作成したzipファイルが存在するディレクトリへ移動し、以下のコマンドを実行します。

aws lambda update-function-code --function-name test_deploy --zip-file fileb://test_deploy.zip

–function-name でデプロイ先のLambda関数名を指定します。

成功すると以下のようなレスポンスが返却されます。

{
    "FunctionName": "test_deploy",
    "FunctionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXXX:function:test_deploy",
    "Runtime": "nodejs14.x",
    "Role": "arn:aws:iam::XXXXXXXXXXXXX:role/exec-lambda",
    "Handler": "index.handler",
    "CodeSize": 317,
    "Description": "",
    "Timeout": 3,
    "MemorySize": 128,
    "LastModified": "2021-08-20T06:49:26.193+0000",
    "CodeSha256": "XXXXXXXXXXXXXXX",
    "Version": "$LATEST",
    "TracingConfig": {
        "Mode": "PassThrough"
    },
    "RevisionId": "a66b51f4-1071-4d57-8403-973854008f7a",
    "State": "Active",
    "LastUpdateStatus": "Successful",
    "PackageType": "Zip"
}

最後に

特にありません。

© DeNnie.Lab All Rights Reserved.