内容
小ネタです。
Lambdaを書いていて個別の設定値を書き込みたいことも多々あると思います。
その際、ソースコード内に直書き指定しまうと直すのが大変だったり、他のファンクションでもその値は使い回したりすることもあるかと思います。
だったら、設定用のiniファイルを用意してそれを読みこめば良いのでは?
ということでiniファイルの使い方です。
対象言語はPythonです。
使用するモジュール
ConfigParser
iniファイル
iniファイルを使用するので、ローカルでzip圧縮したものをアップロードします。
iniフィアイルはPythonスクリプトファイル「lambda_function.py」を配置したディレクトリに配置します。
今回は「config.ini」という名前で保存します。
[dynamodb]
table_name : hogehoge_table
[sns]
topic_arn : arn:aws:sns:ap-northeast-1:xxxxxxxxxxxx:xxxxxx
みたいに記述していきます。
使用方法
iniファイルを用意したら、スクリプトの中で以下のように使用していきます。
# -*- coding: utf-8 -*-
from __future__ import print_function
import ConfigParser
import boto3
# configファイルの読み込み
ini = ConfigParser.SafeConfigParser()
ini.read("./config.ini")
# DynamoDB
dynamodb = boto3.resource('dynamodb')
dynamoTable = ini.get("dynamodb", "table_name")
dynamo = dynamodb.Table(dynamoTable)
# sns
snsTopic = ini.get("sns", "topic_arn")
def lambda_handler(event, context):
<< 実際の処理部分 >>
ini.get("sns", "topic_arn")の様に、[xxx]で書かれている固まりを第一引数に指定します。
次に、その固まりの中の取りたい要素を第二引数に指定します。
AWSのキー情報をスクリプトに書き込んでパブリックに公開してしまう・・・
そんな話をよく聞きますが、そういった情報はiniファイルに分けてしまうのも良いのではないでしょうか。