とはAWS SDK for JavaScript? - AWS SDK for JavaScript

改善のお手伝いAWS SDK for JavaScriptを使用してフィードバックを提供することにより、バージョン 3 (V3) のドキュメントフィードバックリンクするか、Issue またはプルリクエストを作成しますGitHub

-AWS SDK for JavaScriptV3 API リファレンスガイドでは、のすべての API オペレーションについて詳しく説明します。AWS SDK for JavaScriptバージョン3 (V3)。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

とはAWS SDK for JavaScript?

AWS SDK for JavaScript 開発者ガイドへようこそ。このガイドでは、セットアップおよび構成に関する一般的な情報を提供します。AWS SDK for JavaScript。また、さまざまな実行の例とチュートリアルを説明しますAWSのサービスの使用AWS SDK for JavaScript。

-AWS SDK for JavaScriptv3 API リファレンスガイド用の JavaScript API を提供します。AWSのサービス。JavaScript API を使用して、Node.js またはブラウザ用のライブラリまたはアプリケーションを構築できます。


      JavaScript 環境、SDK、およびアマゾン ウェブ サービスの関係

SDK メジャーバージョンのメンテナンスとサポート

SDK メジャーバージョンのメンテナンスとサポート、およびその基礎的な依存関係については、AWS SDK とツール共有設定および認証情報リファレンスガイドで以下を参照してください。

バージョン 3 の新機能

SDK for JavaScript (V3) のバージョン3には、以下の新機能が含まれています。

モジュール化されたパッケージ

ユーザーは、サービスごとに個別のパッケージを使用できるようになりました。

新しいミドルウェアスタック

ユーザーは、ミドルウェアスタックを使用して、オペレーション呼び出しのライフサイクルを制御できるようになりました。

また、SDKはTypeScript で書かれており、静的型指定など多くの利点がある。

モジュール化されたパッケージ

JavaScript 用 SDK のバージョン 2 (V2) では、AWSSDK、次のようになります。

var AWS = require("aws-sdk");

アプリケーションが多くのAWSのサービス。しかし、あなたがほんの数を使用する必要がある場合AWSサービスでは、必要のないコードや使用しないコードでアプリケーションのサイズを増やすことを意味します。

V3では、個々のAWSお客様が必要とするサービス これは、Amazon DynamoDB(DynamoDB)へのアクセス権を付与する以下の例に示されています。

const {DynamoDB} = require("@aws-sdk/client-dynamodb");

だけでなく、個々のロードして使用することができますAWSサービスを読み込んで使用できますが、必要なサービスコマンドのみを読み込んで使用することもできます。これは、次の例に示されています。この例では、DynamoDB クライアントとListTablesCommandコマンド。

const { DynamoDBClient, ListTablesCommand } = require('@aws-sdk/client-dynamodb')
重要

サブモジュールをモジュールにインポートしないでください。たとえば、次のコードでは、エラーになる可能性があります。

const {CognitoIdentity} = require("@aws-sdk/client-cognito-identity/CognitoIdentity")

以下は正しいコードです。

const {CognitoIdentity} = require("@aws-sdk/client-cognito-identity")

コードサイズの比較

バージョン 2 (V2) では、すべての Amazon DynamoDB テーブルをus-west-2リージョンは次のようになります。

var AWS = require("aws-sdk"); // Set the Region AWS.config.update({region: "us-west-2"}); // Create DynamoDB service object var ddb = new AWS.DynamoDB({apiVersion: "2006-03-01"}); // Call DynamoDB to retrieve the list of tables ddb.listTables({Limit:10}, function(err, data) { if (err) { console.log("Error", err.code); } else { console.log("Tables names are ", data.TableNames); } });

V3は次のようになります。

(async function () { const { DynamoDBClient, ListTablesCommand }= require('@aws-sdk/client-dynamodb'); const dbclient = new DynamoDBClient({ region: 'us-west-2'}); try { const results = await dbclient.send(new ListTablesCommand); results.Tables.forEach(function (item, index) { console.log(item.Name); }); } catch (err) { console.error(err) } })();

-aws-sdkパッケージは、アプリケーションに約 40 MB を追加します。置換varAWS = require("aws-sdk")const {DynamoDB} = require("@aws-sdk/client-dynamodb")は、そのオーバーヘッドを約 3 MB に削減します。インポートを DynamoDB クライアントとListTablesCommandコマンドを使用すると、オーバーヘッドが 100 KB 未満に削減されます。

