Neste tutorial, mostramos como criar um fluxo de trabalho que usa o conector da API Cloud Translation para traduzir arquivos para outros idiomas no modo em lote assíncrono. Isso fornece saída em tempo real à medida que as entradas estão sendo processadas.
Objetivos
Neste tutorial, você aprenderá a:
- criar um bucket de entrada do Cloud Storage;
- criar dois arquivos em inglês e fazer upload deles no bucket de entrada;
- criar um fluxo de trabalho que use o conector da API Cloud Translation para traduzir os dois arquivos para francês e espanhol e salvar os resultados em um bucket de saída;
- implantar e executar o fluxo de trabalho para orquestrar todo o processo.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito de Google Cloud .
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Cloud Storage, Translation e Workflows:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable storage.googleapis.com
translate.googleapis.com workflows.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Cloud Storage, Translation e Workflows:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable storage.googleapis.com
translate.googleapis.com workflows.googleapis.com - Atualize os componentes da gcloud:
gcloud components update
- Faça login usando sua conta:
gcloud auth login
- Defina o local padrão usado neste tutorial:
gcloud config set workflows/location us-central1
Como este tutorial usa o modelo padrão do AutoML Translation, que está em
us-central1, defina o local comous-central1.Se você estiver usando um modelo ou glossário do AutoML Translation diferente do padrão, verifique se ele está no mesmo local da chamada ao conector. Caso contrário, um erro
INVALID_ARGUMENT (400)será retornado. Para detalhes, consulte o método batchTranslateText.
Criar um bucket e os arquivos do Cloud Storage
Use o Cloud Storage para armazenar objetos. Objetos são partes imutáveis de dados que consistem em um arquivo de qualquer formato e são armazenados em contêineres chamados buckets.
Crie um bucket do Cloud Storage para armazenar os arquivos que serão traduzidos:
BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files gcloud storage buckets create gs://${BUCKET_INPUT}
Crie dois arquivos em inglês e faça upload deles para o bucket de entrada:
echo "Hello World!" > file1.txt gcloud storage cp file1.txt gs://${BUCKET_INPUT} echo "Workflows connectors simplify calling services." > file2.txt gcloud storage cp file2.txt gs://${BUCKET_INPUT}
Implantar e executar o fluxo de trabalho
Um fluxo de trabalho é composto por uma série de etapas descritas usando a sintaxe dos fluxos de trabalho, que pode ser escrita em formato YAML ou JSON. Essa é a definição do fluxo de trabalho. Depois de criar um fluxo de trabalho, implante-o para que ele fique disponível para execução.
Crie um arquivo de texto com o nome de arquivo
workflow.yamlcom o seguinte conteúdo:O fluxo de trabalho atribui variáveis, cria um bucket de saída e inicia a tradução dos arquivos, salvando os resultados no bucket de saída.
Depois de criar o fluxo de trabalho, implante-o:
gcloud workflows deploy batch-translation --source=workflow.yaml
Execute o fluxo de trabalho:
gcloud workflows execute batch-translation
Para ver o status do fluxo de trabalho, execute o comando retornado. Exemplo:
gcloud workflows executions describe eb4a6239-cffa-4672-81d8-d4caef7d8424 / --workflow batch-translation / --location us-central1
O fluxo de trabalho precisa ser
ACTIVE. Após alguns minutos, os arquivos traduzidos (em francês e espanhol) serão enviados ao bucket de saída.
Listar objetos no bucket de saída
É possível confirmar se o fluxo de trabalho funcionou conforme esperado listando os objetos no bucket de saída.
Recupere o nome do bucket de saída:
gcloud storage ls
A saída será assim:
gs://PROJECT_ID-input-files/ gs://PROJECT_ID-output-files-TIMESTAMP/
Liste os objetos no bucket de saída.
gcloud storage ls gs://PROJECT_ID-output-files-TIMESTAMP/** --recursive
Após alguns minutos, os arquivos traduzidos em francês e espanhol (dois de cada) serão listados.
Limpar
Se você criou um novo projeto para este tutorial, exclua o projeto. Se você usou um projeto atual e quer mantê-lo sem as alterações incluídas neste tutorial, exclua os recursos criados para o tutorial.
Exclua o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Excluir recursos do tutorial
Remova as configurações padrão da gcloud que você adicionou durante a configuração do tutorial:
gcloud config unset workflows/location
Exclua o fluxo de trabalho criado neste tutorial:
gcloud workflows delete WORKFLOW_NAME
Exclua um bucket e os objetos criados neste tutorial:
gcloud storage rm gs://BUCKET_NAME --recursive
Em que
BUCKET_NAMEé o nome do bucket a ser excluído. Por exemplo,my-bucket.O resultado parecido com este:
Removing gs://my-bucket/...
A seguir
- Para saber mais sobre fluxos de trabalho, consulte Noções básicas sobre Workflows.
- Para saber mais sobre a sintaxe do Workflows, consulte a referência de sintaxe do Workflows.
- Para saber mais sobre os conectores do Workflows, consulte Noções básicas sobre conectores.