AWS Lambda отправка SMS через AWS-PHP-SDK не работает

#php #laravel #aws-lambda #aws-php-sdk #bref

Вопрос:

Описание проблемы:

Я не могу отправлять SMS с AWS Lambda.

Код контроллера

     try {
        $sms = AwsFacade::createClient('sns');
        $result = $sms->publish([
            'MessageAttributes' => [
                'AWS.SNS.SMS.SenderID' => [
                    'DataType' => 'String',
                    'StringValue' => 'CyQuer',
                ],
                'AWS.SNS.SMS.SMSType' => [
                    'DataType' => 'String',
                    'StringValue' => 'Transactional',
                ],
            ],
            'Message' => "Hello John Doe".PHP_EOL."Use following Code to Login:".PHP_EOL."123456",
            'PhoneNumber' => $phone,
        ]);
        Log::info($result);
    } catch (Exception $e) {
        Log::error($e->getMessage());
    }
 

Сообщение об ошибке:

через Интернет
{«сообщение»: «Внутренняя ошибка сервера»}
Время ожидания задачи истекло через 28,00 секунды

через Ремесленника
Время ожидания задачи истекло через 120,00 секунд

Установка

Было создано приложение Laravel, работающее на AWS Lambda с использованием пользователя bref/laravel-bridge
IAM для этого приложения. Локально все работает. В Интернете тоже все работает, кроме отправки SMS.

Опробованные решения:

Были опробованы следующие пакеты.

https://github.com/aws/aws-sdk-php

https://github.com/aws/aws-sdk-php-laravel

Все следующие описанные подходы работали локально на AWS Lambda, но не работали.
Напишите AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY непосредственно в config/aws.php
Напишите AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY непосредственно в коде

         $sms = AwsFacade::createClient('sns',[
            'credentials' => [
                'key'    => '********************',
                'secret' =>  '****************************************',
            ],
            'region' => env('AWS_REGION', 'eu-central-1'),
            'version' => 'latest',
            'ua_append' => [
                'L5MOD/' . AwsServiceProvider::VERSION,
            ],
        ]);
 

Предоставление всем пользователям IAM полного доступа администратора также не сработало.

Locally, all alternative solutions have also always worked!

Does anyone know the problem and have a solution for it? I’ve been trying to find a way for more than 24 hours. My last approach would be to rebuild the complete call via CURL and try it out, but I hope someone has/finds a solution.