相关疑难解决方法(0)

Nodejs - 从另一个lambda函数中调用AWS.Lambda函数

我有以下函数用于从我的代码中调用Lambda函数.

但是,当我尝试在Lambda函数中使用它时,我收到以下错误:

AWS lambda undefined 0.27s 3 retries] invoke({ FunctionName: 'my-function-name',
  InvocationType: 'RequestResponse',
  LogType: 'Tail',
  Payload: <Buffer > })
Run Code Online (Sandbox Code Playgroud)

如何在Lambda函数中调用Lambda函数?

我的功能:

'use strict';

var AWS = require("aws-sdk");

var lambda = new AWS.Lambda({
    apiVersion: '2015-03-31',
    endpoint: 'https://lambda.' + process.env.DYNAMODB_REGION + '.amazonaws.com',
    logger: console
});

var lambdaHandler = {};

// @var payload - type:string
// @var functionName - type:string
lambdaHandler.invokeFunction = function (payload, functionName, callback) {

    var params = {
        FunctionName: functionName, /* required */
        InvocationType: "RequestResponse",
        LogType: "Tail",
        Payload: new Buffer(payload, …
Run Code Online (Sandbox Code Playgroud)

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

52
推荐指数
4
解决办法
5万
查看次数

从 Django Lambda 函数连接到 Aurora Serverless 时出现“任务在 30 秒后超时”

我想连接到 django Lambda 函数内的 Aurora Serverless mysql 数据库。目前,我有:

  • 默认 VPC 内的 Lambda 函数
    • 使用默认安全组
    • 使用我创建的两个公共子网
    • 允许来自 TCP 端口 1024 - 65535 的入站请求
    • 允许 Aurora 安全组上的 Aurora/Mysql 出站请求
  • 默认 VPC 内的 Aurora 集群
    • 使用与 Lambda 相同的(默认)VPC
    • 使用我创建的两个私有子网
    • 允许来自 Lambda 安全组的端口 3306 上的入站请求
  • 默认 VPC 的互联网网关
  • NAT 网关,将通信传送到互联网网关
  • 具有互联网网关目标 ID 的公共路由表
  • 具有 NAT 网关目标 ID 的私有路由表

当我尝试将 Lambda 函数部署到 API 网关时,请求超时:

START RequestId: [request id] Version: $LATEST
Instancing..
END RequestId: [request id]
REPORT RequestId: [request id]  Duration: 30030.15 ms   Billed Duration: 30000 …
Run Code Online (Sandbox Code Playgroud)

django amazon-web-services aws-lambda amazon-aurora aws-aurora-serverless

6
推荐指数
0
解决办法
1080
查看次数

添加VPC配置后,调用lambda会超时

我正在使用无服务器框架来创建lambda.我创建了一个简单的Lambda函数,它从mongo实例查询并返回响应.最初,我使用publicIp创建了mongo实例,并使用publicIP使Lambda访问该实例.它运作良好.

现在,为了提高安全性,我将VPC配置添加到Lambda.这是我的serverless.yml:

functions:
  graphql:
    handler: handler.graphql
    iamRoleStatements:
      - Effect: Allow
        Resource: "*"
        Action:
          - ec2:CreateNetworkInterface
          - ec2:DescribeNetworkInterfaces
          - ec2:DetachNetworkInterface
          - ec2:DeleteNetworkInterface
          - logs:CreateLogGroup
          - logs:CreateLogStream
          - logs:PutLogEvents
    vpc:
      securityGroupIds:
        - sg-16f9e371
      subnetIds:
        - subnet-883a12fe
        - subnet-3f7b1067
    events:
      - http:
          path: graphql
          method: post
          integration: lambda
          memorySize: 256
          timeout: 10
          cors: true
          response:
            headers:
              Access-Control-Allow-Origin: "'*'"
Run Code Online (Sandbox Code Playgroud)

添加上面的配置,serverless deployment成功了.现在,当我尝试通过在邮递员中调用APIGateway URL来访问该函数时,我收到超时错误.这是邮递员的截图: 超时错误

向Lambda 添加VPC配置是否通过公开调用它使其无法访问?我很迷惑.对此的任何想法都会很棒.

lambda amazon-web-services amazon-vpc aws-lambda serverless-framework

5
推荐指数
2
解决办法
1221
查看次数

API网关+Lambda+VPC超时问题

早上好,请您帮我们解决下一个问题:我有一个 API 网关 + Java Lambda 处理程序。这个 Lambda 使用 httpconnection 来获取一些 Internet REST API。

当我们在没有 VPC 的情况下使用这个 Lambda 时,它工作正常。但是当我们使用 VPC 配置互联网访问时 - 有时 Lambda 会因超时错误而失败。它在 20% 的请求中失败(80% 的请求工作正常)并在日志中出现下一个错误。

REPORT RequestId: 16214561-b09a-11e6-a762-7546f12e61bd Duration: 15000.26 ms Billed Duration: 15000 ms Memory Size: 512 MB Max Memory Used: 47 MB

09:57:49
2016-11-22T09:57:49.245Z 16214561-b09a-11e6-a762-7546f12e61bd Task timed out after 15.00 seconds
Run Code Online (Sandbox Code Playgroud)

根据我的日志,lambda 无法发送 GET 请求。我不确定问题出在哪里。这是 Lambda 问题、VPC 问题还是某些配置问题。此外,我确实尝试了许多不同的 REST Api 端点,因此这绝对不是端点问题。

感谢任何帮助。

amazon-web-services amazon-vpc aws-lambda aws-api-gateway

3
推荐指数
1
解决办法
3700
查看次数

aws lambda 函数中的 ses.sendMail() 不返回回调

亚马逊简单电子邮件服务 (Amazon SES)

我有以下代码。如果我从 aws ec2 实例或我的工作站使用它,它会完美运行。但是,一旦我将它添加到我在 AWS VPC 内部处理的 lambda 函数中,我的 ses.sendEmail() 回调就永远不会被调用。我从未在 CloudWatch 日志中看到该函数的“sendEmail 函数错误”或“sendEmail 函数成功”console.log(),并且我的 lambda 函数在超时期限结束时超时。我不知道我还能做什么。

我已经查找了可能需要添加的任何 IAM 角色或策略,但找不到任何需要提及的内容或要添加的内容。

尝试将策略“AmazonSESFullAccess”添加到该函数的 IAM 角色。仍然超时。

let aws = require('aws-sdk')
    , ses = new aws.SES({ apiVersion: '2010-12-01', region: 'us-west-2' })
    ;

sendEmail({
    To : [ 'anEmail@someone.com' , 'anotherEmail@somewhereElse.com'],
    From: 'ourSupportEmail@whereIWork.com',
    Subject: 'Sending An Email Out',
    Body: `<html> A Buch of HTML Here</html>`
}, function(err, result){
    if(err){
        console.error('SendEmail Error', err);
    } else {
        console.log('SendEmail Result', result);
    }
});


function sendEmail(emailObj, cb){ …
Run Code Online (Sandbox Code Playgroud)

node.js amazon-iam aws-lambda

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

AWS Lambda 无法在没有 VPC 的情况下调用另一个 AWS Lambda - NodeJs

我有两个 AWS Lambda 函数,函数 A 和函数 B,
这两个 Lambda 函数都位于无 VPC 中,因为它们都不需要任何 VPC 资源。
这两个 Lambda 函数都附加了 LambdaFull 访问角色。

我能够从本地调用并执行 Lambda B,
但无法从 Lambda A 调用或执行 Lambda B。

我需要同步行为 -

line 1 ..
line 2, invoke lambda, get a response,
line 3 to use the response from line 2
Run Code Online (Sandbox Code Playgroud)

以下是本地代码和 Lambda 代码 -

1. 本地 -

let AWS = require('aws-sdk');

let client = new AWS.Lambda({
    region: "us-east-1"
});

let payload = {
    "param1": "ABC",
    "param2": 123
};
payload = JSON.stringify(payload); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-lambda

0
推荐指数
1
解决办法
1060
查看次数