如何从 laravel 调用现有的 AWS Lambda 函数?
Posted
技术标签:
【中文标题】如何从 laravel 调用现有的 AWS Lambda 函数?【英文标题】:How to invoke an existing AWS Lambda function from laravel? 【发布时间】:2020-07-05 01:27:28 【问题描述】:我正在尝试从 laravel 中的 php 代码调用现有的 aws-lambda 函数来获取数据并保存在我的数据库中。 我要调用的实际命令如下:
aws lambda invoke --function-name expo2020-metrics --region eu-west-3 response.json
这是我用来调用我的函数的代码:
use Aws\Lambda\LambdaClient;use Aws\Credentials\Credentials;
$credentials = new Credentials('YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY');
$client = LambdaClient::factory(array(
'credentials' => $credentials,
'region' => 'eu-west-3',
'version' => 'latest'
));
$result = $client->getFunction(array(
'FunctionName' => 'expo2020-metrics',
));
但我收到以下回复:
"Message":"User: arn:aws:iam::677537359471:user/customer/expo2020-metrics is not authorized to perform: lambda: GetFunction on resource: arn:aws:lambda:eu-west-3:677537359471:function:expo2020-metrics"
我不确定我是否使用了正确的代码来调用该函数。我使用的是 AWS 提供的 PHP sdk。
【问题讨论】:
看看是否有帮助:***.com/questions/37498124/… 【参考方案1】:您正在调用getFunction
,它只会为您提供有关 Lambda 函数的信息。这不等同于您尝试转换为 PHP 的 aws lambda invoke
CLI 命令。
您应该致电 Lambda 客户端的 the invoke() function。
【讨论】:
以上是关于如何从 laravel 调用现有的 AWS Lambda 函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将现有的 Web 应用程序从 Heroku 迁移到 AWS
如何使用 Terraform 将现有的“aws_route53_record”CNAME 更新/修改为 ALIAS
将亚马逊 AWS Elastic Beanstalk 指向现有的 EC2
如何将 Artisan cli 添加到现有的 laravel 项目?
如何将来自 AWS Mobile Hub 示例项目的推送服务集成到现有的 android 项目中?
如何在 AWS Elastic Container Service 中使用现有的 docker-compose.yml 文件?