質問: { url: 'https://hooks.slack.com/services/****/*****', headers: { 'Content-Type': 'application/json', }, body: { text: 'Hello!' }, json: true, }; //送信 request.post(options) } ```
回答: 推測ですが、 ###### `async` ありの場合 * handler は `return` していないのでresolve済みのPromiseを返却する。 * AWS Lambda は Promiseがresolveするのを待機し、resolveしたら(イベントループが空になっていなくても)終了する。 return文を以下のコードに置き換えたら動きませんか? ``` return new Promise(resolve => request.post(options).on('response', () => resolve())); ``` ###### `async` なしの場合 * undefined を返却する。 * 暗黙に callback が呼ばれる。 * イベントループが空になるまで待機する。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nodejs-prog-model-handler.html > > コードで callback を使用しない場合は、AWS Lambda はそれを暗黙的に呼び出し、戻り値は null です。 > > > コールバックが (明示的または暗黙的に) 呼び出されると、AWS Lambda は のイベントループが空になるまで、Lambda 関数の呼び出しを続けます。 > > >