AWS Lambda无法调用Cognito Identity - IAM角色

时间:2016-03-17 16:59:17

标签: javascript node.js amazon-web-services lambda amazon-cognito

我有一些javascript在我的本地机器上运行,但在Lambda中无效。

调用cognitoidentity.getOpenIdTokenForDeveloperIdentity

时超时
{
  "errorMessage": "2016-03-17T16:50:25.181Z 4fa3fa5a-ec60-11e5-8316-415fa39313da Task timed out after 15.00 seconds"
}

在本地它工作正常(调用AWS生产服务)所以它必须是我附加到Lambda的策略。

以下是我的政策:

AmazonCognitoDeveloperAuthenticatedIdentities

AWSLambdaVPCAccessExecutionRole

这也是我也有的习惯:

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "mobileanalytics:PutEvents",
                "cognito-sync:*"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:eu-west-1:myaccountid:function:users_login"
            ]
        }
    ]
}

Lambda ARN直接从该Lambda屏幕复制。什么缺失的想法?

1 个答案:

答案 0 :(得分:4)

  

它必须是我附加的政策

不,如果是这种情况,您将收到权限被拒绝错误,而不是超时。

看起来您的Lambda函数具有VPC访问权限。您需要为VPC配置NAT网关,以便Lambda函数可以访问VPC之外的任何内容,包括Cognito等AWS服务。