AWS APIGWで画像レスポンスを返す

(1) Lambda

def Main(event, context):
logging.info(json.dumps(event))
s = requests.session()
response1 = s.get(SFDC_ENDPOINT_1, headers=SFDC_HEADERS)
response2 = s.get(SFDC_ENDPOINT_2, headers=SFDC_HEADERS)
bodybase64 = base64.b64encode(response2.content)
bodystr = bodybase64.decode()
response = {
'statusCode': 200,
'headers':{
'Content-Type': 'video/mp4',
},
'body': bodystr,
'isBase64Encoded': True
}
return response

 

ちなみに通常時のreturnは、こんな感じです。

return {'statusCode': 200, 'body': 'TX-OK!'}

 

(2) APIGW

プロキシを選択する→設定→バイナリメディアタイプ

ここに「*/*」を入力して[変更]する。以下が参考。

 

blog.serverworks.co.jp

 

プロキシの子リソースとして /{filename+}を追加する。CORSを有効にする。

ANYは削除して、GETでメソッドを作成する。あとは、いつも通りデプロイする。

以下サイトの「プロキシリソースとGETメソッドの作成」項目を参考。

qiita.com