AWS Lambda(Python3.9.10)からS3のファイルを取得する

AWS Lambda(Python3.9.10)からS3のファイルを取得する

AWS Lambda(Python3.9.10)からS3に配置しているファイルの中身を取得してみます。接続するにはboto3モジュールを使用します。

sample.txt

sample.txtの中身です。

高橋K太郎

lambda_function.py

ソースです。

import json
import boto3

S3 = boto3.resource(
    's3',
    region_name='ap-northeast-1'
)
def lambda_handler(event, context):
    bucket = S3.Bucket('hogehogehogehog') # バケット名指定してください
    obj = bucket.Object('sample.txt')
    response = obj.get()
    print({response["Body"].read().decode("utf-8-sig")})
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

テスト

マネジメントコンソールからテストします。

sample.json

sample.jsonの中身です。

{
  "name": "高橋K太郎",
  "age": 20
}

lambda_function.py

ソースです。日本語を含むので、Shift_JISでデコードしています。

import json
import boto3

s3 = boto3.client('s3')

def lambda_handler(event, context):
    response = s3.get_object(Bucket='hoge1947', Key='sample.json')
    json_data = response['Body'].read().decode('Shift_JIS')
    parsed_data = json.loads(json_data)
    print(parsed_data)
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

テスト

マネジメントコンソールからテストします。

タイトルとURLをコピーしました