Cognito User Migration Trigger - Исключение во время миграции пользователя - Местоположение исключения - PullRequest
0 голосов
/ 14 ноября 2018

Мы используем лямбда-функцию для ответа на триггер «Миграция пользователя» в AWS Cognito. Когда происходит что-то вроде синтаксической ошибки, вы можете увидеть это в журналах наблюдения за облаком. Однако ошибки «Исключение во время миграции пользователя», отображаемые на странице входа, не найдены в журналах наблюдения за облаком.

Где мы должны их искать? Я ничего не могу найти в документации и предположил, что это пошло бы на облачные наблюдения.

Я не могу проверить это в лямбда-интерфейсе, потому что один из параметров, передаваемых в лямбда-функцию, будет иметь функцию, вложенную в объект, и я не могу создать тестовую установку JSON, которая имеет это. Также нет встроенного тестового триггера для пользовательской миграции.

Будем весьма благодарны за любые идеи относительно того, почему я не вижу этого в облачных наблюдениях или где будут показаны исключения.

1 Ответ

0 голосов
/ 14 ноября 2018

К сожалению, Cogntio не предоставляет никаких журналов (или метрик, в этом отношении!).

Самое близкое, что вы можете получить, это просмотреть лямбда-логи в CloudWatch. Если вы регистрируете свой ответ и следите за метрикой ошибок лямбды, то в большинстве случаев вы должны иметь возможность отладить проблемы, внутренние для лямбды.

Это оставляет несколько крайних случаев:

  • Вы ничего не увидите, если лямбда не может быть вызвана (это может произойти только при сильных одновременных нагрузках либо на одной лямбде, либо на всех лямбдах вашего аккаунта)
  • Если вы вернете неправильный ответ, лямбда будет успешной, но действие триггера не будет выполнено, и Cognito выдаст вам довольно общее сообщение. На данный момент вы находитесь в зависимости от документации AWS, чтобы понять, что не так (что может быть не совсем удачным, хотя StackOverflow всегда помогает!).

Пример полезной нагрузки для лямбды можно найти в документации по триггеру :

{
    "userName": "THE USERNAME",
    "request": {
        "password": "THE PASSWORD"
    },
    "response": {
        // it is your responsibility to fill this bit in and return the completed object back:
        "userAttributes": {
            "string": "string",
            ...
        },
        "finalUserStatus": "string",
        "messageAction": "string",
        "desiredDeliveryMediums": [ "string", ... ],
        "forceAliasCreation": boolean
    }
}

n.b. Кроме того, что вы, возможно, знаете, но полезные данные Lambda всегда должны быть в JSON, который не хранит функции. Таким образом, вы всегда сможете получить тестовую полезную нагрузку для использования в консоли.

...