适用于 AWS Cloud9 的 TypeScript 教程 - AWS Cloud9

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 AWS Cloud9 的 TypeScript 教程

此教程演示如何在 AWS Cloud9 开发环境中使用 TypeScript。

按照本教程操作并创建此示例可能会对您的 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 会在 Web 浏览器中为该环境打开 IDE。有关更多信息,请参阅在 AWS Cloud9 中打开环境

步骤 1:安装所需工具

在此步骤中,您使用节点程序包管理器 (npm) 安装 TypeScript。要安装 npm,请使用节点版本管理器 (nvm)。如果您没有 nvm,则在此步骤中首先安装它。

  1. 在 AWS Cloud9 IDE 的终端会话中,运行带 --version 选项的命令行 TypeScript 编译器以确认是否已安装 TypeScript。(要开始新的终端会话,请在菜单栏上依次选择 Window(窗口)> New Terminal(新建终端)。) 如果成功,输出将包含 TypeScript 版本号。如果已安装 TypeScript,请向前跳至 步骤 2:添加代码

    tsc --version
  2. 通过运行带 --version 选项的 npm 以确认是否已安装 npm 。如果成功,输出将包含 npm 版本号。如果已安装 npm,请向前跳到此过程中的步骤 10 来使用 npm 安装 TypeScript。

    npm --version
  3. 运行 yum update(适用于 Amazon Linux)或 apt update(适用于 Ubuntu Server)命令,以帮助确保已安装最新的安全更新和错误修复。

    对于 Amazon Linux:

    sudo yum -y update

    对于 Ubuntu Server:

    sudo apt update
  4. 要安装 npm ,请先运行以下命令以下载 Node Version Manager ( nvm )。( nvm 是一个简单的 Bash Shell 脚本,用于安装和管理 Node.js 版本。有关更多信息,请参阅 GitHub 网站上的 Node Version Manager。)

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  5. 要开始使用 nvm,请关闭终端会话并重新启动,或者查找包含命令以加载 ~/.bashrcnvm 文件。

    . ~/.bashrc
  6. 运行带 --version 选项的 nvm 以确认已安装 nvm

    nvm --version
  7. 运行 nvm 以安装最新版本的 Node.js 16。(npm 包含在 Node.js 中。)

    nvm install v16
  8. --version 选项运行命令行版本的 Node.js 以确认已安装 Node.js。

    node --version
  9. 运行带 --version 选项的 npm 以确认已安装 npm

    npm --version
  10. 通过运行带 -g 选项的 npm 安装 TypeScript。这会在环境中作为全局程序包安装 TypeScript。

    npm install -g typescript
  11. --version 选项运行命令行 TypeScript 编译器以确认已安装 TypeScript。

    tsc --version

步骤 2:添加代码

  1. 在 AWS Cloud9 IDE 中,创建名为 hello.ts 的文件。(要创建文件,请在菜单栏上依次选择 File(文件)New File(新建文件)。要保存文件,请依次选择 File(文件)Save(保存)。)

  2. 在 IDE 的终端中,从 hello.ts 文件所在的相同目录中,运行 npm 以安装 @types/node 库。

    npm install @types/node

    这会在 node_modules/@types/node 文件所在的相同目录中添加 hello.ts 文件夹。此新文件夹包含 TypeScript 在此过程的后面需要的 Node.js 类型定义,用于您将添加到 hello.ts 文件中的 console.logprocess.argv 属性。

  3. 将以下代码添加到 hello.ts 文件:

    console.log('Hello, World!'); console.log('The sum of 2 and 3 is 5.'); const sum: number = 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. 在终端中,从 hello.ts 文件所在的相同目录中,运行 TypeScript 编译器。指定 hello.ts 文件以及要包括的其他库。

    tsc hello.ts --lib es6

    TypeScript 使用 hello.ts 文件和一组 ECMAScript 6 (ES6) 库文件将 hello.ts 文件中的 TypeScript 代码转换为名为 hello.js 的文件中的等效 JavaScript 代码。

  2. Environment (环境) 窗口中,打开 hello.js 文件。

  3. 在菜单栏上依次选择 Run(运行)> Run Configurations(运行配置)> New Run Configuration(新建运行配置)

  4. [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序: 自动),然后选择 Node.js

  5. Command(命令)中,键入 hello.js 5 9。在代码中,5 表示 process.argv[2]9 表示 process.argv[3]。(process.argv[0] 表示运行时的名称 (node),process.argv[1] 表示文件的名称 (hello.js)。)

  6. 选择 Run (运行),然后比较输出。完成此操作后,选择 Stop (停止)

    Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
在 AWS Cloud9 IDE 中运行代码后的 Node.js 输出
注意

