As Google Cloud bibliotecas de cliente para Rust usam clientes como a principal abstração para interagir com serviços específicos. Os clientes são implementados como structs do Rust, com métodos correspondentes a cada RPC oferecido pelo serviço. Para usar um serviçoGoogle Cloud com as bibliotecas de cliente Rust, primeiro é necessário inicializar um cliente.
Neste guia, você vai inicializar um cliente e usá-lo para fazer uma RPC com a API Secret Manager. A mesma estrutura se aplica a qualquer outro serviço em Google Cloud.
Antes de seguir este guia, faça o seguinte:
- Siga um dos guias para iniciantes do Secret Manager, como o guia sobre como criar um secret. Esses guias abordam conceitos específicos do serviço com mais detalhes e fornecem orientações detalhadas sobre os pré-requisitos do projeto.
- Siga as instruções no guia de autenticação para usar bibliotecas de cliente. Neste guia, mostramos como fazer login para configurar o Application Default Credentials usado neste guia.
Dependências
Com o Rust, é necessário declarar a dependência no arquivo Cargo.toml:
$ cargo add google-cloud-secretmanager-v1
Para inicializar um cliente, primeiro chame Client::builder() para receber um
ClientBuilder
adequado e, em seguida, chame build() nesse criador para criar um cliente.
O código a seguir cria um cliente com a configuração padrão, que foi projetada para atender aos requisitos da maioria dos casos de uso.
let client = SecretManagerService::builder().build().await?;
Depois que o cliente for inicializado, você poderá usá-lo para fazer RPCs:
use google_cloud_gax::paginator::Paginator as _;
let mut items = client
.list_locations()
.set_name(format!("projects/{project_id}"))
.by_page();
while let Some(page) = items.next().await {
let page = page?;
for location in page.locations {
println!("{}", location.name);
}
}
Este exemplo mostra uma chamada para list_locations, que retorna informações sobre
os locais compatíveis com o serviço (neste caso, o Secret Manager).
A saída do exemplo será semelhante a esta:
projects/123456789012/locations/europe-west8
projects/123456789012/locations/europe-west9
projects/123456789012/locations/us-east5