ハンズオン(簡易版): Lambda基礎 レイヤー

4.2. Lambdaレイヤーバージョンの作成 (ローカルZIPファイル: handson-cli-lambda-basic-layer:2)

手順の目的 [why]

Lambdaレイヤー"handson-cli-lambda-basic-layer"のバージョン"2"を作成します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

0. リージョンの指定

リージョンを指定します。

環境変数の設定

export AWS_DEFAULT_REGION='ap-northeast-1'

1. Lambdaレイヤー名

Lambdaレイヤー名を指定します。

変数の設定:

LAMBDA_LAYER_NAME='handson-cli-lambda-basic-layer'

2. Lambdaレイヤーバージョンの説明

Lambdaレイヤーバージョン名の説明を指定します。

変数の設定:

LAMBDA_LAYER_VERSION_DESCRIPTION='Layer v2 for handson-cli-lambda.'

3. LambdaレイヤーコンテンツZIPファイル

LambdaレイヤーコンテンツZIPファイル用ディレクトリを指定します。

変数の設定:

DIR_LAMBDA_LAYER_ZIP="${HOME}/environment/artifact-handson-cli-lambda"

LambdaレイヤーコンテンツZIPファイルを指定します。

変数の設定:

FILE_LAMBDA_LAYER_ZIP="${DIR_LAMBDA_LAYER_ZIP}/${LAMBDA_LAYER_NAME}-2.zip" \
  && echo ${FILE_LAMBDA_LAYER_ZIP}

結果(例):

${HOME}/environment/artifact-handson-cli-lambda/handson-cli-lambda-basic-layer-2.zip

設定値の確認

各変数に正しい設定値が格納されていることを確認しながら保存します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. LAMBDA_LAYER_NAME:"handson-cli-lambda-basic-layer"
       LAMBDA_LAYER_NAME="${LAMBDA_LAYER_NAME}"
  # 2. LAMBDA_LAYER_VERSION_DESCRIPTION:"Layer v2 for handson-cli-lambda."
       LAMBDA_LAYER_VERSION_DESCRIPTION="${LAMBDA_LAYER_VERSION_DESCRIPTION}"
  # 3. FILE_LAMBDA_LAYER_ZIP:"${HOME}/environment/artifact-handson-cli-lambda/handson-cli-lambda-basic-layer-2.zip"
       FILE_LAMBDA_LAYER_ZIP="${FILE_LAMBDA_LAYER_ZIP}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

Lambdaレイヤーを作成します。

変数の確認:

cat << END

  # LAMBDA_LAYER_NAME:"handson-cli-lambda-basic-layer"
    LAMBDA_LAYER_NAME="${LAMBDA_LAYER_NAME}"
  # LAMBDA_LAYER_VERSION_DESCRIPTION:"Layer v2 for handson-cli-lambda."
    LAMBDA_LAYER_VERSION_DESCRIPTION="${LAMBDA_LAYER_VERSION_DESCRIPTION}"
  # FILE_LAMBDA_LAYER_ZIP:"${HOME}/environment/artifact-handson-cli-lambda/handson-cli-lambda-basic-layer-2.zip"
    FILE_LAMBDA_LAYER_ZIP="${FILE_LAMBDA_LAYER_ZIP}"

END

コマンド:

aws lambda publish-layer-version \
  --layer-name ${LAMBDA_LAYER_NAME} \
  --description "${LAMBDA_LAYER_VERSION_DESCRIPTION}" \
  --zip-file fileb://${FILE_LAMBDA_LAYER_ZIP}

結果(例):

{
    "Content": {
        "CodeSize": 1022839,
        "CodeSha256": "<LambdaレイヤーのコードSHA256の値>",
        "Location": "https://awslambda-ap-ne-1-layers.s3.ap-northeast-1.amazonaws.com/snapshots/XXXXXXXXXXXX/handson-cli-lambda-basic-layer-xxxxxxxx-xxxx-xxxx-xxxx-ff3e2e327cf5?versionId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&X-Amz-Security-Token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=yyyymmddThhmmssZ&X-Amz-SignedHeaders=host&X-Amz-Expires=599&X-Amz-Credential=ASIAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXap-northeast-1%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "LayerVersionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:layer:handson-cli-lambda-basic-layer:2",
    "Version": 1,
    "Description": "Layer v2 for handson-cli-lambda.",
    "CreatedDate": "2021-02-18T01:23:45.678+0000",
    "LayerArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:layer:handson-cli-lambda-basic-layer"
}

完了確認

「Lambdaレイヤー"handson-cli-lambda-basic-layer"が存在する」ことを確認します。

コマンド:

aws lambda list-layers \
  --query "Layers[?LayerName == \`${LAMBDA_LAYER_NAME}\`].LayerName" \
  --output text

結果(例):

handson-cli-lambda-basic-layer

「Lambdaレイヤー"handson-cli-lambda-basic-layer"の最新バージョンが2 "である。」ことを確認します。

コマンド:

aws lambda list-layers \
  --query "Layers[?LayerName == \`${LAMBDA_LAYER_NAME}\`].LatestMatchingVersion.Version" \
  --output text

結果(例):

2

手順の完了