Lambda関数"handson-cli-lambda-function_basic-function"のソースコードファイルを作成します。
手順に必要な設定値を変数に格納をします。
1. Python関数名
Python関数名を指定します。
変数の設定: PYTHON_FUNCTION_NAME='lambda_handler'
変数の設定:
PYTHON_FUNCTION_NAME='lambda_handler'
2. Lambda関数コードファイル用ディレクトリ
Lambda関数コードファイル用ディレクトリを指定します。
変数の設定: DIR_LAMBDA_FUNCTION_CODE="${HOME}/environment/conf-handson-cli-lambda"
DIR_LAMBDA_FUNCTION_CODE="${HOME}/environment/conf-handson-cli-lambda"
ディレクトリが存在することを確認します。
コマンド: ls -d ${HOME}/environment/conf-handson-cli-lambda 結果(例:存在する場合): ${HOME}/environment/conf-handson-cli-lambda
コマンド:
ls -d ${HOME}/environment/conf-handson-cli-lambda
結果(例:存在する場合):
${HOME}/environment/conf-handson-cli-lambda
存在しない場合は作成します。
コマンド: mkdir -p ${HOME}/environment/conf-handson-cli-lambda 結果(例): (出力なし)
mkdir -p ${HOME}/environment/conf-handson-cli-lambda
結果(例):
(出力なし)
3. Lambda関数コードファイル名
Lambda関数コードファイル名を指定します。
変数の設定: LAMBDA_FUNCTION_CODE_NAME='handson-cli-lambda-function_basic-function.py' 変数の設定: FILE_CODE_FUNCTION="${DIR_LAMBDA_FUNCTION_CODE}/${LAMBDA_FUNCTION_CODE_NAME}" \ && echo ${FILE_CODE_FUNCTION} 結果(例): ${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py
LAMBDA_FUNCTION_CODE_NAME='handson-cli-lambda-function_basic-function.py'
FILE_CODE_FUNCTION="${DIR_LAMBDA_FUNCTION_CODE}/${LAMBDA_FUNCTION_CODE_NAME}" \ && echo ${FILE_CODE_FUNCTION}
${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py
各変数に正しい設定値が格納されていることを確認しながら保存します。
変数の確認: cat << END # 1. PYTHON_FUNCTION_NAME:"lambda_handler" PYTHON_FUNCTION_NAME="${PYTHON_FUNCTION_NAME}" # 2. DIR_LAMBDA_FUNCTION_CODE:"${HOME}/environment/conf-handson-cli-lambda" DIR_LAMBDA_FUNCTION_CODE="${DIR_LAMBDA_FUNCTION_CODE}" # 3. FILE_CODE_FUNCTION:"${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py" FILE_CODE_FUNCTION="${FILE_CODE_FUNCTION}" END
変数の確認:
cat << END # 1. PYTHON_FUNCTION_NAME:"lambda_handler" PYTHON_FUNCTION_NAME="${PYTHON_FUNCTION_NAME}" # 2. DIR_LAMBDA_FUNCTION_CODE:"${HOME}/environment/conf-handson-cli-lambda" DIR_LAMBDA_FUNCTION_CODE="${DIR_LAMBDA_FUNCTION_CODE}" # 3. FILE_CODE_FUNCTION:"${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py" FILE_CODE_FUNCTION="${FILE_CODE_FUNCTION}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
関数コードファイルの作成します。
変数の確認: cat << ETX # FILE_CODE_FUNCTION:"${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py" FILE_CODE_FUNCTION="${FILE_CODE_FUNCTION}" ETX コマンド: cat << EOF > ${FILE_CODE_FUNCTION} import os import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def lambda_handler(event, context): logger.info('## ENVIRONMENT VARIABLES') logger.info(os.environ) logger.info('## EVENT') logger.info(event) logger.info('## CONTEXT') logger.info(vars(context)) if event.get('key1'): logger.info('## PAYLOAD(key1)') logger.info(event['key1']) logger.info('## ENV') env = os.environ.get('ENV') if env == 'product': logger.info('product environment') else: logger.info('develop environment') logger.info('## REMAINING TIME (ms)') logger.info(context.get_remaining_time_in_millis()) return { "statusCode": 200 } EOF cat ${FILE_CODE_FUNCTION} 結果(例): import os import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def lambda_handler(event, context): logger.info('## ENVIRONMENT VARIABLES') logger.info(os.environ) logger.info('## EVENT') logger.info(event) logger.info('## CONTEXT') logger.info(vars(context)) if event.get('key1'): logger.info('## PAYLOAD(key1)') logger.info(event['key1']) logger.info('## ENV') env = os.environ.get('ENV') if env == 'product': logger.info('product environment') else: logger.info('develop environment') logger.info('## REMAINING TIME (ms)') logger.info(context.get_remaining_time_in_millis()) return { "statusCode": 200 }
cat << ETX # FILE_CODE_FUNCTION:"${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py" FILE_CODE_FUNCTION="${FILE_CODE_FUNCTION}" ETX
cat << EOF > ${FILE_CODE_FUNCTION} import os import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def lambda_handler(event, context): logger.info('## ENVIRONMENT VARIABLES') logger.info(os.environ) logger.info('## EVENT') logger.info(event) logger.info('## CONTEXT') logger.info(vars(context)) if event.get('key1'): logger.info('## PAYLOAD(key1)') logger.info(event['key1']) logger.info('## ENV') env = os.environ.get('ENV') if env == 'product': logger.info('product environment') else: logger.info('develop environment') logger.info('## REMAINING TIME (ms)') logger.info(context.get_remaining_time_in_millis()) return { "statusCode": 200 } EOF cat ${FILE_CODE_FUNCTION}
import os import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def lambda_handler(event, context): logger.info('## ENVIRONMENT VARIABLES') logger.info(os.environ) logger.info('## EVENT') logger.info(event) logger.info('## CONTEXT') logger.info(vars(context)) if event.get('key1'): logger.info('## PAYLOAD(key1)') logger.info(event['key1']) logger.info('## ENV') env = os.environ.get('ENV') if env == 'product': logger.info('product environment') else: logger.info('develop environment') logger.info('## REMAINING TIME (ms)') logger.info(context.get_remaining_time_in_millis()) return { "statusCode": 200 }
「Lambda関数コードファイル"${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py"が存在する。」ことを確認します。
コマンド: ls ${FILE_CODE_FUNCTION} 結果(例): ${HOME}/environment/conf-handson-cli-lambda/handson-cli-lambda-function_basic-function.py
ls ${FILE_CODE_FUNCTION}