Node.js 教學課程 AWS Cloud9 - AWS Cloud9

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Node.js 教學課程 AWS Cloud9

本教學課程可讓您在 AWS Cloud9 開發環境中執行一些 Node.js 指令碼。

遵循本教學課程並建立此範例可能會對您的 AWS 帳戶產生費用。其中包括 Amazon EC2 和 Amazon S3 這類服務可能的費用。如需詳細資訊,請參閱 Amazon EC2 定價Amazon S3 定價

必要條件

在您使用此範例前,請務必確認您的設定符合下列要求:

  • 您必須擁有現有的 AWS Cloud9 EC2 開發環境。本範例假設您已具備 EC2 環境,且該環境已連線到執行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 執行個體。如果您有不同類型的環境或作業系統,您可能需要依照此範例的說明來設定相關工具。如需詳細資訊,請參閱 在 AWS Cloud9 中建立環境

  • 您已開啟現有環境的 AWS Cloud9 IDE。當您開 AWS Cloud9 啟環境時,會在網頁瀏覽器中開啟該環境的 IDE。如需詳細資訊,請參閱 在 AWS Cloud9 中開啟環境

步驟 1:安裝必要工具

在此步驟中,您將安裝 Node.js,其為執行本範例的必要元件。

  1. 在 AWS Cloud9 IDE 的終端機工作階段中,透過執行node --version命令確認是否已安裝 Node.js。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機)。如果成功,輸出會包含 Node.js 版本編號。若 Node.js 已安裝,請跳至步驟 2:新增程式碼

  2. 執行 yum update (適用於 Amazon Linux) 或 apt update (適用於 Ubuntu Server) 命令,協助確保已安裝最新安全性更新和錯誤修正。

    針對 Amazon Linux:

    sudo yum -y update

    針對 Ubuntu Server:

    sudo apt update
  3. 若要安裝 Node.js,請先執行此命令以下載節點版本管理員 (nvm)。 (nvm 是一個簡單的 Bash 外殼腳本,對於安裝和管理 Node.js 版本非常有用。 如需詳細資訊,請參閱 GitHub 網站上的節點版本管理員。)

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  4. 若要開始使用 nvm,請先關閉終端機工作階段並再次啟動,或是援引 ~/.bashrc 檔案,其中包含的命令將會載入 nvm。

    . ~/.bashrc
  5. 運行此命令在 Amazon Linux 2 上安裝 Node.js 16, Amazon Linux 1 和 Ubuntu 18.04. Amazon Linux 1 和 18.04 執行個體僅支援最高版本的 Node.js。

    nvm install 16

    運行此命令以在 Amazon 2023 和 Ubuntu 22.04 上安裝最新版本的 Node.js:

    nvm install --lts && nvm alias default lts/*
    注意

    最新的 AL2023 AWS Cloud9 映像已經安裝了 Node.js 20,而最新的 Amazon 2 AWS Cloud9 映像已經安裝了 Node.js 18。如果您想在 Amazon Linux 2 上 AWS Cloud9 手動安裝 Node.js 18,請在 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。(若要建立檔案,請在選單列上選擇 File (檔案)、New File (新增檔案)。若要儲存檔案,請選擇 File (檔案)、Save (儲存)。)

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:執行程式碼

  1. 在 AWS Cloud9 IDE 的功能表列上,選擇 [執行]、[執行]、[新增執行組態]。

  2. [New] - Idle ([新增] - 閒置) 標籤上,選擇 Runner: Auto (執行器: 自動),然後選擇 Node.js

  3. Command (命令) 中輸入 hello.js 5 9。在程式碼中,5 代表 process.argv[2],而 9 代表 process.argv[3]。(process.argv[0] 代表名稱執行時間 (node),而 process.argv[1] 代表檔案名稱 (hello.js))。

  4. 選擇 Run (執行) 按鈕,然後對照您的輸出。

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

            Node.js 在 AWS Cloud9 IDE 中運行代碼後輸出

步驟 4: JavaScript 在 Node.js 中安裝和配置 AWS 軟件開發套件

在中執行 Node.js 指令碼時 AWS Cloud9,您可以選擇 AWS 第 3 JavaScript 版 (V3) 的 AWS SDK 和 JavaScript 版本 2 (V2) 的舊版 SDK。與 V2 一樣,V3 可讓您輕鬆地使用 Amazon Web Services,但是已經寫入 TypeScript並新增了幾個經常要求的功能,例如模組化套件。

AWS SDK for JavaScript (V3)

您可以增強此範例,以使用 Node.js JavaScript 中的 AWS 開發套件建立 Amazon S3 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。

在此步驟中,您可以在 Node.js 中安裝和設定 AWS 開發套件的 Amazon S3 服務用戶端模組,這可讓您透過程式 JavaScript 碼與 Amazon S3 AWS 服務互動提供便利的方式。 JavaScript

如果要使用其他 AWS 服務,則需要單獨安裝它們。如需有關安裝 AWS 模組的詳細資訊,請參閱AWS 發人員指南 (V3) 中的。如需有關如何開始使用 JavaScript (V3) 的 Node.js 和 AWS SDK 的詳細資訊,請參閱 JavaScript發人員適用的AWS SDK 指南 (V3) 中的使用 Node.js 入門。

JavaScript 在 Node.js 中安裝適用的 AWS SDK 之後,您必須在環境中設定認證管理。Node.js JavaScript 中的 AWS SDK 需要這些認證才能與 AWS 服務互動。

若要 JavaScript 在 Node.js 中安裝適用的 AWS 開發套件

使用 npm 執行 install 命令。

npm install @aws-sdk/client-s3

如需詳細資訊,請參閱開AWS SDK for JavaScript 發人員指南 JavaScript中的安裝 SDK

在環境中設定憑證管理

每次您 JavaScript 在 Node.js 中使用的 AWS SDK 呼叫 AWS 服務時,都必須在呼叫中提供一組認證。這些認證會判斷 Node.js JavaScript 中的 AWS SDK 是否具有進行該呼叫的適當權限。若登入資料未涵蓋適當許可,呼叫即會失敗。

在此步驟中,您會在環境中存放您的憑證。若要這麼做,請遵循 從 AWS Cloud9 的環境呼叫 AWS 服務 中的指示,然後返回本主題。

如需詳細資訊,請參閱 AWS SDK for JavaScript 開發人員指南中的以 Node.js 設定憑證

AWS SDK for JavaScript (V2)

您可以增強此範例,以使用 Node.js JavaScript 中的 AWS 開發套件建立 Amazon S3 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。

在此步驟中,您可以 JavaScript 在 Node.js 中安裝和設定的 AWS SDK,這可讓您透過程式 JavaScript碼與 Amazon S3 等 AWS 服務進行互動的便利方式。 JavaScript 在 Node.js 中安裝適用的 AWS SDK 之後,您必須在環境中設定認證管理。Node.js JavaScript 中的 AWS SDK 需要這些認證才能與 AWS 服務互動。

若要 JavaScript 在 Node.js 中安裝適用的 AWS 開發套件

使用 npm 執行 install 命令。

npm install aws-sdk

如需詳細資訊,請參閱開AWS SDK for JavaScript 發人員指南 JavaScript中的安裝 SDK

在環境中設定憑證管理

每次您 JavaScript 在 Node.js 中使用的 AWS SDK 呼叫 AWS 服務時,都必須在呼叫中提供一組認證。這些認證會判斷 Node.js JavaScript 中的 AWS SDK 是否具有進行該呼叫的適當權限。若登入資料未涵蓋適當許可,呼叫即會失敗。

在此步驟中,您會在環境中存放您的憑證。若要這麼做,請遵循 從 AWS Cloud9 的環境呼叫 AWS 服務 中的指示,然後返回本主題。

如需詳細資訊,請參閱 AWS SDK for JavaScript 開發人員指南中的以 Node.js 設定憑證

步驟 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 程式碼

  1. 使用 npm 執行 install 命令,讓程式碼能以非同步方式呼叫 Amazon S3 操作。

    npm install async
  2. 在 AWS Cloud9 IDE 的功能表列上,選擇 [執行]、[執行]、[新增執行組態]。

  3. [New] - Idle ([新增] - 閒置) 標籤上,選擇 Runner: Auto (執行器: 自動),然後選擇 Node.js

  4. 如果您正在使用 AWS SDK JavaScript (V3),則用於命令類型s3.js。如果您使用 AWS SDK to 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 帳戶。

  5. 選擇 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 中的環境