AWS SDK for JavaScriptは何ですか。 - AWS SDK for JavaScript

-AWS SDK for JavaScript[V3 API] リファレンスガイドのすべての API 操作を詳細に説明しますAWS SDK for JavaScriptバージョン 3 (V3)。

2022 年 10 月 1 日からAWS SDK for JavaScript(v3) は、インターネットエクスプローラー 11 (IE 11) のサポートを終了します。詳細については、「」を参照してください。インターネットエクスプローラ11のサポート終了を発表AWS SDK for JavaScript(v3)

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

AWS SDK for JavaScriptは何ですか。

AWS SDK for JavaScript デベロッパーガイドへようこそ。このガイドは、AWS SDK for JavaScriptのセットアップおよび設定に関する一般的な情報を提供します。AWS SDK for JavaScriptを使用してさまざまなAWSのサービスを実行する例やチュートリアルも紹介されています。

-AWS SDK for JavaScriptv3 API リファレンスガイド以下の内容を指定します JavaScript API forAWSのサービス。以下を使用できます JavaScript ライブラリやアプリケーションをビルドするための APINode.jsまたはブラウザ。


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

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

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

バージョン 3 の新機能とは

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

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

ユーザーは、サービスごとに個別のパッケージを使用できます。

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

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

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

重要

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

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

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

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

アプリケーションが多くのAWSのサービスを使用している場合、SDK 全体のロードは問題はありません。ただし、わずかの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)では、us-west-2の地域内のすべての「Amazon DynamoDB」(Amazon DynamoDB)表を一覧表示する簡単なコード例は次のようになります。

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のパッケージは、アプリケーションに約40MBを追加します。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のサービスパッケージクライアントをインポートし、非同期/待機パターンを使用する.sendのメソッドを使用するコマンドを実行します。

V2 コマンドを使用するには、必要なAWSのサービスパッケージをインポートし、コールバックまたは非同期/待機パターンのどちらかを使用するパッケージ内で直接 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";

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

CLIENT.send(new XXXCommand)

例えば、次の例では、推奨される非同期/待機 パターンを使用して 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 で V2 コマンドを使用するには JavaScript、フルをインポートします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 アプリケーション。Node.js を Amazon Elastic Compute Cloud (Amazon EC2 )インスタンスで設定してサーバーで実行できます。Node.js を使用してオンデマンドの AWS Lambda 関数を書き込むこともできます。

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

AWS Cloud9 による SDK の使用

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

AWS Amplify による SDK の使用

ブラウザベースの Web、モバイル、ハイブリッドアプリケーションの場合は、AWS Amplifyでの GitHub。SDKを次のように拡張します JavaScript宣言タイプインターフェイスを提供します。

注記

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

ウェブブラウザで SDK を使用します。

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

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

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

V3 でブラウザーを使用

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

SDK の V3 を使用するには JavaScript HTMLページには、必要なクライアントモジュールと必要なすべてのものをバンドルする必要があります JavaScript 機能を 1 つに 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 for を使用してブラウザアプリケーションで作成できるものについて、次にいくつかの例を示します。 JavaScript さまざまな Web サービスにアクセスします。

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

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

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

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

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

例について

SDK を閲覧するには JavaScript の例AWSコードサンプルリポジトリ

リソース

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