Standardendpunkt überschreiben

Die Rust-Clientbibliotheken konfigurieren den Endpunkt für jeden Dienst automatisch. Bei einigen Anwendungen muss der Standardendpunkt möglicherweise überschrieben werden, entweder weil ihr Netzwerk bestimmte Anforderungen hat oder weil sie regionale Versionen des Dienstes verwenden müssen. In diesem Leitfaden wird beschrieben, wie Sie den Standardendpunkt überschreiben.

Vorbereitung

In diesem Leitfaden wird die Secret Manager API verwendet. Folgen Sie der Kurzanleitung für den Dienst, um diese API zu aktivieren.

Eine vollständige Einrichtungsanleitung für die Rust-Clientbibliotheken finden Sie unter Erste Schritte mit Rust.

Abhängigkeiten

Sie müssen die Abhängigkeiten in der Datei Cargo.toml deklarieren:

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

Der Standardendpunkt

Sehen Sie sich zuerst an, wie Sie die Clientbibliotheken mit dem Standardendpunkt verwenden. Beginnen Sie mit einigen Nutzungsdeklarationen, um den Rest des Beispiels zu vereinfachen:

  1. Schreiben Sie das Beispiel in einer Funktion, die die Projekt-ID als Parameter erhält:

    /// # 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. Fügen Sie einige Nutzungsdeklarationen hinzu, um den Beispielcode zu vereinfachen:

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

  3. Initialisieren Sie den Client mit den Standardeinstellungen:

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

  4. Verwenden Sie diesen Client wie gewohnt:

    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");

Standardendpunkt überschreiben

In diesem Beispiel konfigurieren wir die Clientbibliothek so, dass die regionalen Endpunkte von Secret Manager verwendet werden. regionale Endpunkte. Mit derselben Überschreibung kann der Endpunkt mit einer der Optionen für den privaten Zugriff oder für standortbezogene Endpunkte in den Diensten konfiguriert werden, die sie unterstützen.

  1. Schreiben Sie wie zuvor ein Beispiel, das die Projekt-ID und die Region als Parameter erhält:

    /// # 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. Fügen Sie einige Nutzungsdeklarationen hinzu, um den Code zu vereinfachen:

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

  3. Initialisieren Sie den Client mit dem Zielendpunkt:

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

  4. Verwenden Sie diesen Client wie gewohnt:

    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");