Бессерверная структура, обработчик не существует

Я использую бессерверную структуру для развертывания моих функций PHP на AWS Lambda. Я пробовал на простом примере, но внутри cloudwatch я вижу эту ошибку:

Handler `/var/task/public/test.hello` doesn't exist

Это мой бессерверный файл:

service: symfony-bref

provider:
    name: aws
    region: eu-central-1
    runtime: provided
    environment:
        APP_ENV: prod

plugins:
    - ./vendor/bref/bref

functions:
    api:
        handler: public/index.php
        description: ''
        timeout: 30 # in seconds (API Gateway has a timeout of 30 seconds)
        layers:
            - ${bref:layer.php-73-fpm}
        events:
            -   http: 'ANY /'
            -   http: 'ANY /{proxy+}'

    S3Handler:
        handler: public/test.hello
        layers:
            - ${bref:layer.php-73}
        events:
            - s3:
                bucket: ${ssm:/symfony-bref/AWS_S3_BUCKET_NAME:1}
                event: s3:ObjectCreated:*
                existing: true

а мои функции test.php находятся внутри общедоступной папки:

<?php


function hello($eventData) : array
{
    return ["msg" => "hello from PHP " . PHP_VERSION];
}

Что я могу сделать для функции S3Handler? Функция API работает нормально.


person Alessandro Minoccheri    schedule 18.02.2020    source источник


Ответы (1)


Я вижу, вы добавили обработчик как handler: public / index.php в файл serverless.yml, но имя вашего файла - test.php. Мне это кажется опечаткой.

person Mohini Gonawala    schedule 13.04.2020