。 NET的教程 AWS Cloud9 - AWS Cloud9

AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多

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

。 NET的教程 AWS Cloud9

本教程允许你运行一些。 NET AWS Cloud9 开发环境中的代码。

按照本教程并创建此示例可能会导致您的 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:安装所需工具

在此步骤中,您将安装。 NETSDK进入您的环境,这是运行此示例所必需的。

  1. 确认是否为最新版本的。 NETSDK已安装在您的环境中。为此,请在的终端会话中运行。 AWS Cloud9 IDE NET带有--version选项的核心命令行界面 (CLI)。

    dotnet --version

    如果. NET将显示命令行工具版本,且版本为 2.0 或更高版本,请直接跳至步骤 3:创建一个. NET控制台应用程序项目。如果版本低于 2.0,或者显示错误(例如bash: dotnet: command not found),请继续安装。 NETSDK。

  2. 对于 Amazon Linux AWS Cloud9 IDE,在中的终端会话中,运行以下命令以帮助确保安装了最新的安全更新和错误修复,并安装libunwind相应软件包。 NETSDK需求。(要开始新的终端会话,请在菜单栏上依次选择 Window (窗口)、New Terminal (新建终端)。)

    sudo yum -y update sudo yum -y install libunwind

    对于 Ubuntu Server,在的终端会话中 AWS Cloud9 IDE,运行以下命令以帮助确保安装了最新的安全更新和错误修复。(要开始新的终端会话,请在菜单栏上依次选择 Window (窗口)、New Terminal (新建终端)。)

    sudo apt -y update
  3. 下载. NETSDK通过运行以下命令将脚本安装到您的环境中。

    wget https://dot.net/v1/dotnet-install.sh
  4. 通过运行以下命令,使安装程序脚本可由当前用户执行。

    sudo chmod u=rx dotnet-install.sh
  5. 运行安装程序脚本,该脚本会下载并安装。 NETSDK,通过运行以下命令。

    ./dotnet-install.sh -c Current
  6. 添加. NETSDK给你的PATH。为此,在环境的 shell 配置文件(例如,.bashrc 文件)中,将 $HOME/.dotnet 子目录添加到环境的 PATH 变量,如下所示。

    1. 使用 .bashrcvi 命令打开 文件以供编辑。

      vi ~/.bashrc
    2. 对于 Amazon Linux,使用向下键或 j 键,移至以 export PATH 开头的行。

      对于 Ubuntu Server,通过键入 G 移动至文件最后一行。

    3. 使用向右键或 $ 键移至行尾。

    4. 通过按 i 键切换到插入模式。(-- INSERT --- 将出现在显示内容的末尾。)

    5. 对于 Amazon Linux,通过键入 :$HOME/.dotnet$HOME/.dotnet 子目录添加至 PATH 变量。请务必包含冒号字符 (:)。现在,行应类似于以下内容。

      export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet

      对于 Ubuntu Server,请按向右箭头键,然后按 Enter 两次,然后在文件末尾单独输入以下代码行。

      export PATH=$HOME/.dotnet:$PATH
    6. 保存该文件。要执行此操作,请按 Esc 键(-- INSERT --- 将从显示内容的末尾消失),键入 :wq(以写入然后退出文件),然后按 Enter

  7. 加载. NETSDK通过获取.bashrc文件。

    . ~/.bashrc
  8. 确认。 NETSDK是通过运行加载的。 NETCLI有--help选项。

    dotnet --help

    如果成功,. NETSDK将显示版本号以及其他使用信息。

  9. 如果您不想再保留. NETSDK安装程序脚本在您的环境中,您可以按如下方式将其删除。

    rm dotnet-install.sh

步骤 2(可选):安装. NETCLILambda 函数的扩展

尽管本教程不是必需的,但您可以使用部署 AWS Lambda 函数和 AWS Serverless Application Model 应用程序。 NETCLI如果你还安装了Amazon.Lambda.Tools软件包。

  1. 要安装此程序包,请运行以下命令:

    dotnet tool install -g Amazon.Lambda.Tools
  2. 现在设置 PATHDOTNET_ROOT 环境变量,以指向已安装的 Lambda 工具。在 .bashrc 文件,查找 export PATH 部分,然后对其进行编辑,使其类似于以下内容(有关编辑此文件的详细信息,请参阅步骤 1):

    export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet:$HOME/.dotnet/tools export DOTNET_ROOT=$HOME/.dotnet

步骤 3:创建一个. NET控制台应用程序项目

在此步骤中,您将使用。 NET来创建一个名为的项目hello。该项目包含所有文件. NET需要从中的终端运行一个简单的应用程序IDE。该应用程序的代码是用 C# 编写的。

