我有以下函数用于从我的代码中调用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) 我想连接到 django Lambda 函数内的 Aurora Serverless mysql 数据库。目前,我有:
当我尝试将 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
我正在使用无服务器框架来创建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
早上好,请您帮我们解决下一个问题:我有一个 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 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) 我有两个 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)