2

У меня есть немного javascript, который работает на моей локальной машине, но не работает из Lambda.AWS Lambda не может назвать идентификатор Cognito - роль IAM

Он таймаут при вызове 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" 
      ] 
     } 
    ] 
} 

Лямбда ARN был скопированный непосредственно с этого лямбда-экрана. Любые идеи о том, чего не хватает?

ответ

1

должна быть политика Я приложил

Нет, если бы это было так, вы бы получить разрешение отказано ошибка, а не тайм-аут.

Похоже, ваша функция Лямбда имеет доступ к VPC. Вам необходимо настроить NAT-шлюз для вашего VPC, чтобы функция Lambda имела доступ к чему-либо вне VPC, включая службы AWS, такие как Cognito.

+0

Ahhh правильно! Я попробую это –

+0

Любой пример того, что вы сделали, чтобы исправить это? – NeoPix

Смежные вопросы