Вызов лямбда-функции с PHP с использованием AWS Cognito дает ошибку - PullRequest
0 голосов
/ 05 августа 2020

Я использую AWS cognito для вызова лямбда-функции и получения ответа в PHP, но получаю ошибку ниже

Неустранимая ошибка: Uncaught Aws \ Exception \ CredentialsException: Ошибка при получении учетных данных из экземпляра сервис метаданных профиля. (ошибка cURL 28: время ожидания соединения истекло через 1005 миллисекунд (см. https://curl.haxx.se/libcurl/c/libcurl-errors.html)) в C: \ xampp \ htdocs \ LighthouseFolders \ lighthouseproject \ lighthouse \ Aws \ Credentials \ InstanceProfileProvider. php: 240 Трассировка стека: # 0 C: \ xampp \ htdocs \ LighthouseFolders \ lighthouseproject \ lighthouse \ Aws \ Credentials \ InstanceProfileProvider. php (132): Aws \ Credentials \ InstanceProfileProvider-> handleRetryableException (Object (GuceptionHttp ), Array, 'Ошибка извлечения ...') # 1 [внутренняя функция]: Aws \ Credentials \ InstanceProfileProvider-> Aws \ Credentials {closure} () # 2 C: \ xampp \ htdocs \ LighthouseFolders \ lighthouseproject \ lighthouse \ GuzzleHttp \ Promise \ Coroutine. php (142): Generator-> throw (Object (GuzzleHttp \ Exception \ ConnectException)) # 3 C: \ xampp \ htdocs \ LighthouseFolders \ lighthouseproject \ lighthouse \ GuzzleHttp \ Promise \ Promise . php (203): GuzzleHttp \ Promise \ Coroutine -> _ дескриптор в C: \ xampp \ htdocs \ LighthouseFolders \ lighthouseproject \ lighthouse \ Aws \ Credentials \ Instanc eProfileProvider. php в строке 240

Пожалуйста, посмотрите на приведенный ниже код

<?php

require 'aws-autoloader.php';

use Aws\Lambda\LambdaClient;

$client = LambdaClient::factory([
    'version' => 'latest',
    'region'  => 'us-east-1',
    [
        "action" => "session",
        "user_id" => "ABC123"
    ]
]);

$result = $client->invoke([
    'FunctionName' => 'identity_manager', 
]);

echo json_decode((string) $result->get('Payload'));

?> 

Я хочу позвонить LAMBDA identity_manager с помощью

{"action": "session", "user_id": userid}

, чтобы получить результат {"session_id": sessionid}.

Однако у меня возникают следующие проблемы:

  1. Невозможно передать объект внутри LambdaClient, поэтому я отправляю массив с действием и user_id
  2. Получение сообщения об ошибке выше

Пожалуйста, дайте мне знать, как правильно используйте эту функцию в PHP, чтобы передать параметры и получить ответ соответственно.

С уважением,

...