Este documento descreve como implementar o seu agente A2A no Cloud Run. Estes passos garantem um funcionamento seguro, eficiente e escalável no ambiente da nuvem.
Antes de começar
- 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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Navegue para o diretório que contém o código-fonte do agente A2A:
cd PATH_TO_YOUR_AGENT_DIRECTORY
- Para ver as funções e as autorizações de IAM necessárias, consulte Funções e autorizações de IAM para agentes A2A do Cloud Run.
Configure a autenticação do serviço do Cloud Run
Depois de o agente A2A estar totalmente desenvolvido e o respetivo
ambiente de implementação preparado,
tem de configurar a autenticação e usar o comando gcloud run deploy
para
implementar o agente no Cloud Run.
Use uma das seguintes opções para configurar o acesso e a autenticação para o seu serviço do Cloud Run A2A:
Autenticação baseada na IAM para clientes Google Cloud internos: para clientes que operam no Google Cloud, como serviços internos como o Agentspace, a autenticação baseada na IAM é a abordagem segura recomendada. Estes clientes usam contas de serviço e requerem a função Cloud Run Invoker (
roles/run.invoker
) para invocar o seu serviço Cloud Run. Para mais informações, consulte o artigo Autenticação de serviço a serviço do Cloud Run.Para ativar a autenticação baseada na IAM para o seu serviço do Cloud Run:
- Tem de usar a flag
--no-allow-unauthenticated
durante a implementação.
- Tem de usar a flag
Autenticação ao nível do agente para exposição pública: se o seu servidor A2A for concebido para acesso público, processa a autenticação ao nível do agente.
Para permitir o acesso público ao seu serviço do Cloud Run:
- Tem de fornecer informações de autenticação cruciais no cartão do agente A2A através dos parâmetros
securitySchemes
esecurity
. Para mais informações, consulte o artigo Especificação A2A: detalhes do objeto SecurityScheme. - Use a flag
--allow-unauthenticated
durante a implementação. Para mais informações sobre como permitir o acesso público ao seu serviço do Cloud Run, consulte o artigo Autenticação de acesso público do Cloud Run.
- Tem de fornecer informações de autenticação cruciais no cartão do agente A2A através dos parâmetros
Implemente o agente A2A no Cloud Run
Use o
exemplo de ADK existente
para implementar o seu agente A2A. Especifique os seguintes parâmetros quando usar o comando gcloud run deploy
:
- Configuração de acesso:
- Para usar a autenticação de serviço baseada no IAM, use a flag
--no-allow-unauthenticated
. - Para tornar os serviços públicos na Internet, use a flag
--allow-unauthenticated
.
- Para usar a autenticação de serviço baseada no IAM, use a flag
- Memória: o requisito mínimo de memória para a instância do contentor ser executada é de
1Gi
. - Secrets: para usar secrets, especifique os parâmetros
DB_USER
eDB_PASS
. - Conta de serviço: para especificar uma conta de serviço, use o parâmetro
a2a-service-account
. - Variáveis de ambiente: para especificar variáveis de ambiente, use as seguintes variáveis:
APP_URL
DB_INSTANCE
DB_NAME
GOOGLE_GENAI_USE_VERTEXAI = true
Para testes locais, use uma configuração TaskStore
na memória.
Para implementar o seu serviço em produção, tem de usar armazenamento persistente para um servidor A2A de produção. Veja um exemplo na secção Implementação do AlloyDB para PostgreSQL.
Implemente com uma configuração de TaskStore
na memória
Para implementar o seu agente A2A com uma configuração TaskStore
na memória, use o seguinte comando gcloud run deploy
:
gcloud run deploy sample-a2a-agent \
--port=8080 \
--source="." \
--no-allow-unauthenticated \
--region=REGION \
--project=PROJECT_ID \
--memory=1Gi \
--service-account=a2a-service-account \
--set-env-vars=GOOGLE_GENAI_USE_VERTEXAI=true,\
GOOGLE_CLOUD_PROJECT="PROJECT_ID",\
GOOGLE_CLOUD_LOCATION="REGION",\
APP_URL="https://sample-a2a-agent-PROJECT_NUMBER.REGION.run.app"
Se não estiver no diretório que contém o código fonte do agente A2A,
atualize a flag --source
com o caminho completo para o código do agente.
Substitua o seguinte:
- REGION: a Google Cloud região onde quer implementar o seu serviço. Por exemplo,
europe-west1
. - PROJECT_ID: o ID do seu projeto.
- PROJECT_NUMBER: o número do seu projeto.
Implemente com o AlloyDB para PostgreSQL
Para persistir tarefas A2A, use o AlloyDB for PostgreSQL. Para implementar o seu agente A2A com o AlloyDB for PostgreSQL para armazenamento de tarefas persistente, use o seguinte comando gcloud run deploy
:
gcloud run deploy sample-a2a-agent \
--port=8080 \
--source="." \
--no-allow-unauthenticated \
--region=REGION \
--project=PROJECT_ID \
--memory=1Gi \
--update-secrets=DB_USER=alloy_db_user:latest,DB_PASS=alloy_db_pass:latest \
--service-account=a2a-service-account \
--set-env-vars=GOOGLE_GENAI_USE_VERTEXAI=true,\
GOOGLE_CLOUD_PROJECT="PROJECT_ID",\
GOOGLE_CLOUD_LOCATION="REGION",\
APP_URL="https://sample-a2a-agent-PROJECT_NUMBER.REGION.run.app",\
USE_ALLOY_DB="True",\
DB_INSTANCE="projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME/instances/primary-instance",\
DB_NAME="postgres"
Se não estiver no diretório que contém o código fonte do agente A2A,
atualize a flag --source
com o caminho completo para o código do agente.
Substitua o seguinte:
- REGION: a Google Cloud região onde quer implementar o seu serviço. Por exemplo,
europe-west1
. - PROJECT_ID: o ID do seu projeto.
- PROJECT_NUMBER: o número do seu projeto.
- CLUSTER_NAME: o nome do seu cluster do AlloyDB for PostgreSQL.
Compreenda o URL da aplicação do Cloud Run
Após a implementação bem-sucedida, o Cloud Run fornece automaticamente um run.app
URL, que funciona como o ponto final para consultar o seu serviço A2A ativo. O URL é determinístico e previsível se o nome do serviço for suficientemente curto.
- Formato do URL do Cloud Run:
https://TAG---SERVICE_NAME-PROJECT_NUMBER.REGION.run.app
- URL de exemplo:
https://sample-a2a-agent-1234.europe-west1.run.app
Depure falhas de implementação
Para depurar falhas de implementação do Cloud Run, considere o seguinte:
- Registos detalhados: para ver registos de implementação detalhados, defina a flag
--verbosity=info
no comandogcloud run deploy
. Diferença entre URLs: se o URL
run.app
devolvido pelo comando de implementação diferir do URL determinístico esperado, atualize a variável de ambienteAPP_URL
para o seu serviço do Cloud Run:Use o seguinte comando para atualizar a variável de ambiente
APP_URL
:gcloud run services update SERVICE_NAME \ --project="PROJECT_ID" \ --region="REGION" \ --update-env-vars=APP_URL="CLOUD_RUN_SERVICE_URL"
Substitua o seguinte:
- SERVICE_NAME: o nome do seu serviço do Cloud Run.
- PROJECT_ID: o ID do seu projeto.
- REGION: a Google Cloud região onde quer implementar o seu serviço. Por exemplo,
europe-west1
. - CLOUD_RUN_SERVICE_URL: o URL do seu serviço do Cloud Run.
Confirme se o elemento
APP_URL
está atualizado corretamente descrevendo o serviço:gcloud run services describe SERVICE_NAME \ --project="PROJECT_ID" \ --region="REGION"