Облачная информация AWS SAM: шлюз API не может вызывать лямбду (AWS :: Serverless :: Function) - PullRequest
0 голосов
/ 10 сентября 2018

Я создал файл template.yaml для объявления простой лямбда-функции, которая вызывается шлюзом API.Когда я пытаюсь вызвать функцию из URL-адреса шлюза API, происходит сбой запроса с {"message": "Internal server error"}, и в логах шлюза API Cloudwatch появляется сообщение об ошибке Недопустимые разрешения для функции Lambda .

Этоmy template.yaml:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Parameters:
    AliasName:
        Type: String
        Default: dev

Resources:
    DynamoDBTenantTable:
        Type: AWS::DynamoDB::Table
        Properties:
            AttributeDefinitions:
                - AttributeName: clientApiKey
                  AttributeType: S
            KeySchema:
                - AttributeName: clientApiKey
                  KeyType: HASH
            ProvisionedThroughput:
                ReadCapacityUnits: 5
                WriteCapacityUnits: 5
            TableName: !Sub "authtable-${AliasName}"


    AmeAuthenticatorLambda:
        Type: AWS::Serverless::Function
        Properties:
            Handler: authenticator.handler
            Policies: AmazonDynamoDBFullAccess
            Runtime: nodejs8.10
            CodeUri: src/
            Environment:
                Variables:
                    TABLE_NAME: !Sub "authtable-${AliasName}"
            Events:
                AuthenticatorEvent:
                    Type: Api
                    Properties:
                        Path: /authentication/
                        Method: POST

Документация SAM гласит, что приведенный выше синтаксис способен создавать необходимые разрешения и декларацию API неявно .

Я также следовалпример с веб-сайт AWS .

Если я добавлю в файл template.yaml разрешение lambda: InvokeFunction , вызов будет выполнен, но при чтении документации это должно сделатьне нужно.

Что может быть не так?

...