我在aws lambda(环境nodejs6.10)中遇到问题,尝试将用户注册为自定义提供程序。 我在我的后端调用getOpenIdTokenForDeveloperIdentity,用这个参数:
const params = {
IdentityPoolId: config.IDENTITY_POOL_ID,
Logins: {
[config.DEVELOPER_PROVIDER_NAME]: id
}
}
负责电话会议的代码很简单:
const cognitoidentity = new AWS.CognitoIdentity({apiVersion: '2014-06-30'})
return cognitoidentity.getOpenIdTokenForDeveloperIdentity(params).promise()
.then(...)
不幸的是Cognito的答案是这个错误:
{
"message": "Not Found",
"code": "UnknownError",
"statusCode": 404,
"time": "2017-09-13T16:50:12.832Z",
"requestId": "4RQE2T66K7LOT3RBGOMN0JO82NVV4KQNSO5AEMVJF66Q9ASUAAJG",
"retryable": false,
"retryDelay": 58.96973108302359
}
我在2年前使用几乎相同的代码完成了这项工作并且仍在使用,但在这个项目中并非如此。我为未经验证的用户创建了一个小型Web客户端,它与Cognito配合得很好,所以我认为cognito设置正确。该区域与cognito和lambda相同,us-east-1。角色和策略似乎是正确的,lambda有权使用Cognito Identity完成所有工作。我现在不知道该怎么办,如果不能解决,只想离开认知。请帮忙。
其他相关信息部分: 我正在使用无服务器框架,但是手动创建了cognito身份池(角色也一样)。
Lambda允许权限:
[
"cognito-identity:DeleteIdentities",
"cognito-identity:DescribeIdentity",
"cognito-identity:GetOpenIdTokenForDeveloperIdentity",
"cognito-identity:ListIdentities",
"cognito-identity:LookupDeveloperIdentity",
"cognito-identity:MergeDeveloperIdentities",
"cognito-identity:UnlinkDeveloperIdentity"
]
代码初始化
const AWS = require('aws-sdk')
AWS.config.update({
region: config.REGION
})
AWS.config.setPromisesDependency(require('bluebird'))
答案 0 :(得分:1)
解决:问题是由于AWS配置中的错误端点,由我的dynamodb数据层加载