【问题标题】:Cognito User Migration Trigger - Exception during user migration - Exception LocationCognito 用户迁移触发器 - 用户迁移期间的异常 - 异常位置
【发布时间】:2018-11-15 01:17:04
【问题描述】:

我们使用 lambda 函数来响应 AWS Cognito 中的“用户迁移”触发器。当出现语法错误之类的情况时,您可以在云监视日志中看到它。但是,在登录页面上看到的“用户迁移期间的异常”错误在云观察日志中找不到。

我们应该在哪里寻找这些?我在文档中找不到任何内容,并认为它会转到云端观看。

我无法在 lambda 接口中对其进行测试,因为传递给 lambda 函数的参数之一将具有嵌套在对象中的函数,并且我无法创建具有该函数的测试 JSON 设置。也没有预先构建的用户迁移测试触发器。

任何关于为什么我在云手表中看不到这一点或在哪里显示异常的想法将不胜感激。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cognito


    【解决方案1】:

    不幸的是,Cogntio 没有公开任何日志(或指标,就此而言!)。

    您可以获得的最接近方法是在 CloudWatch 中查看 lambda 的日志。如果您记录您的响应并观察 lambda 的错误指标,那么您应该能够调试 lambda 内部的问题。

    这确实留下了一些边缘情况:

    • 如果无法调用 lambda,您将看不到任何内容(这只会在单个 lambda 或您帐户中的所有 lambda 上的大量并发负载下发生)
    • 如果您返回错误的响应,则 lambda 将成功,但触发操作将失败,并且 Cognito 会为您提供相当通用的消息。在这一点上,您只能依靠 AWS 的文档来找出问题所在(这可能会有点意外——尽管 StackOverflow 总是有帮助!)。

    您可以在 trigger documentation 中找到 lambda 的示例负载:

    {
        "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,它不存储函数。因此,您应该始终能够派生出要在控制台中使用的测试负载。

    【讨论】:

    • 感谢您抽出宝贵时间对此做出回应。当我将传入的函数称为 lambda 处理程序的有效负载时,我的意思是传入了一个“上下文”对象。它需要您调用它的函数才能确认。如果您查看此文档:docs.aws.amazon.com/cognito/latest/developerguide/…
    • ... 它表明上下文有一个方法,我需要调用它才能成功。这就是我说我无法使用仅使用 JSON 的内置测试逻辑来模拟有效负载时的意思。我想我将一步一步地注释掉代码,看看我是否可以这样调试它。再次感谢您的意见。
    • 啊-是的-我现在明白了。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 2020-01-27
    • 1970-01-01
    • 2018-09-19
    • 2023-03-10
    • 2020-10-06
    相关资源
    最近更新 更多