

AWS SDK for JavaScript v2 はサポート終了となりました。[AWS SDK for JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) に移行することをお勧めします。その他の詳細、移行方法については、こちらの[発表内容](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)を参照してください。

# Node.js での使用開始
<a name="getting-started-nodejs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**この Node.js コード例は以下を示しています。**
+ プロジェクトの `package.json` マニフェストを作成する方法。
+ プロジェクトが使用するモジュールをインストールして含める方法。
+ `AWS.S3` クライアントクラスから Amazon Simple Storage Service (Amazon S3) のサービスオブジェクトを作成する方法。
+ Amazon S3 バケットを作成して、そのバケットにオブジェクトをアップロードする方法。

## シナリオ
<a name="getting-started-nodejs-scenario"></a>

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

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

## 前提条件タスク
<a name="getting-started-nodejs-prerequisites"></a>

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
+ Node.js モジュールを開発するための作業ディレクトリを作成します。このディレクトリに `awsnodesample` という名前を付けます。ディレクトリはアプリケーションで更新できる場所に作成する必要があることに注意してください。たとえば Windows では、ディレクトリを「C:\$1Program Files」の下に作成しないでください。
+ Node.js をインストールします。詳細については、[Node.js のウェブサイト](https://nodejs.org)を参照してください。[https://nodejs.org/en/download/current/](https://nodejs.org/en/download/current/) に、さまざまなオペレーティングシステム用の Node.js の現在および LTS バージョンのダウンロードがあります。

**Contents**
+ [シナリオ](#getting-started-nodejs-scenario)
+ [前提条件タスク](#getting-started-nodejs-prerequisites)
+ [ステップ 1: SDK および依存関係をインストール](#getting-started-nodejs-install-sdk)
+ [ステップ 2: 認証情報を設定](#getting-started-nodejs-credentials)
+ [ステップ 3: プロジェクトの JSON パッケージを作成](#getting-started-nodejs-download)
+ [ステップ 4: Node.js コードを記述する](#getting-started-nodejs-js-code)
+ [ステップ 5: サンプルを実行する](#getting-started-nodejs-run-sample)

## ステップ 1: SDK および依存関係をインストール
<a name="getting-started-nodejs-install-sdk"></a>

[npm (Node.js パッケージマネージャー)](https://www.npmjs.com) を使用して、SDK for JavaScript パッケージをインストールします。

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

```
npm install aws-sdk
```

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

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

```
npm install uuid
```

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

Node.js パッケージのインストールの詳細については、[npm (Node.js パッケージマネージャー) ウェブサイト](https://www.npmjs.com)の[パッケージをローカルでダウンロードしてインストールする](https://docs.npmjs.com/getting-started/installing-npm-packages-locally)および [Node.js モジュールの作成](https://docs.npmjs.com/getting-started/creating-node-modules)を参照してください。AWS SDK for JavaScript のダウンロードとインストールについては、「[SDK for JavaScript のインストール](installing-jssdk.md)」を参照してください。

## ステップ 2: 認証情報を設定
<a name="getting-started-nodejs-credentials"></a>

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

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

```
[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 パッケージを作成
<a name="getting-started-nodejs-download"></a>

`awsnodesample` プロジェクトディレクトリを作成したら、Node.js プロジェクトのメタデータを保持するための `package.json` ファイルを作成して追加します。Node.js プロジェクトでの `package.json` の使用については、「[package.json ファイルの作成](https://docs.npmjs.com/creating-a-package-json-file)」を参照してください。

プロジェクトディレクトリで `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 のここ](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/example_package.json)にあります。

## ステップ 4: Node.js コードを記述する
<a name="getting-started-nodejs-js-code"></a>

サンプルコードを含めるために、`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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/sample.js)にあります。

## ステップ 5: サンプルを実行する
<a name="getting-started-nodejs-run-sample"></a>

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

```
node sample.js
```

アップロードが成功すると、コマンドラインに確認メッセージが表示されます。[Amazon S3 コンソール](https://console.aws.amazon.com/s3/)にもバケットとアップロードされたテキストオブジェクトがあります。