AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表
Node.js での使用開始
この 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 パッケージマネージャー)
パッケージの awsnodesample
ディレクトリのコマンドラインで以下を入力します。
npm install aws-sdk
このコマンドはプロジェクトに SDK for JavaScript をインストールして、package.json
を更新し、SDK をプロジェクトの依存関係として一覧表示します。このパッケージに関する情報は、npm ウェブサイト
次に、コマンドラインに次のように入力して uuid
モジュールをプロジェクトにインストールします。これによりモジュールがインストールされ、package.json
が更新されます。uuid
の詳細については、https://www.npmjs.com/package/uuid
npm install uuid
これらのパッケージとそれに関連するコードは、プロジェクトの node_modules
サブディレクトリにインストールされています。
Node.js パッケージのインストールの詳細については、npm (Node.js パッケージマネージャー) ウェブサイト
ステップ 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 コンソール