为浏览器构建 SDK - AWS SDK for JavaScript

我们已宣布即将终止对 AWS SDK for JavaScript v2 的支持。建议您迁移到 AWS SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

为浏览器构建 SDK

SDK for JavaScript 作为 JavaScript 文件提供,其中包含对一组默认服务的支持。此文件通常使用引用托管开发工具包的 <script> 标记加载到浏览器脚本中。但是,您可能需要支持默认服务集以外的服务,或者需要自定义开发工具包。

如果您在强制浏览器使用 CORS 的环境之外使用 SDK,并且您希望访问 SDK for JavaScript 提供的所有服务,则可以通过克隆存储库并运行相同的构建工具(这些工具构建了 SDK 的默认托管版本)在本地构建 SDK 的自定义副本。下面几部分介绍使用额外服务和 API 版本构建 SDK 的步骤。

使用 SDK 生成器构建 SDK for JavaScript

创建您自己的 AWS SDK for JavaScript 构建的最简单方法是在 https://sdk.amazonaws.com/builder/js 上使用 SDK 生成器 Web 应用程序。使用开发工具包构建器指定要包含在构建中的服务及其 API 版本。

选择选择所有服务选择默认服务作为您可以添加或删除服务的起点。选择开发以获得更易读的代码,或选择简化以创建要部署的简化构建。选择要包含的服务和版本后,选择构建以构建和下载您的自定义开发工具包。

使用 CLI 构建 SDK for JavaScript

要使用 AWS CLI 构建 SDK for JavaScript,需要首先克隆包含 SDK 源代码的 Git 存储库。您必须在计算机上安装 Git 和 Node.js。

首先,从 GitHub 克隆存储库并将目录更改为以下目录:

git clone https://github.com/aws/aws-sdk-js.git cd aws-sdk-js

克隆存储库后,下载开发工具包和构建工具的依赖模块:

npm install

您现在可以构建开发工具包的打包版本。

从命令行构建

生成器工具位于 dist-tools/browser-builder.js 中。通过键入以下内容运行此脚本:

node dist-tools/browser-builder.js > aws-sdk.js

此命令会构建 aws-sdk.js 文件。此文件未压缩。默认情况下,此软件包仅包含一组标准服务。

简化构建输出

为了减少通过网络传输的数据量,可以通过称为简化 的过程压缩 JavaScript 文件。简化过程会去掉注释、不必要的空格以及便于阅读但不影响代码执行的其他字符。生成器工具可以生成未压缩的输出或简化的输出。要简化构建输出,请设置 MINIFY 环境变量:

MINIFY=1 node dist-tools/browser-builder.js > aws-sdk.js

构建特定服务和 API 版本

您可以选择要在开发工具包中构建的服务。要选择服务,请将逗号分隔的服务名称指定为参数。例如,要仅构建 Amazon S3 和 Amazon EC2,请使用以下命令:

node dist-tools/browser-builder.js s3,ec2 > aws-sdk-s3-ec2.js

您还可以通过在服务名称后添加版本名称来选择服务构建的特定 API 版本。例如,要构建 Amazon DynamoDB 的这两个 API 版本,请使用以下命令:

node dist-tools/browser-builder.js dynamodb-2011-12-05,dynamodb-2012-08-10

服务标识符和 API 版本在 https://github.com/aws/aws-sdk-js/tree/master/apis 上的特定于服务的配置文件中提供。

构建所有服务

您可以通过包括 all 参数来构建所有服务和 API 版本:

node dist-tools/browser-builder.js all > aws-sdk-full.js

构建特定服务

要自定义构建中包含的选定服务集,请将 AWS_SERVICES 环境变量传递给包含所需服务列表的 Browserify 命令。以下示例将构建 Amazon EC2、Amazon S3 和 DynamoDB 服务。

$ AWS_SERVICES=ec2,s3,dynamodb browserify index.js > browser-app.js

使用 Browserify 构建开发工具包作为依赖关系

Node.js 有一个基于模块的机制,可用于包含来自第三方开发人员的代码和功能。Web 浏览器中运行的 JavaScript 本身不支持此模块化方法。不过,利用名为 Browserify 的工具,您可以使用 Node.js 模块方法并在浏览器中使用为 Node.js 编写的模块。Browserify 将浏览器脚本的模块依赖项构建为可在浏览器中使用的单个自包含 JavaScript 文件。

您可以使用 Browserify 将开发工具包构建为任何浏览器脚本的库依赖项。例如,以下 Node.js 代码需要开发工具包:

var AWS = require('aws-sdk'); var s3 = new AWS.S3(); s3.listBuckets(function(err, data) { console.log(err, data); });

可以使用 Browserify 将此示例代码编译为与浏览器兼容的版本:

$ browserify index.js > browser-app.js

然后,应用程序(包括其开发工具包依赖项)可通过 browser-app.js 在浏览器中使用。

有关 Browserify 的更多信息,请参阅 Browserify 网站