我们已宣布
为浏览器构建 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
选择选择所有服务或选择默认服务作为您可以添加或删除服务的起点。选择开发以获得更易读的代码,或选择简化以创建要部署的简化构建。选择要包含的服务和版本后,选择构建以构建和下载您的自定义开发工具包。
使用 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 网站