

 AWS Cloud9 は新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# の Node.js チュートリアル AWS Cloud9
<a name="sample-nodejs"></a>

このチュートリアルでは、 AWS Cloud9 開発環境でいくつかの Node.js スクリプトを実行できます。

このチュートリアルに従い、このサンプルを作成すると、 AWS アカウントに料金が発生する可能性があります。Amazon EC2 や Amazon S3 などのサービスに対して発生する可能性がある料金も含まれます。詳細については、「[Amazon EC2 料金表](https://aws.amazon.com/ec2/pricing/)」および「[Amazon S3 料金表](https://aws.amazon.com/s3/pricing/)」を参照してください。

**Topics**
+ [前提条件](#sample-nodejs-prereqs)
+ [ステップ 1: 必要なツールをインストールする](#sample-nodejs-install)
+ [ステップ 2: コードを追加する](#sample-nodejs-code)
+ [ステップ 3: コードを実行する](#sample-nodejs-run)
+ [ステップ 4: Node.js で AWS SDK for JavaScript をインストールして設定する](#sample-nodejs-sdk)
+ [ステップ 5: AWS SDK コードを追加する](#sample-nodejs-sdk-code)
+ [ステップ 6: AWS SDK コードを実行する](#sample-nodejs-sdk-run)
+ [ステップ 7: クリーンアップする](#sample-nodejs-clean-up)

## 前提条件
<a name="sample-nodejs-prereqs"></a>

このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。
+ **既存の AWS Cloud9 EC2 開発環境が必要です。**このサンプルは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境が既にあることを前提としています。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「[での環境の作成 AWS Cloud9](create-environment.md)」を参照してください。
+ **既存の環境の AWS Cloud9 IDE が既に開いている。**環境を開くと、 はウェブブラウザでその環境の IDE AWS Cloud9 を開きます。詳細については、「[で環境を開く AWS Cloud9](open-environment.md)」を参照してください。

## ステップ 1: 必要なツールをインストールする
<a name="sample-nodejs-install"></a>

このステップでは Node.js をインストールして設定します。このサンプルを実行するために必要なものです。

1.  AWS Cloud9 IDE のターミナルセッションで、 ** `node --version` ** コマンドを実行して Node.js が既にインストールされているかどうかを確認します。(新しいターミナルセッションを開始するには、メニューバーで、［**Window (ウィンドウ)**]、［**New Termina］(新しいターミナル)**] の順に選択します。) 成功すると、出力に Node.js のバージョン番号が表示されます。Node.js がインストール済みである場合は、[ステップ 2: コードを追加する](#sample-nodejs-code)に進んでください。

1. (Amazon Linux の場合) ** `yum update` ** または (Ubuntu Server の場合) ** `apt update` ** コマンドを実行して、最新のセキュリティ更新プログラムおよびバグ修正がインストールされていることを確認します。

   Amazon Linux の場合:

   ```
   sudo yum -y update
   ```

   Ubuntu Server の場合:

   ```
   sudo apt update
   ```

1. Node.js をインストールするには、まず、次のコマンドを実行して Node Version Manager (nvm) をダウンロードします。(nvm は、Node.js のバージョンをインストールして管理するために役立つシンプルな Bash シェルスクリプトです。詳細については、GitHub ウェブサイトの「[Node Version Manager](https://github.com/creationix/nvm/blob/master/README.md)」を参照してください。)

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
   ```

1. nvm の使用を開始するには、ターミナルセッションを閉じてもう一度起動するか、nvm をロードするコマンドを含む `~/.bashrc` ファイルを入手します。

   ```
   . ~/.bashrc
   ```

1. このコマンドを実行して、Amazon Linux 2、Amazon Linux 1、および Ubuntu 18.04 に Node.js 16 をインストールします。Amazon Linux 1 インスタンスと Ubuntu 18.04 インスタンスは v16 までの Node.js のみをサポートします。

   ```
   nvm install 16
   ```

   このコマンドを実行して、Amazon Linux 2023 および Ubuntu 22.04 に最新バージョンの Node.js をインストールします。

   ```
   nvm install --lts && nvm alias default lts/*
   ```
**注記**  
最新の AL2023 AWS Cloud9 image には Node.js 20 がインストールされ、最新の Amazon Linux 2 AWS Cloud9 image には Node.js 18 がインストールされています。Amazon Linux 2 に Node.js 18 AWS Cloud9 を手動でインストールする場合は、IDE AWS Cloud9 ターミナルで次のコマンドを実行します。  

   ```
   C9_NODE_INSTALL_DIR=~/.nvm/versions/node/v18.17.1
   C9_NODE_URL=https://d3kgj69l4ph6w4.cloudfront.net/static/node-amazon/node-v18.17.1-linux-x64.tar.gz
   mkdir -p $C9_NODE_INSTALL_DIR
   curl -fSsl $C9_NODE_URL  | tar xz --strip-components=1 -C "$C9_NODE_INSTALL_DIR"
   nvm alias default v18.17.1
   nvm use default
   echo -e 'nvm use default' >> ~/.bash_profile
   ```

## ステップ 2: コードを追加する
<a name="sample-nodejs-code"></a>

 AWS Cloud9 IDE で、このコンテンツを含むファイルを作成し、 という名前でファイルを保存します`hello.js`。(メニューバーでファイルを作成するには、**ファイル**、**New File (新しいファイル)**を選択します。 ファイルを保存するには、**ファイル**、**保存**を選択します。)

```
console.log('Hello, World!');

console.log('The sum of 2 and 3 is 5.');

var sum = parseInt(process.argv[2], 10) + parseInt(process.argv[3], 10);

console.log('The sum of ' + process.argv[2] + ' and ' +
  process.argv[3] + ' is ' + sum + '.');
```

## ステップ 3: コードを実行する
<a name="sample-nodejs-run"></a>

1.  AWS Cloud9 IDE のメニューバーで、**実行**、**設定の実行**、**新しい実行設定**を選択します。

1. ［**［New] - Id］e (［新規] - アイドル)**] タブで、［**Runner: Auto (ランナー: 自動)**] を選択し、［**Node.js**] を選択します。

1. ［**Command (コマンド)**] に「`hello.js 5 9`」と入力します。このコードで、`5` は `process.argv[2]` を表し、`9` は `process.argv[3]` を表します (`process.argv[0]` はランタイム (`node`) の名前、`process.argv[1]` はファイル (`hello.js`) の名前です)。

1. ［**Run (実行)**] ボタンを選択して、出力を比較します。

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[IDE でコードを実行した後の Node.js AWS Cloud9 出力\]](http://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/images/ide-nodejs-simple.png)


## ステップ 4: Node.js で AWS SDK for JavaScript をインストールして設定する
<a name="sample-nodejs-sdk"></a>

で Node.js スクリプトを実行する場合 AWS Cloud9、 AWS SDK for JavaScript バージョン 3 (V3) と古い AWS SDK for JavaScript バージョン 2 (V2) のいずれかを選択できます。V2 と同様に V3 を使用すると、Amazon Web Services を簡単に操作できますが、TypeScript で記述されており、モジュール化されたパッケージなど、頻繁にリクエストされる複数の機能が追加されています。

------
#### [ AWS SDK for JavaScript (V3) ]

このサンプルを強化して、Node.js で AWS SDK for JavaScript を使用して Amazon S3 バケットを作成し、使用可能なバケットを一覧表示してから、作成したばかりのバケットを削除できます。

このステップでは、 AWS SDK for JavaScript in Node.js の Amazon S3 サービスクライアントモジュールをインストールして設定しますが、そうすれば、JavaScript コードから、Amazon S3 AWS サービスを簡単に操作できるようになります。

他の AWS サービスを使用する場合は、個別にインストールする必要があります。 AWS モジュールのインストールの詳細については、「 [*AWS デベロッパーガイド (V3)*」の「」を参照してください。](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/working-with-services)Node.js と AWS SDK for JavaScript (V3) の使用を開始する方法については、 SDK for JavaScript [ 開発者ガイド (V3) の「Node.js の使用を開始する](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html#getting-started-nodejs-setup-structure)」を参照してください。 *AWS JavaScript *

 Node.js に AWS SDK for JavaScript をインストールしたら、 環境で認証情報管理を設定する必要があります。Node.js の AWS SDK for JavaScript では、 サービスとやり取り AWS するためにこれらの認証情報が必要です。

**Node.js に AWS SDK for JavaScript をインストールするには**

npm を使用して **`install`** コマンドを実行します。

```
npm install @aws-sdk/client-s3
```

詳細については、*AWS SDK for JavaScript デベロッパーガイド*の「[SDK for JavaScript のインストール](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up.html#installing-jssdk)」を参照してください。

**環境で認証情報管理を設定するには**

Node.js で AWS SDK for JavaScript を使用して AWS サービスを呼び出すたびに、呼び出しで一連の認証情報を指定する必要があります。これらの認証情報は AWS SDK for JavaScript in Node.js にその呼び出しを行う適切な許可があるかどうかを判別します。認証情報に適切なアクセス権限がない場合、呼び出しは失敗します。

このステップでは、環境内に認証情報を保存します。これを行うには、[の環境 AWS のサービス からの呼び出し AWS Cloud9](credentials.md) の手順を実行してから、このトピックに戻ります。

詳細については、*AWS SDK for JavaScript デベロッパーガイド*の「[Setting Credentials in Node.js (Noda.jp に認証情報を設定)](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html)」を参照してください。

------
#### [ AWS SDK for JavaScript (V2) ]

このサンプルを強化して、Node.js で AWS SDK for JavaScript を使用して Amazon S3 バケットを作成し、使用可能なバケットを一覧表示してから、作成したばかりのバケットを削除できます。

このステップでは、 AWS SDK for JavaScript を Node.js にインストールして設定します。これにより、JavaScript コードから Amazon S3 などの AWS サービスとやり取りする便利な方法が提供されます。Node.js に AWS SDK for JavaScript をインストールしたら、環境で認証情報管理を設定する必要があります。Node.js の AWS SDK for JavaScript では、 サービスとやり取り AWS するためにこれらの認証情報が必要です。

**Node.js に AWS SDK for JavaScript をインストールするには**

npm を使用して **`install`** コマンドを実行します。

```
npm install aws-sdk
```

詳細については、*AWS SDK for JavaScript デベロッパーガイド*の「[SDK for JavaScript のインストール](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/installing-jssdk.html)」を参照してください。

**環境で認証情報管理を設定するには**

Node.js で AWS SDK for JavaScript を使用して AWS サービスを呼び出すたびに、呼び出しで一連の認証情報を指定する必要があります。これらの認証情報は AWS SDK for JavaScript in Node.js にその呼び出しを行う適切な許可があるかどうかを判別します。認証情報に適切なアクセス権限がない場合、呼び出しは失敗します。

このステップでは、環境内に認証情報を保存します。これを行うには、[の環境 AWS のサービス からの呼び出し AWS Cloud9](credentials.md) の手順を実行してから、このトピックに戻ります。

詳細については、*AWS SDK for JavaScript デベロッパーガイド*の「[Setting Credentials in Node.js (Noda.jp に認証情報を設定)](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html)」を参照してください。

------

## ステップ 5: AWS SDK コードを追加する
<a name="sample-nodejs-sdk-code"></a>

------
#### [ AWS SDK for JavaScript (V3) ]

このステップでは、今度は Amazon S3 を操作してバケットを作成し、利用できるバケットのリストを表示した後、作成したバケットを削除するコードをいくつか追加します。このコードは後で実行します。

 AWS Cloud9 IDE で、このコンテンツを含むファイルを作成し、 という名前でファイルを保存します`s3.js`。

```
import {
  CreateBucketCommand,
  DeleteBucketCommand,
  ListBucketsCommand,
  S3Client,
} from "@aws-sdk/client-s3";

const wait = async (milliseconds) => {
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
};

export const main = async () => {
  const client = new S3Client({});
  const now = Date.now();
  const BUCKET_NAME = `easy-bucket-${now.toString()}`;

  const createBucketCommand = new CreateBucketCommand({ Bucket: BUCKET_NAME });
  const listBucketsCommand = new ListBucketsCommand({});
  const deleteBucketCommand = new DeleteBucketCommand({ Bucket: BUCKET_NAME });

  try {
    console.log(`Creating bucket ${BUCKET_NAME}.`);
    await client.send(createBucketCommand);
    console.log(`${BUCKET_NAME} created`);

    await wait(2000);

    console.log(`Here are your buckets:`);
    const { Buckets } = await client.send(listBucketsCommand);
    Buckets.forEach((bucket) => {
      console.log(` • ${bucket.Name}`);
    });

    await wait(2000);

    console.log(`Deleting bucket ${BUCKET_NAME}.`);
    await client.send(deleteBucketCommand);
    console.log(`${BUCKET_NAME} deleted`);
  } catch (err) {
    console.error(err);
  }
};

main();
```

------
#### [ AWS SDK for JavaScript (V2) ]

このステップでは、今度は Amazon S3 を操作してバケットを作成し、利用できるバケットのリストを表示した後、作成したバケットを削除するコードをいくつか追加します。このコードは後で実行します。

 AWS Cloud9 IDE で、このコンテンツを含むファイルを作成し、 という名前でファイルを保存します`s3.js`。

```
if (process.argv.length < 4) {
  console.log(
    "Usage: node s3.js <the bucket name> <the AWS Region to use>\n" +
      "Example: node s3.js my-test-bucket us-east-2"
  );
  process.exit(1);
}

var AWS = require("aws-sdk"); // To set the AWS credentials and region.
var async = require("async"); // To call AWS operations asynchronously.

AWS.config.update({
  region: region,
});

var s3 = new AWS.S3({ apiVersion: "2006-03-01" });
var bucket_name = process.argv[2];
var region = process.argv[3];

var create_bucket_params = {
  Bucket: bucket_name,
  CreateBucketConfiguration: {
    LocationConstraint: region,
  },
};

var delete_bucket_params = { Bucket: bucket_name };

// List all of your available buckets in this AWS Region.
function listMyBuckets(callback) {
  s3.listBuckets(function (err, data) {
    if (err) {
    } else {
      console.log("My buckets now are:\n");

      for (var i = 0; i < data.Buckets.length; i++) {
        console.log(data.Buckets[i].Name);
      }
    }

    callback(err);
  });
}

// Create a bucket in this AWS Region.
function createMyBucket(callback) {
  console.log("\nCreating a bucket named " + bucket_name + "...\n");

  s3.createBucket(create_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Delete the bucket you just created.
function deleteMyBucket(callback) {
  console.log("\nDeleting the bucket named " + bucket_name + "...\n");

  s3.deleteBucket(delete_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Call the AWS operations in the following order.
async.series([
  listMyBuckets,
  createMyBucket,
  listMyBuckets,
  deleteMyBucket,
  listMyBuckets,
]);
```

------

## ステップ 6: AWS SDK コードを実行する
<a name="sample-nodejs-sdk-run"></a>

1. npm を使用して ** `install` ** コマンドを実行すると、コードによる Amazon S3 オペレーションの非同期的に呼び出しが有効になります。

   ```
   npm install async
   ```

1.  AWS Cloud9 IDE のメニューバーで、**実行**、**実行設定**、**新しい実行設定**を選択します。

1. ［**［New] - Id］e (［新規] - アイドル)**] タブで、［**Runner: Auto (ランナー: 自動)**] を選択し、［**Node.js**] を選択します。

1.  AWS SDK for JavaScript (V3) を使用している場合は、 **コマンド**タイプ に `s3.js`。 AWS SDK for Javascript (v2) を使用している場合、**コマンド**タイプ の場合`s3.js my-test-bucket us-east-2`、 `my-test-bucket`は作成して削除するバケットの名前、 `us-east-2`はバケットを作成する AWS リージョンの ID です。他の ID については、[の「](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)Amazon Simple Storage Service (Amazon S3)*Amazon Web Services 全般のリファレンス*」を参照してください。
**注記**  
Amazon S3 バケット名は、アカウント AWS だけでなく AWS、 全体で一意である必要があります。

1. ［**実行**］ボタンを選択して、出力を比較します。

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## ステップ 7: クリーンアップする
<a name="sample-nodejs-clean-up"></a>

このサンプルの使用が完了した後に AWS アカウントで継続的に課金されないようにするには、環境を削除する必要があります。手順については、[での環境の削除 AWS Cloud9](delete-environment.md) を参照してください。