// Load the DynamoDB client and ListTablesCommand command for Node.js const { DynamoDBClient, ListTablesCommand } = require('@aws-sdk/client-dynamodb'); const dbclient = new DynamoDBClient({});

V3 でのコマンドの呼び出し

V2 または V3 コマンドを使用して、V3 での操作を実行できます。V3 コマンドを使用するには、コマンドと必要なAWSサービスパッケージクライアントをインストールし、.send非同期/awaitパターンを使用してメソッドを呼び出します。

V2 コマンドを使用するには、必要なAWSサービスパッケージを作成し、コールバックまたは非同期/待機パターンのいずれかを使用して、パッケージ内で直接 V2 コマンドを実行します。

V3 コマンドの使用

V3は、それぞれのためのコマンドのセットを提供しますAWSサービスパッケージを使用して、その操作を実行できるようにしますAWSサービス。インストール後AWSサービスでは、プロジェクトのnode-modules/@aws-sdk/client-PACKAGE_NAME/commands folder.

使用するコマンドをインポートする必要があります。たとえば、次のコードでは DynamoDB サービスと、CreateTableCommandコマンド。

const {DynamoDB, CreateTableCommand} = require('@aws-sdk/client-dynamodb');

推奨async/await パターンでこれらのコマンドを呼び出すには、次の構文を使用します。

CLIENT.send(newXXXCommand)

たとえば、次の例では、推奨される非同期/待機パターンを使用して DynamoDB テーブルを作成します。

const {DynamoDB, CreateTableCommand} = require('@aws-sdk/client-dynamodb'); const dynamodb = new DynamoDB({region: 'us-west-2'}); var tableParams = { Table : TABLE_NAME }; async function run() => { try{ const data = await dynamodb.send(new CreateTableCommand(tableParams)); console.log("Success", data); } catch (err) { console.log("Error", err); } }; run();
V2 コマンドの使用

JavaScript 用 SDK で V2 コマンドを使用するには、完全なAWS次のコードに示すように、サービスパッケージ。

const {DynamoDB} = require('@aws-sdk/client-dynamodb');

推奨される非同期/待機パターンで V2 コマンドを呼び出すには、次の構文を使用します。

client.command(parameters)

次の例では、V2createTableコマンドを使用して、推奨される非同期/待機パターンを使用して DynamoDB テーブルを作成します。

const {DynamoDB} = require('@aws-sdk/client-dynamodb'); const dymamoDB = new DynamoDB({region: 'us-west-2'}); var tableParams = { TableName : TABLE_NAME }; async function run() => { try { const data = await dymamoDB.createTable(tableParams); console.log("Success", data); } catch (err) { console.log("Error", err); } }; run();

次の例では、V2createBucketコマンドを使用して、コールバックパターンを使用して Amazon S3 バケットを作成します。

const {S3} = require('@aws-sdk/client-s3'); const s3 = new S3({region: 'us-west-2'}); var bucketParams = { Bucket : BUCKET_NAME }; function run(){ s3.createBucket(bucketParams, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Location); } }) };

新しいミドルウェアスタック

SDK の V2 では、イベントリスナーをリクエストにアタッチすることで、ライフサイクルの複数の段階にわたってリクエストを変更できるようになりました。このアプローチでは、リクエストのライフサイクル中に何がうまくいかないかをデバッグするのが難しくなります。

V3 では、新しいミドルウェアスタックを使用して、操作呼び出しのライフサイクルを制御できます。このアプローチは、いくつかの利点を提供します。スタック内の各ミドルウェアステージは、リクエストオブジェクトに変更を加えた後、次のミドルウェアステージを呼び出します。これにより、スタック内のデバッグの問題がはるかに簡単になります。これは、エラーに至るまでのミドルウェアのステージが呼び出されたかを正確に見ることができるからです。

次の例では、ミドルウェアを使用して Amazon DynamoDB クライアント(先ほど作成して示した)にカスタムヘッダーを追加します。最初の引数は、nextを呼び出します。これは、スタック内の次のミドルウェアステージです。contextです。これは、呼び出される操作に関するいくつかの情報を含むオブジェクトです。関数は、受け入れる関数を返します。argsです。これは、オペレーションとリクエストに渡されるパラメータを含むオブジェクトです。これは、次のミドルウェアを呼び出した結果を返しますargs

dbclient.middlewareStack.add( (next, context) => args => { args.request.headers["Custom-Header"] = "value"; return next(args); }, { step: "build" } ); dbclient.send(new PutObjectCommand(params));

