Tutorial sobre as funções remotas e a API Translation
Este tutorial descreve como criar uma função remota do BigQuery, invocar a API Cloud Translation e fazer a tradução de conteúdo de qualquer idioma para espanhol através de SQL e Python.
Seguem-se alguns exemplos de utilização desta função:
- Traduza os comentários dos utilizadores num Website para um idioma local
- Traduzir pedidos de apoio técnico de vários idiomas para um idioma comum para os operadores de apoio técnico
Objetivos
- Atribua as funções necessárias à sua conta.
- Crie uma função do Cloud Run Functions.
- Crie um conjunto de dados do BigQuery.
- Crie uma ligação do BigQuery e uma conta de serviço.
- Conceda autorizações à conta de serviço do BigQuery.
- Crie uma função remota do BigQuery.
- Chame a função remota do BigQuery.
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
Antes de começar
Recomendamos que crie um Google Cloud projeto para este tutorial. Além disso, certifique-se de que tem as funções necessárias para concluir este tutorial.
Configure um Google Cloud projeto
Para configurar um Google Cloud projeto para este tutorial, conclua estes passos:
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Proprietário de dados do BigQuery (
roles/bigquery.dataOwner
) -
Administrador da ligação do BigQuery (
roles/bigquery.connectionAdmin
) -
Programador de Cloud Functions (
roles/cloudfunctions.developer
) -
bigquery.datasets.create
-
bigquery.connections.create
-
bigquery.connections.get
-
cloudfunctions.functions.create
Copie a conta de serviço predefinida do Compute Engine. A sua conta de serviço predefinida tem o seguinte aspeto:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua
PROJECT_NUMBER
pelo ID do seu projeto.Na Google Cloud consola, aceda à página IAM.
Selecione o seu projeto.
Clique em
Conceder acesso e, de seguida, no campo Novos principais, cole a conta de serviço predefinida do Compute Engine que copiou anteriormente.Na lista Atribuir funções, pesquise e selecione Utilizador da Cloud Translation API.
Clique em Guardar.
Crie uma função das funções do Cloud Run com as seguintes especificações:
- Para Ambiente, selecione 2.ª geração.
- Em Nome da função, introduza
translation-handler
. - Para Região, selecione us-central1.
Para Número máximo de instâncias, introduza
10
.Esta definição encontra-se na secção Definições de tempo de execução, compilação, ligações e segurança.
Neste tutorial, usamos um valor inferior ao predefinido para controlar a taxa de pedidos enviados para o serviço de tradução.
Para Tempo de execução, selecione Python 3.10.
Para Entry point, introduza
handle_translation
.
Na lista de ficheiros, selecione main.py e, de seguida, cole o seguinte código.
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Atualize o
<your location>
comus-central1
.Na lista de ficheiros, selecione requirements.txt e, de seguida, cole o seguinte texto:
Clique em Implementar e aguarde que a função seja implementada.
Clique no separador Acionador.
Copie o valor do URL do acionador e guarde-o para mais tarde. Tem de usar este URL quando criar uma função remota do BigQuery.
- Para o ID do conjunto de dados, introduza
remote_function_test
. - Para Tipo de localização, selecione Várias regiões.
- Para Várias regiões, selecione EUA (várias regiões nos Estados Unidos).
Crie uma Google Cloud associação de recursos com as seguintes especificações:
- Em Tipo de ligação, selecione BigLake e funções remotas (recurso da nuvem)
- Para o ID da ligação, introduza
remote-function-connection
. - Para Tipo de localização, selecione Várias regiões.
- Para Várias regiões, selecione EUA (várias regiões nos Estados Unidos).
Abra a lista Ligações externas e selecione
us.remote-function-connection
.Copie o ID da conta de serviço e guarde-o para mais tarde. Tem de conceder autorizações a este ID no passo seguinte.
Aceda à página Cloud Run.
Selecione o seu projeto.
Selecione a caixa de verificação junto a
translation-handler
.No painel Autorizações, clique em Adicionar principal.
No campo Novos membros, introduza o ID da conta de serviço que copiou anteriormente.
Na lista Atribuir funções, pesquise e selecione Cloud Run Invoker.
Clique em Guardar.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza 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 acionador que guardou anteriormente quando criou uma função do Cloud Run Functions.Clique em Executar. É apresentada uma mensagem semelhante à seguinte:
This statement created a new function named your_project.remote_function_test.translate_text.
No editor de consultas do BigQuery, introduza a seguinte consulta e, em seguida, clique em Executar.
SELECT remote_function_test.translate_text('This new feature is fantastic!') AS translated_text;
Os resultados são semelhantes aos seguintes:
+-------------------------------------------+ | translated_text | +-------------------------------------------+ | ¡Esta nueva característica es fantástica! | +-------------------------------------------+
Opcional: para testar a função remota num conjunto de dados público, introduza a seguinte consulta e, de seguida, clique em Executar. Para limitar os resultados devolvidos, 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 aos 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. | +---------------------------------------------------------------------------+
- 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.
- Saiba como usar 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.
Funções necessárias para a sua conta
Para receber as autorizações de que precisa para realizar as tarefas neste tutorial, peça ao seu administrador que lhe conceda as seguintes funções da IAM no seu projeto:
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para realizar as tarefas neste tutorial. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para realizar as tarefas neste tutorial:
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Funções necessárias para a conta de serviço predefinida do Compute Engine
Quando ativou a API para funções do Cloud Run, foi criada uma conta de serviço predefinida do Compute Engine. Para concluir este tutorial, tem de atribuir à conta de serviço predefinida a função de utilizador da API Cloud Translation.
Crie uma função do Cloud Run Functions
Usando funções do Cloud Run, crie uma função que traduza o texto de entrada para espanhol.
Crie um conjunto de dados do BigQuery
Crie um conjunto de dados do BigQuery que vai conter a função remota. Quando criar o conjunto de dados, inclua estas especificações:
Crie uma ligação do BigQuery e uma conta de serviço
Crie uma ligação ao BigQuery para poder implementar uma função remota com quaisquer idiomas suportados nas funções do Cloud Run e no Cloud Run. Quando cria uma associação, é criada uma conta de serviço para essa associação.
Conceda autorizações à conta de serviço do BigQuery
A conta de serviço que criou no passo anterior precisa de autorização para usar o Cloud Run, para que a função remota do BigQuery possa usar a função de funções do Cloud Run. Para conceder autorizações à conta de serviço, conclua os passos seguintes:
Crie uma função remota do BigQuery
Para usar a função do Cloud Run que traduz texto para espanhol com uma função remota do BigQuery, conclua os seguintes passos.
Chame a função remota do BigQuery
Depois de criar a função remota, teste-a para se certificar de que está associada à função do Cloud Run e produz os resultados esperados em espanhol.
Elimine os recursos
Se não planeia usar estas funções neste projeto, pode evitar custos adicionais eliminando o projeto. Esta ação elimina permanentemente todos os recursos associados ao projeto.