#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.