标签: aws-lambda

如何通过Amazon API Gateway + Lambda(节点)检索用户的公共IP地址

我正在编写一个Node.js lambda函数,我想在其中记录传入请求者的公共IP地址.我一整天都在查看API网关和Lambda文档,但还没有找到解决方案.

lambda event对象是否包含我可以用来提取用户IP的请求元数据?

amazon-web-services node.js aws-lambda aws-api-gateway

41
推荐指数
3
解决办法
2万
查看次数

AWS lambda调用不调用另一个lambda函数 - Node.js

在赋予调用函数的所有权限之后.我的Lambda函数无法调用另一个函数.每次我有超时30 seconds timeout问题.看起来lambda无法获得另一个lambda函数

我的lambda属于同一地区,同一政策,同一安全组.两个lambda中的VPC也相同.现在唯一不同的是lambda函数

这是角色权利

1)创建 AWSLambdaExecuteAWSLambdaBasicExecutionRole

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)

amazon-web-services amazon-iam aws-sdk aws-lambda

41
推荐指数
2
解决办法
1万
查看次数

AWS Lambda函数写入S3

我在AWS中有一个Node 4.3 Lambda函数.我希望能够将文本文件写入S3,并阅读了许多关于如何与S3集成的教程.但是,所有这些都是关于如何在写入S3后调用Lambda函数,如下所示:

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

如何使用节点从Lambda在S3中创建文本文件?这可能吗?亚马逊的文档似乎没有涵盖它.

node.js aws-lambda

40
推荐指数
2
解决办法
4万
查看次数

AWS lambda中的Pandas出现numpy错误

我一直在尝试在导入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)
  1. 我已将此python文件与numpy,pandas和pytz库一起压缩为部署包(在Amazon EC2 linux机器中完成所有这些)
  2. 然后将包上传到S3
  3. 创建了一个lambda函数(runtime = python3.6)并从S3上传了部署包

但是当我在AWS Lambda中测试lambda函数时,我得到以下错误:

Unable to import module 'lambda_function': Missing required dependencies ['numpy']
Run Code Online (Sandbox Code Playgroud)

我已经在压缩包中有numpy,但我仍然得到这个错误.我试着按照Pandas和AWS Lambda给出的提示但没有运气.

有没有人遇到过同样的问题.非常感谢任何暗示或建议来解决这个问题.

谢谢

python numpy amazon-s3 pandas aws-lambda

40
推荐指数
5
解决办法
1万
查看次数

在amazon api网关中使用api密钥

我创建了一个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

39
推荐指数
8
解决办法
3万
查看次数

为AWS lambda指定日志组?

有没有办法指定AWS lambda记录到的CloudWatch日志组?它似乎是直接从lambda名称生成的; 但是,例如,将多个lambda聚合到单个日志组会特别方便.我们特别感兴趣的是在CloudFormation模板创建lambda时指定日志组.

amazon-web-services aws-cloudformation amazon-cloudwatch aws-lambda

39
推荐指数
6
解决办法
2万
查看次数

Cognito用户池:如何使用刷新令牌刷新访问令牌

我正在使用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函数考虑这一点,该函数接收访问令牌并刷新令牌并使用刷新的访问令牌进行响应.如果有人能对此有所启发,那将会很棒.

谢谢

amazon-web-services amazon-cognito aws-lambda

38
推荐指数
6
解决办法
3万
查看次数

使用带有AWS Lambda的python日志记录

正如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控制台中打印,但第二段没有.

我没有看到任何差异,因为两个片段正在使用根记录器.

python logging amazon-web-services aws-lambda

38
推荐指数
6
解决办法
2万
查看次数

在AWS Lambda函数中通过AWS SES发送电子邮件

我在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)

amazon-web-services node.js aws-sdk aws-lambda

37
推荐指数
1
解决办法
2万
查看次数

AWS lambda函数在超时错误后停止工作

我有一个简单的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函数的任何后续调用都应该有效.我知道我总是可以增加配置超时,但不愿意.

amazon-web-services node.js aws-lambda

37
推荐指数
3
解决办法
3万
查看次数