不必在 IDE 中创建新的运行配置,您还可以从终端运行命令 node hello.js 5 9 以执行此代码。

步骤 4:安装并配置 AWS SDK for JavaScript in Node.js

您可以改进此示例以使用 AWS SDK for JavaScript in Node.js 创建 Amazon S3 存储桶,列出可用的存储桶,然后删除刚刚创建的存储桶。

在本步骤中,您将安装并配置 AWS SDK for JavaScript in Node.js。此开发工具包提供了从 JavaScript 代码与 AWS 服务(如 Amazon S3)交互的便捷方式。在安装 AWS SDK for JavaScript in Node.js 后,您必须在环境中设置凭证管理。开发工具包需要这些凭证才能与 AWS 服务交互。

安装 AWS SDK for JavaScript in Node.js

在 AWS Cloud9 IDE的终端会话中,从 步骤 3:运行代码hello.js 文件所在的相同目录中,运行 npm 以安装 AWS SDK for JavaScript in Node.js。

npm install aws-sdk

此命令从 步骤 3:运行代码 中向 node_modules 文件夹添加多个文件夹。这些文件夹包含 AWS SDK for JavaScript in Node.js 的源代码和依赖项。有关更多信息,请参阅 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 开发人员指南中的在 Node.js 中设置凭证

步骤 5:添加 AWS 开发工具包代码

在此步骤中,您会添加一些代码,此次用于与 Amazon S3 交互来创建存储桶,列出可用的存储桶,然后删除刚刚创建的存储桶。您将稍后运行此代码。

  1. 在 AWS Cloud9 IDE 中,在以前步骤中的 hello.js 文件所在的同一目录中,创建名为 s3.ts 的文件。

  2. 从 AWS Cloud9 IDE 中的终端中,在 s3.ts 文件所在的同一目录中,启用代码以异步调用 Amazon S3 操作,方法是运行 npm 两次以安装适用于 TypeScript 的异步库,然后再次安装适用于 JavaScript 的异步库。

    npm install @types/async # For TypeScript. npm install async # For JavaScript.
  3. 将以下代码添加到 s3.ts 文件:

    import * as async from 'async'; import * as AWS from 'aws-sdk'; 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); } const AWS = require('aws-sdk'); // To set the AWS credentials and AWS Region. const async = require('async'); // To call AWS operations asynchronously. const s3: AWS.S3 = new AWS.S3({apiVersion: '2006-03-01'}); const bucket_name: string = process.argv[2]; const region: string = process.argv[3]; AWS.config.update({ region: region }); const create_bucket_params: any = { Bucket: bucket_name, CreateBucketConfiguration: { LocationConstraint: region } }; const delete_bucket_params: any = { Bucket: bucket_name }; // List all of your available buckets in this AWS Region. function listMyBuckets(callback): void { s3.listBuckets(function(err, data) { if (err) { } else { console.log("My buckets now are:\n"); for (let i: number = 0; i < data.Buckets.length; i++) { console.log(data.Buckets[i].Name); } } callback(err); }); } // Create a bucket in this AWS Region. function createMyBucket(callback): void { 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): void { 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 开发工具包代码

  1. 在终端中,从 s3.ts 文件所在的相同目录中,运行 TypeScript 编译器。指定 s3.ts 文件以及要包括的其他库。

    tsc s3.ts --lib es6

    TypeScript 使用 s3.ts 文件、AWS SDK for JavaScript in Node.js、异步库和一组 ECMAScript 6 (ES6) 库文件,将 s3.ts 文件中的 TypeScript 代码转换为名为 s3.js 的文件中的等效 JavaScript 代码。

  2. Environment (环境) 窗口中,打开 s3.js 文件。

  3. 在菜单栏上依次选择 Run(运行)> Run Configurations(运行配置)> New Run Configuration(新建运行配置)

  4. [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序: 自动),然后选择 Node.js

  5. 对于 Command (命令),请键入 s3.js YOUR_BUCKET_NAME THE_AWS_REGION ,其中 YOUR_BUCKET_NAME 是要创建并随后删除的存储桶的名称, THE_AWS_REGION 是要在其中创建存储桶的 AWS 区域的 ID。例如,对于美国东部 (俄亥俄) 区域,请使用 us-east-2。有关更多 ID,请参阅 中的 Amazon Simple Storage Service (Amazon S3)Amazon Web Services 一般参考

    注意

    Amazon S3 存储桶名称在整个 AWS 中都必须是唯一的,而不仅仅在您的 AWS 账户中唯一。

  6. 选择 Run (运行),然后比较输出。完成此操作后,选择 Stop (停止)

    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 中删除环境