Как вызвать существующую AWS лямбда-функцию из laravel? - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь вызвать существующую функцию aws -lambda из моего php кода в laravel, чтобы получить данные и сохранить их в своей базе данных. Фактическая команда, которую я хочу вызвать, выглядит следующим образом:

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"}

Я не уверен, что использую правильный код для вызова функции или нет. Я использую PHP sdk, предоставленный AWS.

1 Ответ

0 голосов
/ 24 марта 2020

Вы звоните getFunction, который просто дает вам информацию о лямбда-функции. Это не эквивалентно команде aws lambda invoke CLI, которую вы пытаетесь перевести в PHP.

Вы должны вызывать функцию invoke () Lambda-клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...