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の値にして 返す |