boto3のコードの見方について理解したい
指定されたS3バケットにファイルがPUTされたのをトリガーに実行するLambda関数を作成しています。その書き方でよくわからないところがあります。
こちらのコードで不明点があります。
import json import urllib.parse import boto3 print('Loading function') s3 = boto3.client('s3') def lambda_handler(event, context): print("Received event: " + json.dumps(event, indent=2)) # Get the object from the event and show its content type bucket = event['Records'][0]['s3']['bucket']['name'] key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8') try: response = s3.get_object(Bucket=bucket, Key=key) print("CONTENT TYPE: " + response['ContentType']) return response['ContentType'] except Exception as e: print(e) print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket)) raise e
-
s3 = boto3.client('s3')
とありますが、これはコード内にあるs3
がboto3を使用するリソースだ、ということでしょうか? -
bucket = event['Records'][0]['s3']['bucket']['name']
にある['Records'][0]['s3']['bucket']['name']
はどういう意味でこの書き方になっているのでしょうか? -
s3 = boto3.client('s3')
とs3 = boto3.resource('s3')
の違いはなんでしょうか?(両者ともboto3を使用するリソースはs3ですよと宣言しているのかと思っておりました)
書き方の例やドキュメントも見ましたがよくわからない点を質問させていただきました。
ご存知の方、ご教授願います。
0 コメント