Remplacer le point de terminaison par défaut

Les bibliothèques clientes Rust configurent automatiquement le point de terminaison pour chaque service. Certaines applications peuvent avoir besoin de remplacer le point de terminaison par défaut, soit parce que leur réseau a des exigences spécifiques, soit parce qu'elles doivent utiliser des versions régionales du service. Ce guide vous explique comment remplacer la valeur par défaut.

Prérequis

Ce guide utilise l'API Secret Manager. Pour activer cette API, suivez le guide de démarrage rapide du service.

Pour obtenir des instructions de configuration complètes pour les bibliothèques clientes Rust, consultez Premiers pas avec Rust.

Dépendances

Vous devez déclarer les dépendances dans votre fichier Cargo.toml :

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

Point de terminaison par défaut

Tout d'abord, découvrez comment utiliser les bibliothèques clientes avec le point de terminaison par défaut. Commencez par écrire des déclarations d'utilisation pour simplifier le reste de l'exemple :

  1. Écrivez l'exemple dans une fonction qui reçoit l'ID du projet en tant que paramètre :

    /// # 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. Ajoutez des déclarations d'utilisation pour simplifier l'exemple de code :

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

  3. Initialisez le client à l'aide des valeurs par défaut :

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

  4. Utilisez ce client comme d'habitude :

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

Remplacer le point de terminaison par défaut

Dans cet exemple, nous configurons la bibliothèque cliente pour qu'elle utilise les points de terminaison régionaux de Secret Manager. La même substitution peut être utilisée pour configurer le point de terminaison avec l'une des options d'accès privé ou pour les points de terminaison régionaux dans les services qui les acceptent.

  1. Comme précédemment, écrivez un exemple qui reçoit l'ID et la région du projet en tant que paramètres :

    /// # 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. Ajoutez des déclarations d'utilisation pour simplifier le code :

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

  3. Initialisez le client à l'aide du point de terminaison cible :

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

  4. Utilisez ce client comme d'habitude :

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