Mengganti endpoint default

Library klien Rust otomatis mengonfigurasi endpoint untuk setiap layanan. Beberapa aplikasi mungkin perlu mengganti endpoint default karena jaringan mereka memiliki persyaratan tertentu, atau karena mereka perlu menggunakan versi regional dari layanan tersebut. Panduan ini menunjukkan cara mengganti endpoint default.

Prasyarat

Panduan ini menggunakan Secret Manager API. Untuk mengaktifkan API ini, ikuti panduan memulai cepat layanan.

Untuk mengetahui petunjuk penyiapan lengkap untuk library klien Rust, lihat Memulai Rust.

Dependensi

Anda harus mendeklarasikan dependensi dalam file Cargo.toml:

cargo add google-cloud-secretmanager-v1 google-cloud-gax

Endpoint default

Pertama, tinjau cara menggunakan library klien dengan endpoint default. Mulailah dengan menulis beberapa deklarasi penggunaan untuk menyederhanakan contoh lainnya:

  1. Tulis contoh dalam fungsi yang menerima project ID sebagai parameter:

    /// # Parameters
    /// - `project_id`: the id of a Google Cloud project, or its numeric ID.
    ///   For example: `my-project`.
    pub async fn sample(project_id: &str) -> anyhow::Result<()> {

  2. Tambahkan beberapa deklarasi penggunaan untuk menyederhanakan kode contoh:

    pub use google_cloud_gax::paginator::ItemPaginator;
    pub use google_cloud_secretmanager_v1::client::SecretManagerService;

  3. Inisialisasi klien menggunakan nilai default:

    let client = SecretManagerService::builder().build().await?;

  4. Dan gunakan klien ini seperti biasa:

    let mut items = client
        .list_secrets()
        .set_parent(format!("projects/{project_id}"))
        .by_item();
    println!("listing all secrets in project {project_id}");
    while let Some(secret) = items.next().await.transpose()? {
        println!("  {secret:?}");
    }
    println!("DONE");

Mengganti endpoint default

Dalam contoh ini, kita akan mengonfigurasi library klien untuk menggunakan endpoint regional Secret Manager . Penggantian yang sama dapat digunakan untuk mengonfigurasi endpoint dengan salah satu opsi akses pribadi, atau untuk endpoint lokasi di layanan yang mendukungnya.

  1. Seperti sebelumnya, tulis contoh yang menerima project ID dan region sebagai parameter:

    /// # Parameters
    /// - `project_id`: the id of a Google Cloud project, or its numeric ID.
    ///   For example: `my-project`.
    /// - `region`: the id of a Gooogle Cloud region. For example `us-central1`.
    pub async fn sample(project_id: &str, region: &str) -> anyhow::Result<()> {

  2. Tambahkan beberapa deklarasi penggunaan untuk menyederhanakan kode:

    pub use google_cloud_gax::paginator::ItemPaginator;
    pub use google_cloud_secretmanager_v1::client::SecretManagerService;

  3. Inisialisasi klien menggunakan endpoint target:

    let client = SecretManagerService::builder()
        .with_endpoint(format!("https://secretmanager.{region}.rep.googleapis.com"))
        .build()
        .await?;

  4. Dan gunakan klien ini seperti biasa:

    let mut items = client
        .list_secrets()
        .set_parent(format!("projects/{project_id}/locations/{region}"))
        .by_item();
    println!("listing all secrets in project {project_id} and region {region}");
    while let Some(secret) = items.next().await.transpose()? {
        println!("  {secret:?}");
    }
    println!("DONE");