Lambda Function とAPI Gateway を使ったことがない場合
endpointにパラメータを付けるやり方は
AWS LambdaでAPI Gatewayのクエリパラメータを取得したい(GASでfetch)
に書きました。
ここではpayloadでクエリパラメータと同じようにデータを渡してみます。
var payload = {
'data':{
'key': 'value'
}
}
Google Apps Script側のコード
コード.gs
function run() { var url = 'https://API_ID.execute-api.us-east-1.amazonaws.com/default/FUNCTION_NAME'; var payload = { 'data':{ 'key': 'value' } } var json = JSON.stringify(payload); var options = { 'method': 'post', 'contentType': 'application/json', 'payload': json } var response = UrlFetchApp.fetch(url, options); Logger.log(response); } |
意訳この機能がやること API Gatewayのendpoint payloadという入れ物を作って dataの中で 'key': 'value'を入れて payloadをJSONに変換して optionsという入れ物を作って以下のプロパティを入れて 'method': 'post', 'contentType': 'application/json', 'payload': json urlに渡してデータを取得して ログに出す |
Lambda 側のコード
index.jsexports.handler = async (event) => { var body = event['body']; var jobj = JSON.parse(body); var data = jobj['data']; var response = { body: JSON.stringify(data), }; return response; }; |
意訳この機能がやること eventからbodyを取得して オブジェクトに変換して dataを取得して 返すオブジェクトを作って JSONに変換してbodyの値にして 返す |