設定値の指定
設定値の指定
手順に必要な設定値を変数に格納をします。
0. リージョンの指定
リージョンを指定します。
環境変数の設定
export AWS_DEFAULT_REGION='ap-northeast-1'
1. Lambda関数名
Lambda関数名を指定します。
変数の設定:
LAMBDA_FUNCTION_NAME='handson-cli-lambda-basic-layer-function'
2. Lambda関数アウトプット用ディレクトリ
Lambda関数アウトプット用ディレクトリを指定します。
変数の設定:
DIR_LAMBDA_FUNCTION_OUTPUT="${HOME}/environment/tmp-handson-cli-lambda"
ディレクトリが存在することを確認します。
コマンド:
ls -d ${DIR_LAMBDA_FUNCTION_OUTPUT}
結果(例:存在する場合):
${HOME}/environment/tmp-handson-cli-lambda
存在しない場合は作成します。
コマンド:
mkdir -p ${DIR_LAMBDA_FUNCTION_OUTPUT}
結果(例):
3. Lambda関数アウトプットファイル名
Lambda関数アウトプットファイル名を指定します。
変数の設定:
FILE_LAMBDA_FUNCTION_OUTPUT="${DIR_LAMBDA_FUNCTION_OUTPUT}/${LAMBDA_FUNCTION_NAME}-output.txt" \
&& echo ${FILE_LAMBDA_FUNCTION_OUTPUT}
結果(例):
${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-output.txt
4. Lambda関数ログ用ディレクトリ名
Lambda関数ログ用ディレクトリ名を指定します。
変数の設定:
DIR_LAMBDA_FUNCTION_LOG="${HOME}/environment/tmp-handson-cli-lambda"
ディレクトリが存在することを確認します。
コマンド:
ls -d ${DIR_LAMBDA_FUNCTION_LOG}
結果(例:存在する場合):
${HOME}/environment/tmp-handson-cli-lambda
存在しない場合は作成します。
コマンド:
mkdir -p ${DIR_LAMBDA_FUNCTION_LOG}
結果(例):
5. Lambda関数ログファイル名
Lambda関数ログファイル名を指定します。
変数の設定:
FILE_LAMBDA_FUNCTION_LOG="${DIR_LAMBDA_FUNCTION_LOG}/${LAMBDA_FUNCTION_NAME}-log.json" \
&& echo ${FILE_LAMBDA_FUNCTION_LOG}
結果(例):
${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-log.json
6. Lambda関数タイムスタンプ保存用ディレクトリ名
Lambda関数タイムスタンプ保存用ディレクトリ名を指定します。
変数の設定:
DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME="${HOME}/environment/tmp-handson-cli-lambda"
ディレクトリが存在することを確認します。
コマンド:
ls -d ${DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME}
結果(例:存在する場合):
${HOME}/environment/tmp-handson-cli-lambda
存在しない場合は作成します。
コマンド:
mkdir -p ${DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME}
結果(例):
7. Lambda関数開始タイムスタンプ保存ファイル名
Lambda関数開始タイムスタンプ保存ファイル名を指定します。
変数の設定:
FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START="${DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME}/handson-cli-lambda-basic-layer-function-1.txt" \
&& echo ${FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START}
結果(例):
${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-1.txt
設定値の確認
各変数に正しい設定値が格納されていることを確認しながら保存します。
変数の確認:
cat << END
# 0. AWS_DEFAULT_REGION:"ap-northeast-1"
AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"
# 1. LAMBDA_FUNCTION_NAME:"handson-cli-lambda-basic-layer-function"
LAMBDA_FUNCTION_NAME="${LAMBDA_FUNCTION_NAME}"
# 2. DIR_LAMBDA_FUNCTION_OUTPUT:"${HOME}/environment/tmp-handson-cli-lambda"
DIR_LAMBDA_FUNCTION_OUTPUT="${DIR_LAMBDA_FUNCTION_OUTPUT}"
# 3. FILE_LAMBDA_FUNCTION_OUTPUT:"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-output.txt"
FILE_LAMBDA_FUNCTION_OUTPUT="${FILE_LAMBDA_FUNCTION_OUTPUT}"
# 4. DIR_LAMBDA_FUNCTION_LOG:"${HOME}/environment/tmp-handson-cli-lambda"
DIR_LAMBDA_FUNCTION_LOG="${DIR_LAMBDA_FUNCTION_LOG}"
# 5. FILE_LAMBDA_FUNCTION_LOG:"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-log.json"
FILE_LAMBDA_FUNCTION_LOG="${FILE_LAMBDA_FUNCTION_LOG}"
# 6. DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME:"${HOME}/environment/tmp-handson-cli-lambda"
DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME="${DIR_LAMBDA_FUNCTION_INVOKE_UNIXTIME}"
# 7. FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START:"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-1.txt"
FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START="${FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START}"
END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
処理の実行
Lambda関数の開始タイムスタンプを保存します。
変数の設定:
date +%s \
> ${FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START}
Lambda関数を実行します。
変数の確認:
cat << END
# LAMBDA_FUNCTION_NAME:"handson-cli-lambda-basic-layer-function"
LAMBDA_FUNCTION_NAME="${LAMBDA_FUNCTION_NAME}"
# FILE_LAMBDA_FUNCTION_OUTPUT:"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-output.txt"
FILE_LAMBDA_FUNCTION_OUTPUT="${FILE_LAMBDA_FUNCTION_OUTPUT}"
# FILE_LAMBDA_FUNCTION_LOG:"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-log.json"
FILE_LAMBDA_FUNCTION_LOG="${FILE_LAMBDA_FUNCTION_LOG}"
END
コマンド:
aws lambda invoke \
--function-name ${LAMBDA_FUNCTION_NAME} \
${FILE_LAMBDA_FUNCTION_OUTPUT} \
> ${FILE_LAMBDA_FUNCTION_LOG}
結果(例):
完了確認
「Lambda関数"handson-cli-lambda-basic-layer-function"の実行が正常に完了している。」ことを確認します。
コマンド:
cat ${FILE_LAMBDA_FUNCTION_LOG} \
| jp.py 'StatusCode'
結果(例):
「Lambda関数開始タイムスタンプ保存用ファイル"${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-1.txt"が存在する。」ことを確認します。
コマンド:
ls ${FILE_LAMBDA_FUNCTION_INVOKE_UNIXTIME_START}
結果(例):
${HOME}/environment/tmp-handson-cli-lambda/handson-cli-lambda-basic-layer-function-1.txt
Lambda関数アウトプットファイルを削除します。
コマンド:
rm ${FILE_LAMBDA_FUNCTION_OUTPUT}
結果(例):
Lambda関数ログファイルを削除します。
コマンド:
rm ${FILE_LAMBDA_FUNCTION_LOG}
結果(例):