Anula el extremo predeterminado

Las bibliotecas cliente de Rust configuran automáticamente el extremo para cada servicio. Es posible que algunas aplicaciones deban anular el extremo predeterminado porque su red tiene requisitos específicos o porque necesitan usar versiones regionales del servicio. En esta guía, se muestra cómo anular el valor predeterminado.

Requisitos previos

En esta guía, se usa la API de Secret Manager. Para habilitar esta API, sigue la guía de inicio rápido del servicio.

Para obtener instrucciones completas de configuración de las bibliotecas cliente de Rust, consulta Comienza a usar Rust.

Dependencias

Debes declarar las dependencias en tu archivo Cargo.toml:

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

El extremo predeterminado

Primero, revisa cómo usar las bibliotecas cliente con el extremo predeterminado. Comienza por escribir algunas declaraciones de uso para simplificar el resto del ejemplo:

  1. Escribe el ejemplo en una función que reciba el ID del proyecto como parámetro:

    /// # 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. Agrega algunas declaraciones de uso para simplificar el código de ejemplo:

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

  3. Inicializa el cliente con los valores predeterminados:

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

  4. Y usa este cliente como de costumbre:

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

Anula el extremo predeterminado

En este ejemplo, configuramos la biblioteca cliente para que use los extremos regionales del administrador de secretos. La misma anulación se puede usar para configurar el extremo con una de las opciones de acceso privado o para los extremos de ubicación en los servicios que los admiten.

  1. Como antes, escribe un ejemplo que reciba el ID del proyecto y la región como parámetros:

    /// # 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. Agrega algunas declaraciones de uso para simplificar el código:

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

  3. Inicializa el cliente con el extremo de destino:

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

  4. Y usa este cliente como de costumbre:

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