问题描述
问题描述:
我无法从 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());
}
错误信息:
通过网络
{"message": "Internal server error"}
任务在 28 秒后超时
通过工匠
任务在 120.00 秒后超时
设置
使用 bref/laravel-bridge 在 AWS Lambda 上运行的 Laravel 应用程序
此应用程序的 IAM 用户已创建。在本地一切正常。除了发送短信外,在线一切都正常。
尝试过的解决方案:
尝试了以下软件包。
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,]);
在本地,所有替代解决方案也一直有效!
有人知道这个问题并有解决方案吗?我一直在寻找一种方法超过 24 小时。我最后的方法是通过 CURL 重建完整的调用并尝试一下,但我希望有人有/找到解决方案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)