如何 return AWS IAM 用户作为 string/json 使用 STS GetCallerIdentity Caller JS/TS

How to return AWS IAM user as a string/json using STS GetCallerIdentity Caller JS/TS

我正在尝试使用亚马逊提供的 STS GetCallerIdentity API 获取 AWS IAM Arn 用户。下面的代码基本上在控制台中记录了正确的数据。但是,我想 return 数据作为 string/json 但我似乎无法 return 值,因为它在参数中。

如何在 data 回调中 return 我需要的信息?

任何 tips/advice 将不胜感激!!

export function GetIamUser() {
    const sts = new AWS.STS();

    sts.getCallerIdentity({}, function (err, data) {
        if (err) console.log(err, err.stack);
        else console.log(data);
    });
}

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/STS.html#getCallerIdentity-property

这是我运行上述方法

时的输出
   data = {
    Account: "123456789012", 
    Arn: "arn:aws:iam::123456789012:user/user", 
    UserId: "AKIAI44QH8DHBEXAMPLE"
   }

更新: 我已经尝试 return 通过下面的方法调用函数回调,但是值保持 returning undefined

export function GetArnUser() {
    var user;
    sts.getCallerIdentity({}, function (err, data) {
        if (err) console.log(err, err.stack);
        else console.log(data);
        user = data.Arn;
    });
    return user;
}

这是一个异步问题。你正在使用回调,这意味着你需要将回调函数传递给GetArnUser(),类似于下面的

export function GetArnUser(cb) {
    var user;
    sts.getCallerIdentity({}, function (err, data) {
        if (err) console.log(err, err.stack);
        else {
            console.log(data);
            user = data.Arn;
            cb(user)
        }
    });
}