Node.js で SDK を使用する

Node.js は、サーバー側の JavaScript アプリケーションを実行するための、クロスプラットフォームランタイムです。サーバー上で実行するために、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで Node.js を設定できます。Node.js を使用してオンデマンドの AWS Lambda 関数を書き込むこともできます。

Node.js での SDK の使用方法は、ウェブブラウザの JavaScript で使用する方法とは異なります。この違いは、SDK のロード方法と、特定のウェブサービスにアクセスするために必要な認証情報の取得方法によるものです。Node.js とブラウザの間で特定の API の使用方法が異なる場合、その違いが指摘されます。

での SDK の使用AWS Cloud9

Node.js アプリケーションを開発するには、SDK for JavaScript の使用 SDK を使用して、AWS Cloud9IDE。の使用方法の詳細については、「」を参照してください。AWS Cloud9を JavaScript 用 SDK とともに使用する方法については、AWS Cloud9 を AWS SDK for JavaScript に使用する

での SDK の使用AWS Amplify

ブラウザーベースの Web アプリ、モバイルアプリ、ハイブリッドアプリの場合は、AWS AmplifyGitHub の SDK ライブラリ。これは、JavaScript用のSDKを拡張し、宣言的なインターフェイスを提供します。

注記

Amplify のようなフレームワークは、JavaScript 用の SDK と同じブラウザサポートを提供しない可能性があります。詳細については、フレームワークのドキュメントを参照してください。

ウェブブラウザで SDK を使用する

主要なウェブブラウザはすべて JavaScript の実行をサポートしています。ウェブブラウザで実行されている JavaScript コードは、クライアント側の JavaScript と呼ばれます。

AWS SDK for JavaScript がサポートしているブラウザのリストについては、「サポートされるウェブブラウザ」を参照してください。

ウェブブラウザでの JavaScript 用 SDK の使用方法は、Node.js での使用方法とは異なります。この違いは、SDK のロード方法と、特定のウェブサービスにアクセスするために必要な認証情報の取得方法によるものです。Node.js とブラウザの間で特定の API の使用方法が異なる場合、その違いが指摘されます。

V3 でのブラウザーの使用

V3を使用すると、必要なJavaScriptファイル用のSDKのみをブラウザにバンドルして含めることができ、オーバーヘッドが軽減されます。

HTML ページで SDK for JavaScript の V3 を使用するには、Webpack を使用して、必要なクライアントモジュールと必要なすべての JavaScript 関数を 1 つの JavaScript ファイルにバンドルし、<head>あなたのHTMLページの 次に例を示します。

<script src="./main.js"></script>
注記

Webpack の詳細については、「」を参照してください。Webpack を使用したアプリケーションのバンドル

JavaScript 用 SDK の V2 を使用するには、代わりに V2 SDK の最新バージョンを指すスクリプトタグを追加します。詳細については、「」を参照してください。https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-browser.html#getting-started-browser-run-sampleSDK for JavaScript v2 開発者ガイド。

一般的ユースケース

ブラウザスクリプトで SDK for JavaScript を使用すると、多くの魅力的なユースケースを実現できます。さまざまなウェブサービスにアクセスするため、JavaScript 用 SDK を使用してブラウザアプリケーションで作成できるものについて、次にいくつかの例を示します。

  • カスタムコンソールをビルドしてAWSのサービスで、複数のリージョンやサービスにわたる機能にアクセスし、それらを組み合わせて組織やプロジェクトのニーズが最大限に満たされるようにする。

  • Amazon Cognito Identity を使用して、認証されたユーザーがブラウザアプリケーションやウェブサイトにアクセスできるようにする。Facebook やその他のサードパーティーによる認証の使用が含まれる。

  • Amazon Kinesis を使用して、クリックストリームやその他のマーケティングデータをリアルタイムで処理する。

  • ウェブサイト訪問者またはアプリケーションユーザー向けの個々のユーザー設定などの、サーバーレスデータの永続性のために Amazon DynamoDB を使用します。

  • AWS Lambda を使用して、ダウンロードなしで、知的財産をユーザーに公開することなくブラウザのスクリプトから呼び出すことができる独自のロジックをカプセル化する。

例について

SDK で JavaScript の例を参照するには、「」を参照してください。AWSコード例

Resources

このガイドに加えて、以下の JavaScript 開発者向け SDK 用のオンラインリソースもあります。