Tag: amazon web services

Lambda函数失败,没有生成日志

我正在玩这个PDF到图像转换器 ,我克隆了回购,运行npm install ,改变了这一部分: var s3EventHandler = new S3EventHandler({ region: 'my-region', outputBucketName: 'my-bucket-name' s3: s3, resolution: 72 }); 将它重命名为exports.js,压缩了js,node_modules文件夹,package.json和event.json(我也尝试将这两个jsons移除)并将其上传到我的Lambda函数中。 s3触发器已经创build,到目前为止工作正常。 我有多个testing失败,因为它找不到asynchronous模块和tmp模块,我已经移动到顶层,它似乎修复它(但它并没有抱怨它的其他模块要求和不在最高一级)。 在testing中,它抱怨s3没有被定义,因为它没有很多的细节,我正在失去。 我认为这可能是我正在运行testing,所以s3触发器本身缺失。 当我上传PDF到存储桶中时,Lambda报告它运行但失败。 进入CloudWatch Logs说没有日志stream。 我已经检查了IAMangular色,并且拥有CreateLogStream和PutLogEvents权限(这是模板化的IAM策略)。 我怎样才能使我的日志工作find问题? 或者,我可以做些什么来解决s3未定义的问题,这是我唯一的线索atm? 这可能与顶层模块需求有关,但是由于只有一些模块需要处于最高层,所以看起来并不一致。

外部调用的Lambda函数超时

我有一个Lambda函数,我需要进行外部API调用。 我已经将Lambda函数添加到安全组,VPC和2个子网,并给出了以下文本: 当您启用VPC时,您的Lambdafunction将会失去默认的互联网访问权限。 如果您的function需要外部Internet访问,请确保您的安全组允许出站连接,并确保您的VPC具有NAT网关。 我进入VPC,创build一个NAT网关(我让AWS创build一个EIP),将其附加到我的lambda函数的一个子网上。 出于debugging目的,我的安全组出站function被设置为所有通信/所有目的地( 0.0.0.0/0 )。 另外我的这个VPC的networkingACL被设置为这个(有5个子网,包括那个有NAT网关的): 100 | ALL Traffic | ALL | ALL | 0.0.0.0/0 | ALLOW VPC上有相同的2个子网的路由表, 0.0.0.0/0路由设置为NAT网关的目标。 VPC上也有另外3个子网的路由表,其中0.0.0.0/0路由设置为定位到Internet网关。 两个路由表都有相同的local目标IP(VPC的IP)。 我得到的错误是: { Error: connect ETIMEDOUT xxxx:443 at Object.exports._errnoException (util.js:1018:11) at exports._exceptionWithHostPort (util.js:1041:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14) code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: 'xxxx', port: 443 } 我正在运行的节点代码在我的桌面节点环境中工作,并且POST调用在postman中工作,所以我相当肯定这是我的AWSconfiguration的问题。 我一直在使用这种情况作为资源: […]

没有存储在S3存储桶中的图像

