【问题标题】:AWS SDK function is not being called when run used on a lambda function deployed by Amplify在 Amplify 部署的 lambda 函数上运行时未调用 AWS 开发工具包函数
【发布时间】:2021-04-25 13:59:43
【问题描述】:

我正在尝试以编程方式将用户添加到我的 Amplify 项目中的组。我创建了一个如下所示的 lambda 函数并使用放大函数部署它。我在这篇文章之后设置了函数角色的权限:https://www.linkedin.com/pulse/aws-amplify-adding-user-group-programmatically-guillermo-misa-iii。函数 get 被执行。没有错误。它甚至不运行控制台日志,这意味着没有调用回调。用户也没有被添加到组中。 lambda 函数日志中没有错误日志。知道发生了什么吗?

const AWS = require('aws-sdk');

exports.handler = async (event, context, callback) => {
    const cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();

    cognitoIdentityServiceProvider.adminAddUserToGroup({
        GroupName: 'abcd', //your confirmed user gets added to this group
        UserPoolId: event.arguments.userPoolId,
        Username: event.arguments.userName
    }, function(err, data) {
        console.log('Ran the function')

        if (err) {
            callback(err) // uh oh, an error
        }

        callback(null, event); // yay! success
    })

    // return response;
};

【问题讨论】:

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


    【解决方案1】:

    在我遵循的指南中,他们使用普通函数作为 lambda 处理程序:

    exports.handler = (event, context, callback) => {})
    

    但我使用了async函数:

    exports.handler = async (event, context, callback) => {})
    

    似乎在async 函数中,lambda 不会等到回调被调用。它希望我们在代码中使用 async await 语法。所以,我必须像这样转换函数:

    try {
        await cognitoIdentityServiceProvider.adminAddUserToGroup({
            GroupName: 'abcd', //your confirmed user gets added to this group
            UserPoolId: event.arguments.userPoolId,
            Username: event.arguments.userName
        }).promise()
    
        callback(null, event); // yay! success
    } catch (error) {
        console.log(error)
    }
    

    现在一切正常! 注意,如果我们调用.promise(),我们可以从aws-sdk 函数中得到一个promise。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2020-08-22
      • 2017-07-27
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多