![](/img/trans.png)
[英]How to include in the lambda function javascript aws-sdk?
[英]Why can't I see this aws-sdk function from inside my AWS Lambda function?
我的目標是能夠在我的 AWS Lambda 的處理程序函數中使用 AWS CloudWatchLogs.startQuery
函數。 當我通過 nodejs 在本地運行它時,這個方法存在,但是當我在我的處理程序中運行時它是未定義的。 我想我在兩個地方都在做同樣的事情,但我得到了不同的結果。 為了比較,我可以在兩個地方看到filterLogEvents
方法,正如我所料。 這兩種方法都記錄在AWS javascript SDK 中。 為什么我在 lambda 中看不到這個函數?
我的 nodejs 代碼:
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./aws_credentials.json');
AWS.config.update({
region: 'us-east-1',
apiVersion: '2014-03-28'
});
var cloudwatchlogs = new AWS.CloudWatchLogs();
var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
var startquery_type = typeof cloudwatchlogs.startQuery;
console.log(startquery_type); // function
console.log(filterlogevents_type); // function
從我的 lambda 的 index.js 文件中:
var AWS = require('aws-sdk');
AWS.config.update({
region: 'us-east-1',
apiVersion: '2014-03-28'
});
exports.handler = async (event) => {
var cloudwatchlogs = new AWS.CloudWatchLogs();
var filterlogevents_type = typeof cloudwatchlogs.filterLogEvents;
var startquery_type = typeof cloudwatchlogs.startQuery;
const response = {
body: JSON.stringify({
startQuery: startquery_type, // undefined
filterLogEvents: filterlogevents_type // function
}),
};
return response;
};
在接線時,Lambda 在運行時中包含了 AWS SDK 的2.290.0 版本,該版本是2018 年 8 月的。 但是,StartQuery 直到 2018 年 11 月才發布,並出現在 SDK 的2.364.0 版本中。 解決方法是自己打包最新版本的 SDK,而不是依賴包含的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.