Lambda拥有所有适当的权利,它使用的是我在本地计算机上使用的配置文件,而该配置文件仅适用于该工作。
我正在使用最新版本的EC2软件包:
由于某种原因,AmazonEC2Client.DescribeInstancesAsync
在Lambda中运行100秒后会抛出TaskCanceledException
。
代码如下:
var resp = Ec2Client.DescribeInstancesAsync(new DescribeInstancesRequest
{
Filters = new List<Filter>
{
new Filter("iam-instance-profile.arn", new List<string> {"myCorrectRole"})
}
}).Result;
有问题的TaskCanceledException
位于引发的AggregateException
中,其中包含一个Message = "A task was canceled"
答案 0 :(得分:0)
我遇到了这个问题。
原来是由于Lambda在VPC中运行。
在VPC中运行时,lambda无法与SDK用于与EC2平台进行交互的公共端点进行对话。
在我的案例中,Lambda位于私有子网中,我希望它保留在那里,因此我在VPC内创建了一个公共子网,并在两个子网之间创建了NAT网关,而公共子网通过Internet网关路由出去
也可以使用VPC终端节点解决此问题,但前提是您要管理与VPC在同一区域内的AWS资源。