AWS Lambda 无法调用学习身份 - IAM 角色
AWS Lambda can't call Cognito Identity - IAM Role
我有一些 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 屏幕复制的。有什么遗漏的想法吗?
it must be the policy I have attached
不,如果是这种情况,您将收到权限被拒绝错误,而不是超时。
看起来您的 Lambda 函数具有 VPC 访问权限。您需要为您的 VPC 配置 NAT 网关,以便 Lambda 函数可以访问 VPC 之外的任何内容,包括 Cognito 等 AWS 服务。
我有一些 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 屏幕复制的。有什么遗漏的想法吗?
it must be the policy I have attached
不,如果是这种情况,您将收到权限被拒绝错误,而不是超时。
看起来您的 Lambda 函数具有 VPC 访问权限。您需要为您的 VPC 配置 NAT 网关,以便 Lambda 函数可以访问 VPC 之外的任何内容,包括 Cognito 等 AWS 服务。