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

Feedback(フィードバック)リンクを使用してフィードバックを提供するか、GitHub で問題またはプルリクエストを作成して、AWS SDK for JavaScript のバージョン3(V3)のドキュメントの改善に協力してください。

-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 forAWSのサービス。♪ JavaScript ライブラリまたはアプリケーションをビルドする APINode.jsまたは、ブラウザを使用します。


      間の関係 JavaScript 環境、SDK、およびAmazon Web Services

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

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

バージョン 3 の新機能

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

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

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

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

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

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

重要

このガイドの V3 のコード例は、ECMAScript 6 (ES6) で記述されています。ES6 は、コードをよりモダンで読みやすくし、さらに多くのことを可能にする新しい構文と新機能を提供します。ES6 では Node.js バージョン 13.x 以上を使用する必要があります。Node.js の最新バージョンをダウンロードしてインストールするには、「」を参照してください。Node.js ダウンロード。詳細については、「」を参照してくださいJavaScript ES6/CommonJS 構文

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

用の SDK バージョン 2 JavaScript (V2) 全体を使用する必要がありましたAWSSDK、以下の通り。

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

アプリケーションが多く使用している場合、SDK 全体のロードは問題になりませんAWSのサービス。ただし、ほんの数分だけ使用する必要がある場合はAWSサービスでは、不要なコードや使用しないコードを使用してアプリケーションのサイズを増やすことを意味します。

V3では個人だけ読み込んで使えるAWS必要なサービス。これを次の例に示し、Amazon DynamoDB (DynamoDB) にアクセスできるようにします。

import {DynamoDB} from "@aws-sdk/client-dynamodb";

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

import { DynamoDBClient, ListTablesCommand } from @aws-sdk/client-dynamodb"
重要

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

import {CognitoIdentity} from "@aws-sdk/client-cognito-identity/CognitoIdentity";

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

import {CognitoIdentity} from "@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 は次のようになります。

import { DynamoDBClient, ListTablesCommand } from "@aws-sdk/client-dynamodb"; (async function () { 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 を追加します。置換var AWS = require("aws-sdk")import {DynamoDB} from "@aws-sdk/client-dynamodb"そのオーバーヘッドを約 3 MB に減らします。インポートを DynamoDB クライアントのみに制限し、ListTablesCommandコマンドを使用すると、オーバーヘッドが 100 KB 未満に削減されます。

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

V3 でコマンドを呼び出す

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

V2 コマンドを使用するには、必要なコマンドをインポートします。AWSパッケージにサービスを提供し、コールバックまたは async/await パターンを使用して、パッケージ内で直接 V2 コマンドを実行します。

V3 コマンドの使用

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

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

import {DynamoDB, CreateTableCommand} from "@aws-sdk/client-dynamodb";

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

CLIENT.send(new XXXCommand)

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

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

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

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

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

client.command(parameters)

次の例ではV2 を使用しています。createTable推奨の async/await パターンを使用して 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();

次の例ではV2 を使用しています。createBucketコールバックパターンを使用して 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 の使用方法が異なる場合、その違いが指摘されます。

AWS Cloud9 による SDK の使用

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

AWS Amplify による SDK の使用

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

注記

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

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

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

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

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

V3 でブラウザーを使う

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

SDK の V3 を以下に使用するには JavaScript HTML ページでは、必要なクライアントモジュールと必要なすべてのクライアントモジュールをバンドルする必要があります JavaScript 関数を単一にする JavaScript Webpack を使用してファイルを追加し、<head>あなたのHTMLページです。例:

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

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

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

一般的ユースケース

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

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

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

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

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

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

例について

SDK をブラウズして JavaScript の例を参照してください。AWSコード例リポジトリ

リソース

このガイドに加えて、以下の用のSDK 用のオンラインリソースも利用できます。 JavaScript 開発者: