1 个稳定版本
1.2.0 | 2024 年 3 月 1 日 |
---|
2192 在 网络编程 中排名 #2192
每月下载量 2,842
46MB
661K SLoC
最小化 AWS SDK EC2
仅保留以下 API
- create_vpc_endpoint
- delete_vpc_endpoints
- describe_vpc_endpoints
- describe_vpc_endpoint_services
- describe_subnets
如何实现?
复制原始版本
cp -R ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-sdk-ec2-1.2.0/src .
cp ~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-sdk-ec2-1.2.0/Cargo.toml .
- 修改
client.rs
和operation.rs
以仅保留所需的mod
。 - 更新
protocol_serde.rs
和types.rs
。这需要包含所需的 API,以及一些其他依赖类型。因此需要手动操作。
lib.rs
:
Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services 云中提供安全且可扩展的计算能力。使用 Amazon EC2 可以避免预先投资硬件,从而可以更快地开发和部署应用程序。Amazon Virtual Private Cloud (Amazon VPC) 允许您在 Amazon Web Services 云中配置一个逻辑上隔离的部分,在那里您可以在您定义的虚拟网络中启动 Amazon Web Services 资源。Amazon Elastic Block Store (Amazon EBS) 为 EC2 实例提供块级存储卷。EBS 卷是高度可用且可靠的存储卷,可以连接到任何正在运行的实例,并像硬盘一样使用。
要了解更多信息,请参阅以下资源
- Amazon EC2: Amazon EC2 产品页面,Amazon EC2 文档
- Amazon EBS: Amazon EBS 产品页面,Amazon EBS 文档
- Amazon VPC: Amazon VPC 产品页面,Amazon VPC 文档
- VPN: VPN 产品页面,VPN 文档
入门
许多服务和操作都有示例,请查看 GitHub 中的示例文件夹。
SDK 为每个 AWS 服务提供一个 crate。您必须在您的 Rust 项目中添加 Tokio 作为依赖项以执行异步代码。要将 aws-sdk-ec2
添加到您的项目中,请将以下内容添加到您的 Cargo.toml 文件中
[dependencies]
aws-config = { version = "1.0.1", features = ["behavior-version-latest"] }
aws-sdk-ec2 = "1.2.0"
tokio = { version = "1", features = ["full"] }
然后在代码中,可以使用以下方式创建客户端:
use aws_sdk_ec2 as ec2;
#[::tokio::main]
async fn main() -> Result<(), ec2::Error> {
let config = aws_config::load_from_env().await;
let client = aws_sdk_ec2::Client::new(&config);
// ... make some calls with the client
Ok(())
}
有关可以调用的方法以及每个调用输入输出的信息,请参阅客户端文档。
使用SDK
在SDK发布之前,我们将把有关使用SDK的信息添加到开发者指南中。您可以通过提交问题并描述您要执行的操作来建议指南的附加章节。
获取帮助
- GitHub讨论 - 用于想法、RFC和一般问题
- GitHub问题 - 用于错误报告和功能请求
- 生成的文档(最新版本)
- 使用示例
库组织
对于大多数客户来说,入口点是Client
,它公开了Amazon Elastic Compute Cloud提供的每个API的方法。这些方法的返回值是“流畅构建器”,通过构建器样式函数调用链添加该API的不同输入,然后调用send()
来获取一个Future
,该Future将导致成功输出或SdkError
。
这些API输入中的一些可能是结构体或枚举,以提供更复杂的结构化信息。这些结构体和枚举位于types
中。还有一些表示数据(如日期时间或二进制块)的更简单的类型,位于primitives
中。
配置客户端所需的全部类型都位于config
中。
operation
模块为每个API都有一个子模块,每个子模块包含该API的输入、输出和错误类型,以及构建这些类型的构建器。
有一个顶层Error
类型,它包含客户端可以返回的所有错误。任何其他错误类型都可以通过From
特质转换为这个Error
类型。
此crate中的其他模块在正常使用中不是必需的。
依赖关系
~10–22MB
~319K SLoC