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

1.1. Lambdaレイヤーのコンテンツの作成 (handson-cli-lambda-basic-layer)

手順の目的 [why]

Lambdaレイヤー"handson-cli-lambda-basic-layer"のコンテンツを作成します。

設定値の指定

設定値の指定

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

1. Lambdaレイヤーコンテンツ作成用ディレクトリ

Lambdaレイヤーコンテンツ作成用ディレクトリを指定します。

変数の設定:

DIR_LAMBDA_LAYER_CONTENT="${HOME}/environment/conf-handson-cli-lambda"

ディレクトリが存在することを確認します。

コマンド:

ls -d ${DIR_LAMBDA_LAYER_CONTENT}

結果(例:存在する場合):

${HOME}/environment/conf-handson-cli-lambda

存在しない場合は作成します。

コマンド:

mkdir -p ${DIR_LAMBDA_LAYER_CONTENT}

結果(例):

(出力なし)

2. LambdaレイヤーコンテンツZIPファイル用ディレクトリ

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

変数の設定:

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

ディレクトリが存在することを確認します。

コマンド:

ls -d ${DIR_LAMBDA_LAYER_ZIP}

結果(例:存在する場合):

${HOME}/environment/artifact-handson-cli-lambda

存在しない場合は作成します。

コマンド:

mkdir -p ${DIR_LAMBDA_LAYER_ZIP}

結果(例):

(出力なし)

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

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

変数の設定:

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

変数の設定:

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

結果(例):

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

設定値の確認

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

変数の確認:

cat << END

  # 1. DIR_LAMBDA_LAYER_CONTENT:"${HOME}/environment/conf-handson-cli-lambda"
       DIR_LAMBDA_LAYER_CONTENT="${DIR_LAMBDA_LAYER_CONTENT}"
  # 2. DIR_LAMBDA_LAYER_ZIP:"${HOME}/environment/artifact-handson-cli-lambda"
       DIR_LAMBDA_LAYER_ZIP="${DIR_LAMBDA_LAYER_ZIP}"
  # 3. FILE_LAMBDA_LAYER_ZIP:"${HOME}/environment/artifact-handson-cli-lambda/handson-cli-lambda-basic-layer-1.zip"
       FILE_LAMBDA_LAYER_ZIP="${FILE_LAMBDA_LAYER_ZIP}"

END

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

処理の実行

Lambdaレイヤーコンテンツの作成します。

Lambdaレイヤーコンテンツ用ディレクトリの作成

Lambdaレイヤーコンテンツ用ディレクトリを作成します。

変数の設定:

DIR_LAMBDA_LAYER_CONTENT_PYTHON="${DIR_LAMBDA_LAYER_CONTENT}/python"

コマンド:

mkdir -p ${DIR_LAMBDA_LAYER_CONTENT_PYTHON}

結果(例):

(出力なし)

Lambdaレイヤーコンテンツの作成

Lambdaレイヤーコンテンツを作成します。

コマンド:

cat << EOF > ${DIR_LAMBDA_LAYER_CONTENT_PYTHON}/hello.py
def hello():
    return 'Hello from layer'
EOF

cat ${DIR_LAMBDA_LAYER_CONTENT_PYTHON}/hello.py

結果(例):

def hello():
    return 'Hello from layer'

ZIPファイルを作成します。

コマンド:

pushd ${DIR_LAMBDA_LAYER_CONTENT} \
  && zip -r -X ${FILE_LAMBDA_LAYER_ZIP} python/ \
  && popd

結果(例):

~/environment/conf-handson-cli-lambda ~/environment
  adding: python/ (stored 0%)
  adding: python/hello.py (deflated 5%)
~/environment

完了確認

「LambdaレイヤーコンテンツZIPファイル"${HOME}/environment/artifact-handson-cli-lambda/handson-cli-lambda-basic-layer-1.zip"が存在する。」ことを確認します。

コマンド:

ls ${FILE_LAMBDA_LAYER_ZIP}

結果(例):

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

手順の完了