创建一个. NET控制台应用程序项目。为此,请运行。 NETCLI使用new命令,指定控制台应用程序项目模板类型和要使用的编程语言(在本示例中为 C#)。

-n 选项表示将项目输出到新目录,hello。然后,导航到该目录。

dotnet new console -lang C# -n hello cd hello

前面的命令会将一个名为 obj 且包含几个文件的子目录以及一些附加的独立文件添加至 hello 目录。您应注意以下两个关键文件:

  • hello/hello.csproj 文件包含有关控制台应用程序项目的信息。

  • hello/Program.cs 文件包含要运行的应用程序代码。

步骤 4:添加代码

在此步骤中,您将向应用程序中添加一些代码。

在的 “环境” 窗口中 AWS Cloud9 IDE,打开该hello/Program.cs文件。

在编辑器中,将该文件的当前内容替换为以下代码,然后保存 Program.cs 文件。

using System; namespace hello { class Program { static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Please provide 2 numbers"); return; } Console.WriteLine("Hello, World!"); Console.WriteLine("The sum of 2 and 3 is 5."); int sum = Int32.Parse(args[0]) + Int32.Parse(args[1]); Console.WriteLine("The sum of {0} and {1} is {2}.", args[0], args[1], sum); } } }

步骤 5:生成并运行代码

在此步骤中,您会将该项目及其依赖项生成为一组二进制文件,包括一个可运行的应用程序文件。然后运行该应用程序。

  1. 在中IDE,为创建生成器。 NET如下所示。

    1. 在菜单栏中,依次选择 Run (运行)、Build System (生成系统) 和 New Build System (新建生成系统)

    2. My Builder.build (我的 Builder.build) 选项卡上,将选项卡的内容替换为以下代码。

      { "cmd" : ["dotnet", "build"], "info" : "Building..." }
    3. 依次选择 File(文件)、Save As(另存为)

    4. 对于 Filename (文件名),键入 .NET.build

    5. 对于 Folder (文件夹),键入 /.c9/builders

    6. 选择保存

  2. 在编辑器中显示Program.cs文件内容后,选择 “运行”、“生成系统”、。 NET。然后依次选择 Run (运行)、Build (生成)

    此生成器将向 hello/obj 子目录中添加一个名为 bin 的子目录和一个名为 Debug 的子目录。请注意以下三个关键文件。

    • hello/bin/Debug/netcoreapp3.1/hello.dll 文件是可运行的应用程序文件。

    • hello/bin/Debug/netcoreapp3.1/hello.deps.json 文件列出了应用程序的依赖项。

    • hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json 文件为应用程序指定共享的运行时及其版本。

    注意

    文件夹名称反映netcoreapp3.1了的版本。 NETSDK在本示例中使用。根据您安装的版本,您可能会在文件夹名称中看到不同的编号。

  3. 为创建跑步器。 NET如下所示。

    1. 在菜单栏上,依次选择 Run (运行)、Run With (运行方式) 和 New Runner (新建运行程序)

    2. My Runner.run (我的 Runner.run) 选项卡上,将该选项卡的内容替换为以下代码。

      { "cmd" : ["dotnet", "run", "$args"], "working_dir": "$file_path", "info" : "Running..." }
    3. 依次选择 File(文件)、Save As(另存为)

    4. 对于 Filename (文件名),键入 .NET.run

    5. 对于 Folder (文件夹),键入 /.c9/runners

    6. 选择保存

  4. 运行应用程序,将两个整数相加(例如,59),如下所示。

    1. 当编辑器中显示 Program.cs 文件的内容时,依次选择 Run (运行)、Run Configurations (运行配置) 和 New Run Configuration (新建运行配置)

    2. [新建]-Idle 选项卡中,选择 Runner:Auto,然后选择。 NET

    3. Command (命令) 框中,键入 hello 5 9

    4. 选择运行

      默认情况下,此运行器会指示。 NET来运行hello/bin/Debug/netcoreapp3.1目录中的hello.dll文件。

      将输出与以下内容进行比较。

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

步骤 6:创建并设置. NET使用控制台应用程序的项目 AWS SDK for .NET

您可以增强此示例,使用创建 Amazon S3 存储桶,列出您的可用存储桶,然后删除您刚刚创建的存储桶。 AWS SDK for .NET

在此新项目中,您将添加对 AWS SDK for .NET的引用。 AWS SDK for .NET 提供了一种便捷的方式,便于您与诸如 Amazon S3 之类的 AWS 服务进行交互。 NET代码。然后,您可以在自己的环境中设置 AWS 凭证管理。 AWS SDK for .NET 需要这些凭据才能与 AWS 服务进行交互。

创建 项目

  1. 创建一个. NET控制台应用程序项目。为此,请运行。 NETCLI使用new命令,指定控制台应用程序项目模板类型和要使用的编程语言。

    -n 选项表示将项目输出到新目录,s3。然后,导航到该目录。

    dotnet new console -lang C# -n s3 cd s3
  2. 在 AWS SDK for .NET中添加对 Amazon S3 程序包的项目引用。为此,请运行。 NETCLI使用add package命令,在中指定 Amazon S3 软件包的名称 NuGet。(NuGet定义了软件包的使用方式。 NET创建、托管和使用,并为每个角色提供工具。)

    dotnet add package AWSSDK.S3

    当您向 Amazon S3 包添加项目引用时, NuGet 还会向其余部分添加项目引用 AWS SDK for .NET。

    注意

    有关中其他 AWS 相关软件包的名称和版本 NuGet,请参阅网站上标有 aws-sdk 的NuGet NuGet 软件包

设置 AWS 凭据管理

每次使用调 AWS SDK for .NET 用 AWS 服务时,都必须为呼叫提供一组 AWS 凭据。这些证书决定了是否 AWS SDK for .NET 具有进行该呼叫的相应权限。如果凭证没有包括合适的权限,调用将失败。

要在环境中存储凭证,请按照 AWS 服务 从中的环境中呼叫 AWS Cloud9 中的说明进行操作,然后返回到该主题。

有关更多信息,请参阅《AWS SDK for .NET 开发人员指南》中的配置 AWS 凭证

第 7 步:添加 AWS SDK代码

在此步骤中,您添加用于与 Amazon S3 交互的代码,以用于创建存储桶、删除刚刚创建的存储桶,然后列出可用的存储桶。

在的 “环境” 窗口中 AWS Cloud9 IDE,打开该s3/Program.cs文件。在编辑器中,将该文件的当前内容替换为以下代码,然后保存 Program.cs 文件。

using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace s3 { class Program { async static Task Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Usage: <the bucket name> <the AWS Region to use>"); Console.WriteLine("Example: my-test-bucket us-east-2"); return; } if (args[1] != "us-east-2") { Console.WriteLine("Cannot continue. The only supported AWS Region ID is " + "'us-east-2'."); return; } var bucketRegion = RegionEndpoint.USEast2; // Note: You could add more valid AWS Regions above as needed. using (var s3Client = new AmazonS3Client(bucketRegion)) { var bucketName = args[0]; // Create the bucket. try { if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Cannot continue. Cannot create bucket. \n" + "A bucket named '{0}' already exists.", bucketName); return; } else { Console.WriteLine("\nCreating the bucket named '{0}'...", bucketName); await s3Client.PutBucketAsync(bucketName); } } catch (AmazonS3Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } catch (Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } // Confirm that the bucket was created. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Created the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Did not create the bucket named '{0}'.", bucketName); } // Delete the bucket. Console.WriteLine("\nDeleting the bucket named '{0}'...", bucketName); await s3Client.DeleteBucketAsync(bucketName); // Confirm that the bucket was deleted. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Did not delete the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Deleted the bucket named '{0}'.", bucketName); }; // List current buckets. Console.WriteLine("\nMy buckets now are:"); var response = await s3Client.ListBucketsAsync(); foreach (var bucket in response.Buckets) { Console.WriteLine(bucket.BucketName); } } } } }

第 8 步:生成并运行 AWS SDK代码

在此步骤中,您会将该项目及其依赖项生成为一组二进制文件,包括一个可运行的应用程序文件。然后运行该应用程序。

  1. 构建 项目。要执行此操作,在编辑器中显示 s3/Program.cs 文件的内容后,请在菜单栏上依次选择 Run (运行)、Build (生成)

  2. 用要创建的 Amazon S3 存储桶的名称和要在其中创建存储桶的 AWS 区域的 ID(例如,my-test-bucketus-east-2)运行应用程序,如下所示。

    1. 当编辑器中仍显示 s3/Program.cs 文件的内容时,依次选择 Run (运行)、Run Configurations (运行配置)、New Run Configuration (新建运行配置)

    2. [新建]-Idle 选项卡中,选择 Runner:Auto,然后选择。 NET

    3. 命令框中,键入应用程序的名称、要创建的 Amazon S3 存储桶的名称以及要在其中创建存储桶的 AWS 区域 ID(例如s3 my-test-bucket us-east-2)。

    4. 选择运行

      默认情况下,此运行器会指示。 NET来运行s3/bin/Debug/netcoreapp3.1目录中的s3.dll文件。

      将结果与以下输出进行比较。

      Creating a new bucket named 'my-test-bucket'... Created the bucket named 'my-test-bucket'. Deleting the bucket named 'my-test-bucket'... Deleted the bucket named 'my-test-bucket'. My buckets now are:

步骤 9:清除

为防止在您使用完此示例后继续向您的 AWS 账户收费,您应删除该环境。有关说明,请参阅 在 AWS Cloud9 中删除环境