.NET 和 DAX - Amazon DynamoDB

.NET 和 DAX

执行以下步骤,在 Amazon EC2 实例上运行 .NET 示例。

注意

本教程使用 .NET 6 开发工具包,但也将与 .NET Core 开发工具包配合使用。介绍如何在默认 Amazon VPC 中运行程序,访问 Amazon DynamoDB Accelerator (DAX) 集群。如果愿意,可以使用 AWS Toolkit for Visual Studio 编写 .NET 应用程序并部署到 VPC 上。

有关更多信息,请参阅《AWS Elastic Beanstalk 开发人员指南》中的在 .NET 中使用 AWS Toolkit for Visual Studio 创建和部署 Elastic Beanstalk 应用程序

运行 DAX 的 .NET 示例
  1. 转到 Microsoft 下载页面,下载适用于 Linux 的最新 .NET 6(或 .NET Core)开发工具包。下载的文件为 dotnet-sdk-N.N.N-linux-x64.tar.gz

  2. 提取开发工具包文件。

    mkdir dotnet tar zxvf dotnet-sdk-N.N.N-linux-x64.tar.gz -C dotnet

    N.N.N 替换为 .NET 开发工具包的实际版本号(例如:6.0.100)。

  3. 验证安装。

    alias dotnet=$HOME/dotnet/dotnet dotnet --version

    这应会打印 .NET 开发工具包的版本号。

    注意

    您收到的可能不是版本号而是以下错误:

    error: libunwind.so.8: cannot open shared object file: No such file or directory (错误: libunwind.so.8: 无法 打开共享对象文件。没有此文件或目录)

    要解决此问题,请安装 libunwind 包。

    sudo yum install -y libunwind

    完成此操作后,您应该能够运行 dotnet --version 命令而且不会出现任何错误。

  4. 创建新的 .NET 项目。

    dotnet new console -o myApp

    这需要几分钟时间以执行一次性设置。完成后,请运行示例项目。

    dotnet run --project myApp

    您应该会收到以下消息:Hello World!

  5. myApp/myApp.csproj 文件包含有关您的项目的元数据。要在应用程序中使用 DAX 客户端,您需要修改文件,使其像如下所示。

    <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="AWSSDK.DAX.Client" Version="*" /> </ItemGroup> </Project>
  6. 下载示例程序源代码(.zip 文件)。

    wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip

    下载完成后,解压缩源文件。

    unzip TryDax.zip
  7. 现在,运行示例程序,一次运行一个。对于每个程序,将内容复制到 myApp/Program.cs,然后运行 MyApp 项目。

    运行以下 .NET 程序。第一个程序创建一个名为 TryDaxTable 的 DynamoDB 表。第二个程序向表中写入数据。

    cp TryDax/dotNet/01-CreateTable.cs myApp/Program.cs dotnet run --project myApp cp TryDax/dotNet/02-Write-Data.cs myApp/Program.cs dotnet run --project myApp
  8. 接下来,运行一些程序以在您的 DAX 集群上执行 GetItemQueryScan 操作。要确定 DAX 集群的端点,请选择下列选项之一:

    • 使用 DynamoDB 控制台 — 选择 DAX 集群。集群端点显示在控制台中,如下面的示例所示。

      dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
    • 使用 AWS CLI — 输入下面的命令。

      aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"

      集群端点显示在输出中,如下面的示例所示。

      { "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com", "Port": 8111, "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com" }

    现在运行以下程序,将您的集群端点指定为命令行参数。(将示例端点替换为实际 DAX 集群端点。)

    cp TryDax/dotNet/03-GetItem-Test.cs myApp/Program.cs dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com cp TryDax/dotNet/04-Query-Test.cs myApp/Program.cs dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com cp TryDax/dotNet/05-Scan-Test.cs myApp/Program.cs dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

    记下计时信息—GetItemQueryScan 测试所需的时间(以毫秒为单位)。

  9. 运行以下 .NET 程序删除 TryDaxTable

    cp TryDax/dotNet/06-DeleteTable.cs myApp/Program.cs dotnet run --project myApp

有关这些程序的更多信息,请参见以下各部分: