使用VPC中运行的Lambda提供的AWS开发工具包

ajm*_*rry 5 amazon-web-services node.js amazon-vpc aws-sdk aws-lambda

我有一个简单的lambda函数,如下所示

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

exports.handler = (event, context, callback) => {

var ec2 = new AWS.EC2({region:'us-east-1'});
return ec2.describeRegions({}).promise()
.then(function(regionResponse) {
    console.log(regionResponse.Regions)
    callback(null, regionResponse.Regions);
})
.catch(
    function (err) {
        console.log({"error" : err});
        callback(err, null);
    }
)
Run Code Online (Sandbox Code Playgroud)

};

我可以在VPC外部成功运行此功能。

我使用VPC向导创建了VPC,并创建了具有单个公共子网和Internet网关的VPC。我将该函数放置在VPC中,并赋予其具有Lambda VPC执行权的执行角色。现在它因超时而失败,我将其设置为10秒(正常执行为1秒)

我的配置中缺少什么,阻止该功能访问VPC内的AWS开发工具包?

Çağ*_*ürk -2

  1. 您将回调放在 return 语句之后。当然它永远不会被执行,因为你从函数返回了。

  2. 如果您运行 Lambda 的子网不是公共的或没有 NAT 网关,则它将无法连接到 Internet,从而无法连接到 AWS API。