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 erfahren Sie, wie Sie die Standardeinstellung ü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 Anleitung zur Einrichtung der 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 „use“-Deklarationen, um den Rest des Beispiels zu vereinfachen:

  1. Schreiben Sie das Beispiel in eine Funktion, die die Projekt-ID als Parameter empfängt:

    /// # 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 „use“-Deklarationen 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 für die Verwendung der regionalen Endpunkte von Secret Manager. 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, in dem die Projekt-ID und die Region als Parameter empfangen werden:

    /// # 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 use-Deklarationen 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");