Tutorial de funções remotas e API Translation
Neste tutorial, descrevemos como criar uma função remota do BigQuery, invocar a API Cloud Translation e realizar a tradução de conteúdo de qualquer idioma para o espanhol usando SQL e Python.
Os casos de uso dessa função incluem o seguinte:
- Traduzir comentários de usuários em um site para um idioma local
- Traduzir solicitações de suporte de vários idiomas para um comum para workers do caso de suporte
Objetivos
- Atribuir as funções necessárias à sua conta.
- Crie uma função das funções do Cloud Run.
- Crie um conjunto de dados do BigQuery.
- Criar uma conexão e uma conta de serviço do BigQuery.
- Conceder permissões à conta de serviço do BigQuery.
- Criar uma função remota do BigQuery.
- Chamar a função remota do BigQuery.
Custos
Neste documento, você 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
Recomendamos que você crie um projeto do Google Cloud para este tutorial. Além disso, verifique se você tem os papéis necessários para concluir este tutorial.
Configure um projeto do Google Cloud
Para configurar um projeto do Google Cloud para este tutorial, conclua estas etapas:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Translation, Cloud Run functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry, and Cloud Run Admin APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Translation, Cloud Run functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry, and Cloud Run Admin APIs.
Papéis necessários para sua conta
Para receber as permissões necessárias para executar as tarefas neste tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:
-
Proprietário de dados do BigQuery (
roles/bigquery.dataOwner
) -
Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin
) -
Desenvolvedor do Cloud Functions (
roles/cloudfunctions.developer
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para executar as tarefas neste tutorial. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para executar as tarefas deste tutorial:
-
bigquery.datasets.create
-
bigquery.connections.create
-
bigquery.connections.get
-
cloudfunctions.functions.create
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Papéis necessários para a conta de serviço padrão do Compute Engine
Quando você ativa a API para as funções do Cloud Run, uma conta de serviço padrão do Compute Engine é criada. Para concluir este tutorial, conceda a essa conta de serviço padrão o papel de usuário da API Cloud Translation.
Copie a conta de serviço padrão do Compute Engine. A conta de serviço padrão é assim:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua
PROJECT_NUMBER
pela ID do seu projeto.No console do Google Cloud, abra a página IAM.
Selecione o projeto.
Clique em
Conceder acesso e, no campo Novos principais, cole a conta de serviço padrão do Compute Engine que você copiou anteriormente.Na lista Atribuir papéis, pesquise e selecione Usuário da API Cloud Translation.
Clique em Salvar.
Criar uma função das funções do Cloud Run
Usando as funções do Cloud Run, crie uma função que traduza o texto de entrada em espanhol.
Crie uma função das funções do Cloud Run com as seguintes especificações:
- Em Ambiente, selecione segunda geração.
- Em Nome da função, insira
translation-handler
. - Em Região, selecione us-central1.
Em Número máximo de instâncias, insira
10
.Essa configuração está na seção Ambiente de execução, build, conexões e configurações de segurança.
Neste tutorial, usamos um valor menor que o padrão para controlar a taxa de solicitação enviada ao Translation.
Em Ambiente de execução, selecione Python 3.10.
Em Ponto de entrada, digite
handle_translation
.
Na lista de arquivos, selecione main.py e cole o código a seguir.
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Atualizar
<your location>
comus-central1
.Na lista de arquivos, selecione requirements.txt e cole o seguinte texto:
Clique em Implantar e aguarde a implantação da função.
Clique na guia Acionador.
Copie e salve o valor de URL do acionador para uso posterior. Use esse URL ao criar uma função remota do BigQuery.
Criar um conjunto de dados do BigQuery
Crie um conjunto de dados do BigQuery que contenha a função remota. Ao criar o conjunto de dados, inclua estas especificações:
- Para o código do conjunto de dados, insira
remote_function_test
. - Em Tipo de local, selecione Multirregional.
- Em Multirregião, selecione EUA (várias regiões nos Estados Unidos).
Criar uma conexão e uma conta de serviço do BigQuery
Crie uma conexão do BigQuery para implementar uma função remota com qualquer linguagem compatível nas funções do Cloud Run e no Cloud Run. Ao criar uma conexão, é criada uma conta de serviço para ela.
Crie uma conexão de recursos do Google Cloud com as seguintes especificações:
- Em Tipo de conexão, selecione BigLake e funções remotas (Cloud Resource).
- Em ID da conexão, insira
remote-function-connection
. - Em Tipo de local, selecione Multirregional.
- Em Multirregião, selecione EUA (várias regiões nos Estados Unidos).
Abra a lista Conexões externas e selecione
us.remote-function-connection
.Copie o ID da conta de serviço e salve-o para mais tarde. É necessário conceder permissões a esse ID na próxima etapa.
Conceder permissões à conta de serviço do BigQuery
A conta de serviço que você criou na etapa anterior precisa de permissão para usar o Cloud Run. Assim, a função remota do BigQuery pode usar a função das funções do Cloud Run. Para conceder permissões à conta de serviço, siga estas etapas:
Acessar a página Cloud Run
Selecione o projeto.
Marque a caixa de seleção ao lado de
translation-handler
.No painel Permissões, clique em Adicionar participantes.
No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.
Na lista Atribuir papéis, pesquise e selecione Invocador do Cloud Run.
Clique em Salvar.
Criar uma função remota do BigQuery
Para usar a função das funções do Cloud Run que traduz texto em espanhol com uma função remota do BigQuery, conclua as etapas a seguir.
No Console do Google Cloud, acesse a página BigQuery.
No Editor de consultas, insira a seguinte consulta:
CREATE OR REPLACE FUNCTION `remote_function_test.translate_text`(x STRING) RETURNS STRING REMOTE WITH CONNECTION `us.remote-function-connection` OPTIONS ( endpoint = 'TRIGGER_URL', max_batching_rows = 10);
Substitua
TRIGGER_URL
pelo URL do gatilho que você salvou anteriormente ao criar uma função das funções do Cloud Run.Clique em Executar. Uma mensagem semelhante a esta será exibida:
This statement created a new function named your_project.remote_function_test.translate_text.
Chamar a função remota do BigQuery
Depois de criar a função remota, teste se ela está vinculada à função das funções do Cloud Run e produz os resultados esperados em espanhol.
No editor de consultas do BigQuery, insira a consulta a seguir e clique em Executar.
SELECT remote_function_test.translate_text('This new feature is fantastic!') AS translated_text;
Os resultados são semelhantes às seguintes:
+-------------------------------------------+ | translated_text | +-------------------------------------------+ | ¡Esta nueva característica es fantástica! | +-------------------------------------------+
Opcional: para testar a função remota em um conjunto de dados público, insira a consulta a seguir e clique em Executar. Para limitar os resultados retornados, use a cláusula
LIMIT
.SELECT text, remote_function_test.translate_text(text) AS translated_text FROM (SELECT text FROM `bigquery-public-data.hacker_news.full` LIMIT 3);
Os resultados são semelhantes às seguintes:
+---------------------------------------------------------------------------+ | text | translated_text | +---------------------------------------------------------------------------+ | These benchmarks look good. | Estos puntos de referencia se ven bien. | | Who is using Java? | ¿Quién está usando Java? | | You need more database storage. | Necesitas más almacenamiento. | +---------------------------------------------------------------------------+
Excluir os recursos
Se você não pretende usar essas funções neste projeto, exclua seu projeto para evitar custos adicionais. Isso exclui permanentemente todos os recursos associados ao projeto.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
- Saiba como usar as funções remotas no BigQuery.
- Saiba mais sobre a Tradução.
- Saiba mais sobre as funções do Cloud Run.
- Saiba mais sobre o Cloud Run.