新規のお客様への AWS Cloud9 の提供は終了しました。AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
AWS Cloud9 の Node.js チュートリアル
このチュートリアルでは、AWS Cloud9 開発環境でいくつかの Node.js スクリプトを実行できます。
このチュートリアルに従って、このサンプルを作成すると、AWS アカウントに料金が発生する可能性があります。Amazon EC2 や Amazon S3 などのサービスに対して発生する可能性がある料金も含まれます。詳細については、「Amazon EC2 料金表」および「Amazon S3 料金表」を参照してください。
前提条件
このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。
-
既存の AWS Cloud9 EC2 開発環境が存在している必要があります。このサンプルは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境が既にあることを前提としています。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「AWS Cloud9 で環境を作成する」を参照してください。
-
既存の環境に既に AWS Cloud9 IDE が開いています。環境を開くと、AWS Cloud9 によってその環境の IDE がウェブブラウザで開かれます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。
ステップ 1: 必要なツールをインストールする
このステップでは Node.js をインストールして設定します。このサンプルを実行するために必要なものです。
-
AWS Cloud9 IDE のターミナルセッションで、node --version
コマンドを実行して Node.js がインストール済みであるかどうかを確認します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Termina](新しいターミナル)] の順に選択します。) 成功すると、出力に Node.js のバージョン番号が表示されます。Node.js がインストール済みである場合は、ステップ 2: コードを追加するに進んでください。
-
(Amazon Linux の場合) yum update
または (Ubuntu Server の場合) apt update
コマンドを実行して、最新のセキュリティ更新プログラムおよびバグ修正がインストールされていることを確認します。
Amazon Linux の場合:
sudo yum -y update
Ubuntu Server の場合:
sudo apt update
-
Node.js をインストールするには、まず、次のコマンドを実行して Node Version Manager (nvm) をダウンロードします。(nvm は、Node.js のバージョンをインストールして管理するために役立つシンプルな Bash シェルスクリプトです。詳細については、GitHub ウェブサイトの「Node Version Manager」を参照してください。)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
-
nvm の使用を開始するには、ターミナルセッションを閉じてもう一度起動するか、nvm をロードするコマンドを含む ~/.bashrc
ファイルを入手します。
. ~/.bashrc
-
このコマンドを実行して、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 イメージには Node.js 20 がインストールされており、最新の Amazon Linux 2 AWS Cloud9 イメージには Node.js 18 がインストールされています。Node.js 18 を Amazon Linux 2 AWS Cloud9 に手動でインストールする場合は、AWS Cloud9 IDE ターミナルで次のコマンドを実行します。
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: コードを追加する
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: コードを実行する
-
AWS Cloud9 IDEのメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。
-
[[New] - Id]e ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Node.js] を選択します。
-
[Command (コマンド)] に「hello.js 5 9
」と入力します。このコードで、5
は process.argv[2]
を表し、9
は process.argv[3]
を表します (process.argv[0]
はランタイム (node
) の名前、process.argv[1]
はファイル (hello.js
) の名前です)。
-
[Run (実行)] ボタンを選択して、出力を比較します。
Hello, World!
The sum of 2 and 3 is 5.
The sum of 5 and 9 is 14.
ステップ 4: AWS SDK for JavaScript をインストールして設定する
Node.js スクリプトを AWS Cloud9 で実行するとき、 AWS SDK for JavaScript version 3 (V3) と JavaScript version 2 (V2) 用の古いAWS SDK のいずれかを選択することができます。V2 と同様に V3 を使用すると、Amazon Web Services を簡単に操作できますが、TypeScript で記述されており、モジュール化されたパッケージなど、頻繁にリクエストされる複数の機能が追加されています。
- AWS SDK for JavaScript (V3)
-
このサンプルを強化して AWS SDK for JavaScript in Node.js を使用し、Amazon S3 バケットを作成して利用可能なバケットをリストし、その後作成したばかりのバケットを削除します。
このステップでは、AWS SDK for JavaScript in Node.js の Amazon S3 サービスクライアントモジュールをインストールして設定しますが、そうすれば、JavaScript コードから、Amazon S3 AWS サービスを簡単に操作できるようになります。
他のAWS サービスを使いたい場合は、個別にインストールする必要があります。AWS モジュールのインストールの詳細については、AWS デベロッパーガイド (V3)を参照してください。Node.js と AWS SDK for JavaScript (V3) の使用を開始する方法については、「AWS SDK for JavaScript デベロッパーガイド (V3)」の「Node.js での開始方法」を参照してください。
AWS SDK for JavaScript in Node.js をインストールしたあと、環境に認証情報管理を設定する必要があります。AWSSDK for JavaScript in Node.js は、AWS サービスとやりとりをするためにこれらの認証情報を必要とします。
AWS SDK for JavaScript in Node.js をインストールするには
npm を使用して install
コマンドを実行します。
npm install @aws-sdk/client-s3
詳細については、AWS SDK for JavaScript デベロッパーガイドの「SDK for JavaScript のインストール」を参照してください。
環境で認証情報管理を設定するには
AWS SDK for JavaScript in Node.js を使用して AWS のサービスを呼び出すたびに、呼び出しに一連の認証情報を指定する必要があります。これらの認証情報は AWS SDK for JavaScript in Node.js にその呼び出しを行う適切な許可があるかどうかを判別します。認証情報に適切なアクセス権限がない場合、呼び出しは失敗します。
このステップでは、環境内に認証情報を保存します。これを行うには、AWS Cloud9 の環境から AWS のサービス の呼び出し の手順を実行してから、このトピックに戻ります。
詳細については、AWS SDK for JavaScript Dデベロッパーガイドの「Setting Credentials in Node.js (Noda.jp に認証情報を設定)」を参照してください。
- AWS SDK for JavaScript (V2)
-
このサンプルを強化して AWS SDK for JavaScript in Node.js を使用し、Amazon S3 バケットを作成して利用可能なバケットをリストし、その後作成したばかりのバケットを削除します。
このステップでは、AWS SDK for JavaScript in Node.js をインストールして設定します。これを使用すると、Amazon S3 などの AWS サービスを JavaScript コードから簡単に操作できます。AWS SDK for JavaScript in Node.js をインストールしたあと、環境に認証情報管理を設定する必要があります。AWSSDK for JavaScript in Node.js は、AWS サービスとやりとりをするためにこれらの認証情報を必要とします。
AWS SDK for JavaScript in Node.js をインストールするには
npm を使用して install
コマンドを実行します。
npm install aws-sdk
詳細については、AWS SDK for JavaScript デベロッパーガイドの「SDK for JavaScript のインストール」を参照してください。
環境で認証情報管理を設定するには
AWS SDK for JavaScript in Node.js を使用して AWS のサービスを呼び出すたびに、呼び出しに一連の認証情報を指定する必要があります。これらの認証情報は AWS SDK for JavaScript in Node.js にその呼び出しを行う適切な許可があるかどうかを判別します。認証情報に適切なアクセス権限がない場合、呼び出しは失敗します。
このステップでは、環境内に認証情報を保存します。これを行うには、AWS Cloud9 の環境から AWS のサービス の呼び出し の手順を実行してから、このトピックに戻ります。
詳細については、AWS SDK for JavaScript デベロッパーガイドの「Setting Credentials in Node.js (Noda.jp に認証情報を設定)」を参照してください。
ステップ 5: AWS SDK コードを追加する
- 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 コードを実行する
-
npm を使用して install
コマンドを実行すると、コードによる Amazon S3 オペレーションの非同期的に呼び出しが有効になります。
npm install async
-
AWS Cloud9 IDEのメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。
-
[[New] - Id]e ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Node.js] を選択します。
-
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 については、の「Amazon Simple Storage Service (Amazon S3)Amazon Web Services 全般のリファレンス」を参照してください。
Amazon S3 バケット名は AWS アカウント内で一意であるだけでなく、 AWS で一意である必要があります。
-
[Run (実行)] ボタンを選択して、出力を比較します。
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: クリーンアップする
このサンプルを使用し終わった後 AWS アカウントで料金が継続的に発生するのを防ぐには、環境を削除する必要があります。手順については、AWS Cloud9 で環境を削除する を参照してください。