使用 Cassandra .NET Core 客户端驱动程序以编程方式访问 Amazon Keyspaces - Amazon Keyspaces(针对 Apache Cassandra)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用 Cassandra .NET Core 客户端驱动程序以编程方式访问 Amazon Keyspaces

本节介绍如何使用 .NET Core 客户端驱动程序连接到 Amazon Keyspaces。根据您的环境和操作系统,设置步骤可能会有所不同,您可能需要相应地对其进行修改。Amazon Keyspaces 需要使用传输层安全性 (TLS) 来帮助保护与客户端的连接。要使用 TLS 连接到 Amazon Keyspaces,您需要下载 Starfield 数字证书并将驱动程序配置为使用 TLS。

  1. 下载 Starfield 证书并将其保存到本地目录中,并记下路径。以下是使用 PowerShell的示例。

    $client = new-object System.Net.WebClient $client.DownloadFile("https://certs.secureserver.net/repository/sf-class2-root.crt","path_to_file\sf-class2-root.crt")
  2. 使用 nuget 控制台通过 nuget 安装 CassandraCSharpDriver。

    PM> Install-Package CassandraCSharpDriver
  3. 以下示例使用 .NET Core C# 控制台项目连接到 &MCS; 并执行查询。

    using Cassandra; using System; using System.Collections.Generic; using System.Linq; using System.Net.Security; using System.Runtime.ConstrainedExecution; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; namespace CSharpKeyspacesExample { class Program { public Program(){} static void Main(string[] args) { X509Certificate2Collection certCollection = new X509Certificate2Collection(); X509Certificate2 amazoncert = new X509Certificate2(@"path_to_file\sf-class2-root.crt"); var userName = "ServiceUserName"; var pwd = "ServicePassword"; certCollection.Add(amazoncert); var awsEndpoint = "cassandra.us-east-2.amazonaws.com" ; var cluster = Cluster.Builder() .AddContactPoints(awsEndpoint) .WithPort(9142) .WithAuthProvider(new PlainTextAuthProvider(userName, pwd)) .WithSSL(new SSLOptions().SetCertificateCollection(certCollection)) .Build(); var session = cluster.Connect(); var rs = session.Execute("SELECT * FROM system_schema.tables;"); foreach (var row in rs) { var name = row.GetValue<String>("keyspace_name"); Console.WriteLine(name); } } } }

    使用说明:

    1. "path_to_file/sf-class2-root.crt" 替换为第一步中保存的证书的路径。

    2. 确保 ServiceUserNameServicePassword 通过执行步骤来匹配您在生成服务特定凭证时获取的用户名和密码生成服务特定凭证

    3. 有关可用终端节点的列表,请参阅Amazon Keyspaces 的服务终端节点