AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 Node.js 教學課程 AWS Cloud9
本教學課程可讓您在 AWS Cloud9 開發環境中執行某些 Node.js 指令碼。
遵循本教學課程並建立此範例可能會導致 AWS 您的帳戶產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 Pricing 和 Amazon 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,其為執行本範例的必要元件。
-
在 的終端機工作階段中 AWS Cloud9 IDE,執行 node --version
命令以確認是否已安裝 Node.js。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機)。如果成功,輸出會包含 Node.js 版本編號。若 Node.js 已安裝,請跳至步驟 2:新增程式碼。
-
執行 yum update
(適用於 Amazon Linux) 或 apt update
(適用於 Ubuntu Server) 命令,協助確保已安裝最新安全性更新和錯誤修正。
針對 Amazon Linux:
sudo yum -y update
針對 Ubuntu Server:
sudo apt update
-
若要安裝 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
-
若要開始使用 nvm,請先關閉終端機工作階段並再次啟動,或是援引 ~/.bashrc
檔案,其中包含的命令將會載入 nvm。
. ~/.bashrc
-
執行此命令以在 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:執行程式碼
-
在 AWS Cloud9 IDE的選單列中,選擇執行 、執行組態 、新執行組態 。
-
在 [New] - Idle ([新增] - 閒置) 標籤上,選擇 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:在 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中的為 安裝 JavaScript 。 AWS 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中的為 安裝 JavaScript 。 AWS 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程式碼
-
使用 npm 執行 install
命令,讓程式碼能以非同步方式呼叫 Amazon S3 操作。
npm install async
-
在 AWS Cloud9 IDE的選單列中,選擇執行 、執行組態 、新執行組態 。
-
在 [New] - Idle ([新增] - 閒置) 標籤上,選擇 Runner: Auto (執行器: 自動),然後選擇 Node.js。
-
如果您將 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 。
-
選擇 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 中的環境」。