LambdaでGoogleスプレッドシートを扱う
概要
awsのLambdaからGoogleスプレッドシートを使いたい。
ローカル環境では、スプレッドシートを使う際にはアクセス用のjsonファイルを呼び出していたが、Lambdaにjsonファイルをそのままアップロードするのにはセキュリティ的に懸念がある。ググってみるとみんなその方式っぽい...のでメモ。
Secrets Managerでログイン情報を管理
ログイン情報等を管理するツールが用意されているのでそちらで管理する。
Lambdaからの呼び出し方
def get_gc(): client = boto3.client(service_name='secretsmanager') get_secret_value_response = client.get_secret_value(SecretId="<登録した際のSecretID>") secret_string = get_secret_value_response['SecretString'] credential_dic = json.loads(secret_string) credentials = Credentials.from_service_account_info(credential_dic) credentials._scopes = 'https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive' gc = gspread.authorize(credentials) return gc def lambda_handler(event, context): gc = get_gc()