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

AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解

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

的 Node.js 教學課程 AWS Cloud9

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

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

必要條件

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

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

  • 您已經開啟現有環境的 AWS Cloud9 IDE。當您開啟環境時,請在 Web 瀏覽器中 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,請先執行此命令以下載 Node Version Manager (nvm)。(nvm 是簡單的 Bash shell 指令碼,對於安裝和管理 Node.js 版本非常有用。 如需詳細資訊,請參閱 GitHub 網站上的 Node Version Manager。)

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

    . ~/.bashrc
  5. 執行此命令以在 Amazon Linux 2、Amazon Linux 1 和 Ubuntu 18.04 上安裝 Node.js 16。Amazon Linux 1 和 Ubuntu 18.04 執行個體僅支援 Node.js 至 v16。

    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。如果您想要 AWS Cloud9 手動在 Amazon Linux 2 上安裝 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:在 Node.js AWS SDK JavaScript 中安裝和設定 的

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

AWS SDK for JavaScript (V3)

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

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

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

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

在 Node.js AWS SDK JavaScript 中安裝 的

使用 npm 執行 install 命令。

npm install @aws-sdk/client-s3

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

在環境中設定憑證管理

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

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

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

AWS SDK for JavaScript (V2)

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

在此步驟中,您可以在 Node.js AWS SDK JavaScript 中安裝和設定 的 ,這提供了一種方便的方式,讓您從 JavaScript程式碼中與 Amazon S3 等 AWS 服務互動。在 Node.js AWS SDK JavaScript 中安裝 的 後,您必須在環境中設定憑證管理。in Node.js AWS SDK JavaScript 中的 需要這些憑證才能與服務 AWS 互動。

在 Node.js AWS SDK JavaScript 中安裝 的

使用 npm 執行 install 命令。

npm install aws-sdk

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

在環境中設定憑證管理

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

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

如需詳細資訊,請參閱 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 用於 Javascript (v2),則用於命令類型 s3.js my-test-bucket us-east-2,其中 my-test-bucket 是您要建立和刪除的儲存貯體名稱,而 us-east-2是您要在其中建立儲存貯體 AWS 的區域 ID。如需 的詳細資訊IDs,請參閱 中的 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 中的環境」。