如何从 AWS javascript SDK 进行 IAM 调用?

How do I make IAM calls from the AWS javascript SDK?

我们想使用 AWS Javascript SDK 的 IAM 模块,已记录 here。我们遵循基本说明,但是当尝试实例化一个 new AWS.IAM() 对象时,找不到它。

我们正在使用 https://sdk.amazonaws.com/js/ 中的标准库,这似乎是问题所在 - 它不包含 IAM 模块。

有没有办法告诉SDK加载IAM模块?或者可能有不同的方法来加载 IAM 模块?

您可以使用不包含 IAM 的 "hosted build":

Although all services are supported in the browser version of the SDK, not all of the services are available in the default hosted build (using the script tag provided above). A list of services in the hosted build are provided in the "Working With Services" section of the browser SDK guide, including instructions on how to build a custom version of the SDK with extra services.

Supported Services

IAM 模块不包含在亚马逊托管的 "standard" 包中。 因此,您应该自定义构建所需的库。

以下是您需要执行的步骤:

从亚马逊获取SDK代码:

$ git clone git://github.com/aws/aws-sdk-js
$ cd aws-sdk-js/
aws-sdk-js$ git checkout v2.1.28 # if you want a specific version

构建过程正在使用节点;执行 npm install 以确保您已安装工具和依赖项(当然,您需要安装节点)。

现在,假设您要构建一个支持 S3、STS 和 IAM 的库。使用此命令行:

aws-sdk-js$ node dist-tools/browser-builder.js s3,sts,iam > aws-sdk-s3-sts-iam.js

您可以使用任何适合您的命名约定,但如果您使用不同的自定义构建,我们发现上述约定最有帮助。

如果你想为你的版本缩小定制的库,请改用以下命令行(它为要使用的节点设置正确的环境变量):

aws-sdk-js$ MINIFY=1 node dist-tools/browser-builder.js s3,sts,iam > aws-sdk-s3-sts-iam.min.js

如果您非常关心库的大小,或者您选择托管 Amazon js(也许您将它与您的其他内容捆绑在一起),无论如何使用此过程可能是个好主意,并且只包含您实际需要的库。节省的钱不一定很大——因为无论如何都包含共享代码——但你最终可能会节省一些东西。例如,在添加我们需要的 IAM(S3 和 STS 包含在托管构建中)之后,上面的示例(恰好是我们用于我们的一个项目的示例)将总大小从 ~300K 减少到~200K。 =13=]