Configurar o Rust no Cloud Shell

O Cloud Shell oferece um ambiente de linha de comando baseado em navegador para executar exemplos e testar as APIs do Google Cloud . Neste documento, mostramos como configurar o conjunto de ferramentas do Rust e executar um exemplo do Secret Manager usando as bibliotecas de cliente do Cloud para Rust no Cloud Shell.

Antes de começar

Antes de executar os comandos neste documento, selecione ou crie um projeto doGoogle Cloud com o faturamento ativado.

Iniciar o Cloud Shell

Siga estas etapas para selecionar um projeto e abrir uma sessão do Cloud Shell:

  1. No console do Google Cloud , selecione ou crie um projeto do Google Cloud .

    Acessar o seletor de projetos

  2. Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud para iniciar uma sessão do shell. Se solicitado, autorize o Cloud Shell a usar suas credenciais para chamadas de API do Google Cloud .

Configurar o Rust

O Cloud Shell inclui a rustup pré-instalada. Siga as etapas abaixo para configurar e verificar o conjunto de ferramentas do Rust:

  1. Configure o conjunto de ferramentas estável do Rust como padrão:

    rustup default stable
    
  2. Verifique a instalação do Cargo e do Rust:

    cargo --version
    

Instalar uma biblioteca de cliente no Cloud Shell

Para ativar a API, adicionar dependências e executar o programa de exemplo, siga estas etapas:

  1. Ative a API Secret Manager no seu projeto:

    gcloud services enable secretmanager.googleapis.com
    
  2. Crie um crate binário e mude para o diretório dele:

    cargo new my-project
    cd my-project
    
  3. Adicione a biblioteca de cliente do Secret Manager, google-cloud-gax e tokio ao seu projeto:

    cargo add google-cloud-secretmanager-v1 google-cloud-gax
    cargo add tokio --features macros,rt-multi-thread
    
  4. Substitua o conteúdo de src/main.rs pelo seguinte código:

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        use google_cloud_gax::paginator::ItemPaginator as _;
        use google_cloud_secretmanager_v1::client::SecretManagerService;
        let project_id = std::env::args().nth(1).unwrap();
        let client = SecretManagerService::builder().build().await?;
    
        let mut items = client
            .list_secrets()
            .set_parent(format!("projects/{project_id}"))
            .by_item();
        while let Some(item) = items.next().await {
            println!("{}", item?.name);
        }
        Ok(())
    }

  5. Execute o programa, transmitindo o ID do projeto do Google Cloud como um argumento:

    PROJECT_ID=$(gcloud config get project)
    cargo run -- "${PROJECT_ID}"
    

    O programa imprime os nomes dos secrets no projeto. Se o projeto ainda não tiver secrets, crie um e execute o comando novamente para que ele apareça na saída.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste documento, exclua todos os secrets de teste criados e remova o diretório my-project do diretório inicial do Cloud Shell quando terminar.