Rust 使用入门

本文档介绍了如何设置本地 Rust 开发环境、安装适用于 Rust 的 Cloud 客户端库,以及运行您的第一个 Google CloudAPI 请求。

准备工作

在运行本文档中的命令之前,请先完成以下前提条件:

创建 Rust 项目

完成以下步骤,为您的程序创建一个二进制 crate:

  1. 创建二进制 crate:

    cargo new my-project
    
  2. 切换到新项目目录:

    cd my-project
    

安装 Google Cloud 客户端库

Rust 版 Cloud 客户端库为Google Cloud 服务(例如 Secret Manager)提供符合惯例的 Rust 客户端。如需添加和构建 Secret Manager 客户端库,请完成以下步骤:

  1. 在项目中启用 Secret Manager API:

    gcloud services enable secretmanager.googleapis.com
    
  2. 将 Secret Manager 客户端库添加到您的项目中:

    cargo add google-cloud-secretmanager-v1
    
  3. 添加 google-cloud-gax crate 以使用分页辅助函数:

    cargo add google-cloud-gax
    
  4. 为异步运行时添加 tokio crate:

    cargo add tokio --features macros,rt-multi-thread
    
  5. 将 src/main.rs 的内容替换为以下代码,以列出项目中的 Secret:

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        use google_cloud_gax::paginator::ItemPaginator as _;
        use google_cloud_secretmanager_v1::client::SecretManagerService;
        let project_id = std::env::args().nth(1).unwrap();
        let client = SecretManagerService::builder().build().await?;
    
        let mut items = client
            .list_secrets()
            .set_parent(format!("projects/{project_id}"))
            .by_item();
        while let Some(item) = items.next().await {
            println!("{}", item?.name);
        }
        Ok(())
    }

  6. 构建程序,验证其编译时没有错误:

    cargo build
    

运行 Rust 程序

对本地环境进行身份验证并运行示例程序:

  1. 为本地环境配置应用默认凭证:

    gcloud auth application-default login
    
  2. 运行程序,将 Google Cloud 项目 ID 作为参数传递:

    PROJECT_ID=$(gcloud config get project)
    cargo run -- "${PROJECT_ID}"
    

    该程序会输出项目中的 Secret 名称。如果您的项目还没有任何 Secret,请创建 Secret,然后再次运行该命令,以便在输出中看到它。

清理

为避免因本文档中使用的资源向您的 Google Cloud 账号收取费用,请删除您创建的所有测试 Secret,并在完成后移除本地 my-project 目录。