我正在编写一个Node.js lambda函数,我想在其中记录传入请求者的公共IP地址.我一整天都在查看API网关和Lambda文档,但还没有找到解决方案.
lambda event对象是否包含我可以用来提取用户IP的请求元数据?
在赋予调用函数的所有权限之后.我的Lambda函数无法调用另一个函数.每次我有超时30 seconds timeout问题.看起来lambda无法获得另一个lambda函数
我的lambda属于同一地区,同一政策,同一安全组.两个lambda中的VPC也相同.现在唯一不同的是lambda函数
这是角色权利
1)创建 AWSLambdaExecute和AWSLambdaBasicExecutionRole
2)创建一个lambda函数,称为 Lambda_TEST
exports.handler = function(event, context) {
console.log('Lambda TEST Received event:', JSON.stringify(event, null, 2));
context.succeed(event);
};
Run Code Online (Sandbox Code Playgroud)
3)这是调用它的另一个函数.
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
var lambda = new AWS.Lambda();
exports.handler = function(event, context) {
var params = {
FunctionName: 'Lambda_TEST', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: '{ "name" : "Arpit" }'
};
lambda.invoke(params, function(err, data) {
if (err) {
context.fail(err);
} …Run Code Online (Sandbox Code Playgroud) 我在AWS中有一个Node 4.3 Lambda函数.我希望能够将文本文件写入S3,并阅读了许多关于如何与S3集成的教程.但是,所有这些都是关于如何在写入S3后调用Lambda函数,如下所示:
http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html
如何使用节点从Lambda在S3中创建文本文件?这可能吗?亚马逊的文档似乎没有涵盖它.
我一直在尝试在导入pandas的AWS Lambda中运行我的代码.所以这就是我所做的.我有一个python文件,其中包含一个简单的代码如下(此文件具有lambda处理程序)
import json
print('Loading function')
import pandas as pd
def lambda_handler(event, context):
return "Welcome to Pandas usage in AWS Lambda"
Run Code Online (Sandbox Code Playgroud)
但是当我在AWS Lambda中测试lambda函数时,我得到以下错误:
Unable to import module 'lambda_function': Missing required dependencies ['numpy']
Run Code Online (Sandbox Code Playgroud)
我已经在压缩包中有numpy,但我仍然得到这个错误.我试着按照Pandas和AWS Lambda给出的提示但没有运气.
有没有人遇到过同样的问题.非常感谢任何暗示或建议来解决这个问题.
谢谢
我创建了一个api密钥并将其添加到我的函数中.我已经部署了api并测试了它但仍然得到:
"message": "Forbidden"
Run Code Online (Sandbox Code Playgroud)
如何将密钥传递给我的JSON请求,因为我一直在使用"x-api-key":"theKey"?
amazon-web-services amazon-cognito aws-lambda aws-api-gateway
有没有办法指定AWS lambda记录到的CloudWatch日志组?它似乎是直接从lambda名称生成的; 但是,例如,将多个lambda聚合到单个日志组会特别方便.我们特别感兴趣的是在CloudFormation模板创建lambda时指定日志组.
amazon-web-services aws-cloudformation amazon-cloudwatch aws-lambda
我正在使用Cognito用户池来验证系统中的用户.成功的身份验证提供ID令牌(JWT),访问令牌(JWT)和刷新令牌.这里的文档http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html明确提到刷新令牌可以是用于刷新访问令牌,但没有提到如何.我的问题是,一旦我的访问令牌过期,我如何使用存储的刷新令牌再次刷新我的访问令牌?
我搜索了javascript sdk,找不到任何方法来做同样的事情.我绝对错过了什么.
此外,我通过Lambda函数考虑这一点,该函数接收访问令牌并刷新令牌并使用刷新的访问令牌进行响应.如果有人能对此有所启发,那将会很棒.
谢谢
正如AWS文档所示:
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_logging_handler(event, context):
logger.info('got event{}'.format(event))
logger.error('something went wrong')
Run Code Online (Sandbox Code Playgroud)
现在我做了:
import logging
logging.basicConfig(level = logging.INFO)
logging.info("Hello World!")
Run Code Online (Sandbox Code Playgroud)
第一段代码在Cloud Watch控制台中打印,但第二段没有.
我没有看到任何差异,因为两个片段正在使用根记录器.
我在AWS Lambda上创建了一个非常基本的简单函数,用于接受表单提交.
部分功能是向特定的人发送电子邮件,非常简单.我正在尝试使用AWS SES来执行此操作.我已经设置了SES服务等,并验证了我希望发送到的帐户,并且能够发送测试电子邮件.一切都有效!!
现在,当我尝试在AWS Lambda中执行相同操作并使用aws sdk时,它不会发送电子邮件.我没有得到任何错误或错误.
以下是我用于AWS Lambda函数的代码.
有没有人有经验使用lambda和通过ses发送电子邮件,通过lambda函数?或者甚至只使用node.js aws sdk很可能会有所帮助.
var aws = require('aws-sdk');
var ses = new aws.SES({
accessKeyId: 'myAccessKey',
secretAccesskey: 'mySecretKey',
region: 'eu-west-1'
});
exports.handler = function(event, context) {
console.log("Incoming: ", event);
var output = querystring.parse(event);
var eParams = {
Destination: {
ToAddresses: ["toAddress@email.com"]
},
Message: {
Body: {
Text: {
Data: output.Key1
}
},
Subject: {
Data: "Ses Test Email"
}
},
Source: "mysource@source.com"
};
console.log('===SENDING EMAIL===');
var email = ses.sendEmail(eParams, function(err, data){
if(err) console.log(err); …Run Code Online (Sandbox Code Playgroud) 我有一个简单的lambda函数,它异步地进行API调用,然后返回数据.99%的时间这个效果很好.当API需要更长时间然后lambda配置超时时,它会按预期给出错误.现在的问题是,当我对lambda函数进行任何后续调用时,它会永久地给出超时错误.
"errorMessage": "2016-05-14T22:52:07.247Z {session} Task timed out after 3.00 seconds"
Run Code Online (Sandbox Code Playgroud)
为了测试这种情况,我将lambda超时设置为3秒,并有办法在lambda中触发这两个函数.
使用Javascript
function now() {
return response.tell('success');
}
function wait() {
setTimeout(function() { return response.tell('success'); }, 4000);
}
Run Code Online (Sandbox Code Playgroud)
当我调用该now函数时没有问题.当我调用该wait函数时,我得到超时错误,然后任何后续调用now给我相同的错误.
这是预期的行为吗?我认为对lambda函数的任何后续调用都应该有效.我知道我总是可以增加配置超时,但不愿意.
aws-lambda ×10
node.js ×4
aws-sdk ×2
python ×2
amazon-iam ×1
amazon-s3 ×1
logging ×1
numpy ×1
pandas ×1