Node.js での使用開始 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Node.js での使用開始

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • プロジェクトの package.json マニフェストを作成する方法。

  • プロジェクトが使用するモジュールをインストールして含める方法。

  • AWS.S3 クライアントクラスから Amazon Simple Storage Service (Amazon S3) のサービスオブジェクトを作成する方法。

  • Amazon S3 バケットを作成して、そのバケットにオブジェクトをアップロードする方法。

シナリオ

この例では、Amazon S3 バケットを作成してテキストオブジェクトを追加する、簡単な Node.js モジュールを設定して実行する方法を示します。

Amazon S3 のバケット名はグローバルに一意である必要があるため、この例には、バケット名に組み込むことができる一意の ID 値を生成するサードパーティーの Node.js モジュールが含まれています。この追加モジュールの名前は uuid です。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。

  • Node.js モジュールを開発するための作業ディレクトリを作成します。このディレクトリに awsnodesample という名前を付けます。ディレクトリはアプリケーションで更新できる場所に作成する必要があることに注意してください。たとえば Windows では、ディレクトリを「C:\Program Files」の下に作成しないでください。

  • Node.js をインストールします。詳細については、Node.js のウェブサイトを参照してください。https://nodejs.org/en/download/current/ に、さまざまなオペレーティングシステム用の Node.js の現在および LTS バージョンのダウンロードがあります。

ステップ 1: SDK および依存関係をインストール

npm (Node.js パッケージマネージャー) を使用して、SDK for JavaScript パッケージをインストールします。

パッケージの awsnodesample ディレクトリのコマンドラインで以下を入力します。

npm install aws-sdk

このコマンドはプロジェクトに SDK for JavaScript をインストールして、package.json を更新し、SDK をプロジェクトの依存関係として一覧表示します。このパッケージに関する情報は、npm ウェブサイトで「aws-sdk」を検索すると見つかります。

次に、コマンドラインに次のように入力して uuid モジュールをプロジェクトにインストールします。これによりモジュールがインストールされ、package.json が更新されます。uuid の詳細については、https://www.npmjs.com/package/uuid のモジュールのページを参照してください。

npm install uuid

これらのパッケージとそれに関連するコードは、プロジェクトの node_modules サブディレクトリにインストールされています。

Node.js パッケージのインストールの詳細については、npm (Node.js パッケージマネージャー) ウェブサイトパッケージをローカルでダウンロードしてインストールするおよび Node.js モジュールの作成を参照してください。AWS SDK for JavaScript のダウンロードとインストールについては、「SDK for JavaScript のインストール」を参照してください。

ステップ 2: 認証情報を設定

アカウントとそのリソースのみが SDK でアクセスされるように、AWS に認証情報を提供する必要があります。アカウント認証情報を取得する方法の詳細については、「AWS による SDK 認証」を参照してください。

この情報を保持するために、共有認証情報ファイルを作成することをお勧めします。この方法の詳細は、共有認証情報ファイルから Node.js に認証情報をロードするを参照してください。認証情報ファイルは次の例のようになります。

[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

Node.js で次のコードを実行して、認証情報を正しく設定しているかどうかを確認できます。

var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });

同様に、config ファイルでリージョンを正しく設定している場合は、AWS_SDK_LOAD_CONFIG 環境変数を任意の値に設定し、次のコードを使用して、その値を表示できます。

var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);

ステップ 3: プロジェクトの JSON パッケージを作成

awsnodesample プロジェクトディレクトリを作成したら、Node.js プロジェクトのメタデータを保持するための package.json ファイルを作成して追加します。Node.js プロジェクトでの package.json の使用については、「package.json ファイルの作成」を参照してください。

プロジェクトディレクトリで package.json という名前の新しいファイルを作成します。次にこの JSON をファイルに追加します。

{ "dependencies": {}, "name": "aws-nodejs-sample", "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.", "version": "1.0.1", "main": "sample.js", "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "NAME", "license": "ISC" }

ファイルを保存します。必要なモジュールをインストールすると、ファイルの dependencies の部分が完成します。これらの依存関係の例を示す JSON ファイルが GitHub のここにあります。

ステップ 4: Node.js コードを記述する

サンプルコードを含めるために、sample.js という名前の新しいファイルを作成します。SDK for JavaScript および uuid モジュールを含めるために require 関数呼び出しを追加して開始すると、それらが利用可能になります。

認識可能なプレフィックスに一意の ID 値を追加することで、Amazon S3 バケットの作成に使用する一意のバケット名を作成します。この場合は、'node-sdk-sample-' です。uuid モジュールを呼び出して一意の ID を生成します。次に、オブジェクトをバケットにアップロードするために使用される Key パラメータの名前を作成します。

AWS.S3 サービスオブジェクトの createBucket メソッドを呼び出す promise オブジェクトを作成します。応答が成功したら、新しく作成したバケットにテキストをアップロードするために必要なパラメータを作成します。別の promise を使用して、putObject メソッドを呼び出してテキストオブジェクトをバケットにアップロードします。

// Load the SDK and UUID var AWS = require("aws-sdk"); var uuid = require("uuid"); // Create unique bucket name var bucketName = "node-sdk-sample-" + uuid.v4(); // Create name for uploaded object key var keyName = "hello_world.txt"; // Create a promise on S3 service object var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .createBucket({ Bucket: bucketName }) .promise(); // Handle promise fulfilled/rejected states bucketPromise .then(function (data) { // Create params for putObject call var objectParams = { Bucket: bucketName, Key: keyName, Body: "Hello World!", }; // Create object upload promise var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .putObject(objectParams) .promise(); uploadPromise.then(function (data) { console.log( "Successfully uploaded data to " + bucketName + "/" + keyName ); }); }) .catch(function (err) { console.error(err, err.stack); });

このサンプルコードは、このGitHubにあります。

ステップ 5: サンプルを実行する

サンプルを実行するには、次のコマンドを入力します。

node sample.js

アップロードが成功すると、コマンドラインに確認メッセージが表示されます。Amazon S3 コンソールにもバケットとアップロードされたテキストオブジェクトがあります。