AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Node.js 的教程 AWS Cloud9
本教程使你能够在 AWS Cloud9 开发环境中运行一些 Node.js 脚本。
按照本教程并创建此示例可能会导致您的 AWS 账户被扣款。其中包括亚马逊EC2和Amazon S3等服务可能产生的费用。有关更多信息,请参阅 Amazon EC2 定价和 A mazon S3 定价。
先决条件
在使用此示例之前,请确保您的设置满足以下要求:
-
您必须拥有现有的 AWS Cloud9 EC2开发环境。此示例假设您的EC2环境已连接到运行 Amazon Linux 的亚马逊EC2实例,或者 Ubuntu 服务器。如果您有不同类型的环境或操作系统,可能需要按照本示例的说明来设置相关的工具。有关更多信息,请参阅 在中创建环境 AWS Cloud9。
-
您已经打开了 AWS Cloud9 IDE适用于现有环境的。当你打开一个环境时,会IDE在 Web 浏览器中 AWS Cloud9 打开该环境的。有关更多信息,请参阅 在 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,首先运行此命令下载节点版本管理器 (nvm)。 (nvm 是一个简单的 Bash shell 脚本,可用于安装和管理 Node.js 版本。 有关更多信息,请参阅 GitHub 网站上的节点版本管理器。)
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 实例最高仅支持 Node.js 版本 16。
nvm install 16
运行此命令在 Amazon Linux 2023 和 Ubuntu 22.04 上安装最新版本的 Node.js:
nvm install --lts && nvm alias default lts/*
最新的 AL2 023 AWS Cloud9 镜像安装了 Node.js 20,最新的亚马逊 Linux 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:运行代码
-
在菜单栏上 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 JavaScript 中安装和配置 AWS SDK
在中运行 Node.js 脚本时 AWS Cloud9,可以在版本 3 (V3) 和 JavaScript 版本 2 (V2) AWS SDK 的较旧 JavaScript 版本之间 AWS SDK进行选择。与 V2 一样,V3 使您可以轻松地使用 Amazon Web Services,但它已经写入 TypeScript并添加了几项经常要求的功能,例如模块化软件包。
- AWS SDK for JavaScript (V3)
-
您可以增强此示例,以便 JavaScript 在 Node.js 中使用 for 创建 Amazon S3 存储桶,列出您的可用存储桶,然后删除您刚刚创建的存储桶。 AWS SDK
在此步骤中,您将在 Node.js 中安装和配置 for 的 Amazon S3 服务客户端模块,该模块提供了一种通过 JavaScript 代码与 Amazon S3 AWS
服务进行交互的便捷方式。 AWS SDK JavaScript
如果要使用其他 AWS 服务,则需要单独安装它们。有关安装 AWS 模块的更多信息,请参阅AWS 开发人员指南 (V3)。有关如何开始使用 Node.js 和 AWS SDK for JavaScript (V3) 的信息,请参阅 JavaScript开发者指南 (V3) 中的 AWS SDKNode.js 入门。
JavaScript 在 Node.js 中安装 AWS SDK for 后,必须在您的环境中设置凭据管理。Node.js JavaScript 中的 AWS SDK for 需要这些凭据才能与 AWS
服务进行交互。
在 Node.js JavaScript 中安装 AWS SDK for
可以使用 npm 运行 install
命令。
npm install @aws-sdk/client-s3
有关更多信息,请参阅《AWS SDK for JavaScript 开发人员指南SDK》 JavaScript中的安装f or。
在环境中设置凭证管理
每次使用 Node.js JavaScript 中的 f AWS SDK or 调用 AWS 服务时,都必须为调用提供一组凭据。这些凭证确定 Node.js JavaScript 中的 AWS SDK for 是否具有进行该调用的相应权限。如果这些凭证不包含相应的权限,调用将失败。
在此步骤中,您将凭证存储在环境内。为此,请按照 AWS 服务 从中的环境中呼叫 AWS Cloud9 中的说明操作,然后返回到本主题。
有关其他信息,请参阅 AWS SDK for JavaScript 开发人员指南中的在 Node.js 中设置凭证。
- AWS SDK for JavaScript (V2)
-
您可以增强此示例,以便 JavaScript 在 Node.js 中使用 for 创建 Amazon S3 存储桶,列出您的可用存储桶,然后删除您刚刚创建的存储桶。 AWS SDK
在此步骤中,您将在 Node.js JavaScript 中安装和配置 for,这提供了一种通过 JavaScript代码与 Amazon S3 等 AWS 服务进行交互的便捷方式。 AWS SDK JavaScript 在 Node.js 中安装 AWS SDK for 后,必须在您的环境中设置凭据管理。Node.js JavaScript 中的 AWS SDK for 需要这些凭据才能与 AWS
服务进行交互。
在 Node.js JavaScript 中安装 AWS SDK for
可以使用 npm 运行 install
命令。
npm install aws-sdk
有关更多信息,请参阅《AWS SDK for JavaScript 开发人员指南SDK》 JavaScript中的安装f or。
在环境中设置凭证管理
每次使用 Node.js JavaScript 中的 f AWS SDK or 调用 AWS 服务时,都必须为调用提供一组凭据。这些凭证确定 Node.js JavaScript 中的 AWS SDK for 是否具有进行该调用的相应权限。如果这些凭证不包含相应的权限,调用将失败。
在此步骤中,您将凭证存储在环境内。为此,请按照 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。
-
如果您使用的是 fo AWS SDK r 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 S3) S ervice。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 中删除环境。