在赋予调用函数的所有权限之后.我的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) 在过去的几个小时里,我一直在调试、配置和您命名它,但我似乎无法弄清楚为什么会发生这种情况。
我正在尝试调用一个 lambda 函数,它只是从 ec2 检索基本信息。当我在 aws 控制台中测试这个 lambda 函数时,它似乎工作正常。但是,在另一个 lambda 中调用它,使用以下代码;
BasicAWSCredentials awsCreds = new BasicAWSCredentials("key1" , "key2");
AWSLambdaClientBuilder builder = AWSLambdaClientBuilder.standard()
.withRegion("eu-west-1")
.withCredentials(new AWSStaticCredentialsProvider(awsCreds));
AWSLambda client = builder.build();
InvokeRequest req = new InvokeRequest()
.withFunctionName("GetWhateverIneed");
InvokeResult result = client.invoke(req);
Run Code Online (Sandbox Code Playgroud)
它只是超时。没有任何响应...两个 Lambda 都连接到 VPC 和所有子网
我认为是我的新 VPC 导致了这个问题。我的 VPC 包括:
1 个专有网络。
-2x 子网(1x Private with ipv4 10.0.0.0/17,1x Public with ipv4 10.0.128.0/17)。
-1x IGW 连接到私有子网。
-1x NAT 网关连接到公共子网。
-2x 端点(一个用于 Ec2,一个用于 SecretsManager)
我还配置了两个路由表,一个用于“公共”子网:“路由”->
目标:10.0.0.0/16 目标:本地
目标:0.0.0.0/0 目标:我的 Internet 网关(IGW)
一个用于“私有”子网:“路由”-> …