一个新的AWS SDK for Rust

2021-05-08 22:45:12

我们很高兴地宣布用于生锈的新AWS SDK的Alpha发布。 AWS客户在Rust中开发的客户想要一个原生Rust SDK,因此它们可以使用它们用于它们的语言构造,而且客户新来生锈的客户希望与他们在其他语言环境中使用的SDK类似的SDK。通过此Alpha版本,客户可以为七个AWS服务尝试客户,并提供有关人体工程学和可用性的反馈。

我一直是RUSOTO的共同维护者,一个社区开发的AWS SDK,过去一年。代表AWS,我要感谢原位,我的所有其他共同体主义者,以及自2015年首次发布以来努力建立Rusoto的社区。维护AWS服务的广泛广度的功能非常困难。我很自豪地看到这是对客户的工作有多重要。

我们为新SDK的主要设计目标是在启动时使客户使用新AWS服务API。就像我们的较新的SDK一样,AWS使用了史密斯工具链和服务模型来构建AWS SDK for Rust。除了在第1天启用新服务之外,此SDK还包含在开发人员体验中创造更高的可靠性和一致性的功能。它将包括AWS标准重试逻辑和一致的凭据提供程序支持,作为其他AWS SDK的支持。

我们今天正在推出的AWS SDK允许您尝试为七AWS服务的客户提供:Amazon DynamoDB,Amazon API Gateway,Amazon Kinesis,Amazon Polly,AWS Secrets Manager和Amazon Quantum Ledger数据库。我们正在为社区提供可用的SDK的Alpha版本,以提早获取您的反馈,并将您的输入纳入此SDK的设计和实现。我们正在分享我们的路线图,概述了为所有AWS服务添加功能和支持的计划。我们很乐意通过Github问题和讨论来听到您对您对哪些功能和服务最重要的想法。随着SDK接近其准备好的GA推出,我们将提供从Rusoto迁移到新SDK的文档。我们将在GA发布的标准维护政策后支持SDK。

在Alpha期间,您可以通过GIT依赖项安装SDK。当SDK通常可用时,我们将发布到箱子。

以下是如何使用DynamoDB执行常用操作的新AWS SDK的方法。 SDK存储库中有许多更详细的示例。此示例假定您已经安装了Rust和Cargo。如果您没有,请按照RURT提供的说明安装RUDE和CARGO。

[依赖关系] aws-sdk-dynamodb = {git =" https://github.com/awslabs/aws-sdk-rust"标签=" v0.0.3-alpha"} tokio = {version =" 1",特征= [" full"]}

3.作为环境变量将AWS凭据输入您的终端。注意:Alpha SDK此时仅支持环境变量凭据提供商。

#在UNIX / MacOS / Linux上 导出aws_access_key_id = akiaiosfodnn7example 导出aws_secret_access_key = wjalrxutnfemi / k7mdeng / bpxrficyexamplekey 导出aws_default_region = US-East-1 #在Windows上 SET AWS_ACCESS_KEY_ID = AKIAIOSFODNN7EXAMPLE set aws_secret_access_key = wjalrxutnfemi / k7mdeng / bpxrficyexamplekey SET AWS_DEFAULT_REGION = US-EAST-1

#[tokio :: main] Async fn main() - >结果<(),aws_sdk_dynamodb ::错误> { 让Client = AWS_SDK_DYAMODB :: client :: from_env(); 让req = client.list_tables()。限制(10); 让resp = req.send()。等待?; println!("当前dynamodb表:{:?}",resp.table_names.unwrap_or_default()); 好的(()) }

如今,SDK仅支持来自环境变量的Tokio Async运行时和凭据。在SDK通常可用之前,我们将实施标准凭据提供商。我们正在探索支持多个生锈异步运行时的方法。

确保查看贡献指南以获取最新信息。以下是您如何提供帮助和提供反馈:

尝试SDK并让我们知道可以改进的位置 - 对于SDK支持的服务,如果您通过提交GitHub问题或启动GitHub讨论,请告诉我们您是否遇到任何问题。此外,请务必将您的评论和“+1”添加到Github问题,这些问题已经提交,以帮助我们有效地提供优先顺序和计划。

报告缺陷 - 不可避免地,我们希望在此Alpha发布中存在错误。如果您找到一个,请通过提交GitHub问题,让我们知道。

查看文档 - 它是SDK文档清晰,准确和最新的必要条件,所以每个人都可以成功使用SDK。如果您发现文档的问题,请打开问题,甚至更好,提交PR。

请求评论(RFC) - 我们正在向回购中添加RFC,以提出对SDK的重大更改。我们将在开发SDK时不断增加更多。请审核他们,让我们知道你的想法,并随时添加自己!

帮助我们优先考虑高级库 - 超出核心SDK,内置于SDK之上的高级库(如S3加密客户端或DynamoDB Mapper)使一些AWS服务更易于使用。让我们知道哪些库通过Github讨论对您最重要。

SDK目前为支持使用AWS JSON 1.0,AWS JSON 1.1和RESTJSON1协议的AWS服务提供支持。在扩展协议支持时,我们将为更多服务添加支持。您可以找到SDK当前支持我们的GitHub存储库的完整列表。您可以通过在GitHub上审阅我们的公共路线图来遵循我们的计划,为剩余的AWS服务提供支持。路线图还包括我们计划为AWS服务的新功能提供新功能,并为其他凭据提供商提供支持。路线图的目的是让社区了解即将到来的事情。我们将通过团队的进步,保持这种路线图。请为您添加“+1”的功能。您的投票将帮助我们优先考虑我们的路线图。

入门指南是开始使用SDK的好地方。检查一下,让我们知道你觉得怎么样!

RUST团队的AWS SDK正在寻找开发人员加入我们的团队。如果您想加入,请参阅我们团队的开放职位。