我使用s3 multer模块将用户上传的图像文件直接上传到我的存储桶中。 该应用程序显示,更新成功,但我看不到我的文件桶。 上传文件后的页面以上传成功响应。 下面是我使用的app.js文件和index.html,这是从github回购分支人说它的工作,但我的工作,请告诉我错误? 我在我的本地主机上运行这个。 码: aws = require('aws-sdk'), var express = require('express'), bodyParser = require('body-parser'), multer = require('multer'), s3 = require('multer-s3'); aws.config.update({ secretAccessKey:'XXXXX', accessKeyId:'YYYYY', region: 'us-west-2'}); var app = express(); app.use(bodyParser.json()); var upload = multer({ storage: s3({ dirname: '/profilepics', bucket: 'XXXX', secretAccessKey:'YYYY', accessKeyId:'TYYYYYY', region: 'us-west-2', filename: function (req, file, cb) { cb(null, "1234"); […]

在Lambda上查询到MySQL时,任务超时

我一直在用nodejs使用amazon Lex和Lambda。 我的问题是,当我尝试MySQL查询,lambda获得时间,并没有任何结果返回给Lex, 需要帮助。 这是我的代码 'use strict'; const lexResponse = require("../helper/responseBuilder"); const db = require('../config/db') function dialog (intentRequest, callback) { const source = intentRequest.invocationSource; const userId = intentRequest.userId; const sessionAttributes = intentRequest.sessionAttributes || {}; if (source === 'DialogCodeHook') { if (!companyRules) { getList(1, (results) => { console.log(results); callback(lexResponse.elicitSlot( sessionAttributes, intentRequest.currentIntent.name, intentRequest.currentIntent.slots, "Info", { contentType: 'PlainText', […]

如何在输出lambda函数url中replace'latest'? 我怎么能做我自己的资源?

我是AWS Lambda新手。 如文档中所述,我使用Claudia在AWS Lambda上部署了以下示例: 'use strict'; console.log('Loading hello world function'); exports.handler = function (event, context, callback) { var name = "World"; var responseCode = 200; console.log("request: " + JSON.stringify(event)); if (event.queryStringParameters !== null && event.queryStringParameters !== undefined) { if (event.queryStringParameters.name !== undefined && event.queryStringParameters.name !== null && event.queryStringParameters.name !== "") { console.log("Received name: " + […]

如何从节点正确调用aws api网关

我在下面的节点代码中调用aws api网关: module.exports = function(app) { var apigClientFactory = require('aws-api-gateway-client').default; var querystring = require('querystring'); var params = { //This is where any header, path, or querystring request params go. The key is the parameter named as defined in the API userId: '1234' }; var additionalParams = {}; app.get('*', function(req, res) { res.sendfile('./public/index.html'); }); app.post("/customerinfo", function(req, […]

如何捕获亚马逊Alexa的小数?

我正在寻找一种方法来允许Alexa获取十进制值。 我想给她讲一个温度(54.3)。 我的约束是,有时我想能够input一个整数值(54),而不会有尾随值(.0)。 任何帮助,将不胜感激。

API网关+ lambda上的http / 2

有没有可能运行http / 2与aws-serverless-express推? 据我所知,aws API网关支持http / 2(通过https://tools.keycdn.com/http2-test进行validation)。 Unfornately我找不到在lambda上部署的node.js应用程序下的任何http / 2压入示例。 我发现的唯一例子是支持http / 2的node.js应用程序: https : //github.com/azat-co/http2-node-server-push 有小费吗? 解决scheme? 这甚至有可能吗?

AWS Lambda函数连接到Postgresql数据库

有谁知道如何通过AWS Lambda函数连接到PostgreSQL数据库。 我在网上search它,但我找不到任何关于它的东西。 如果你能告诉我如何去做,这将是伟大的。 如果你能发现我的代码(node.js)有什么问题,那将是非常好的,否则你能告诉我如何去做? exports.handler = (event, context, callback) => { "use strict" const pg = require('pg'); const connectionStr = "postgres://username:password@host:port/db_name"; var client = new pg.Client(connectionStr); client.connect(function(err){ if(err) { callback(err) } callback(null, 'Connection established'); }); context.callbackWaitsForEmptyEventLoop = false; }; 该代码将引发错误:无法find模块'pg' 我直接在AWS Lambda上写了它,如果这样做有什么不同,就不会上传任何东西。

如何获取aws-dynamoDB中的所有字段?

我正在使用Node.js var AWS = require('aws-sdk'); AWS.config.update({ region: "region", endpoint: "https://dynamodb.region.amazonaws.com" }); var dynamodb = new AWS.DynamoDB(); var params = { TableName: "acc_new" }; dynamodb.describeTable(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(JSON.stringify(data)); }); 输出: { AttributeDefinitions: [ { AttributeName: 'Id', AttributeType: 'S' } ], TableName: 'acc_new', KeySchema: [ { AttributeName: […]