私はラムダ関数を呼び出すcronを10分ごとに実行するためにserverless-warmup-plugin
を使用しています。ラムダ関数を解消してもレイテンシは減少しません
exports.lambda = (event, context, callback) => {
if (event.source === 'serverless-plugin-warmup') {
console.log('Thawing lambda...')
callback(null, 'Lambda is warm!')
} else {
// ... logic for the lambda function
}
}
これは紙の上で動作しますが、実際にcronのは、それが正常に10分ごとにそれを呼び出していてもラムダ関数を暖かく保つしません:ラムダ関数のコードは次のようになります。
ラムダが(cron以外の)別のイベントソースから呼び出されたとき、コードの実行には約2〜3秒かかります。このように実行されると、ラムダは実際にウォームアップし、400ms以下で応答を開始します。それはしばらく暖かいままです。
私はここで何が欠けていますか? official documentation状態として
10分? 10分後にラムダコンテナがクールダウンするのに十分な活動はないと思います。たとえば5分または3分に減らそうとしましたか? –
クラウドウォークイベントにもチェックしましたか? (実行するcronのように)。トムとして、10分でラムダが冷えるのに十分かもしれないと言いました。 これを今読んでいたのです https://medium.com/build-acl/aws-lambda-deployment-with-terraform-24d36cc86533 – vira
私は問題がcronの頻度に関係しているとは思わないcronが起動してから10秒後に関数を呼び出すと、まだコールドスタート(3秒の応答時間)が経過し、次の呼び出しは400ms以下で応答します。これは、cronからの呼び出しがすべてに影響を与えないかのようです。 – cinnaroll45