Este documento descreve como implantar seu agente A2A no Cloud Run. Essas etapas garantem uma operação segura, eficiente e escalonável no ambiente de 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
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
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
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
- Navegue até o diretório que contém o código-fonte do seu agente A2A:
cd PATH_TO_YOUR_AGENT_DIRECTORY
- Para os papéis e permissões do IAM necessários, consulte Papéis e permissões do IAM para agentes A2A do Cloud Run.
Autenticação baseada no IAM para clientes internos Google Cloud :para clientes que operam em Google Cloud, como serviços internos como Agentspace, a autenticação baseada no IAM é a abordagem segura recomendada. Esses clientes usam contas de serviço e exigem o papel de chamador do Cloud Run (
roles/run.invoker
) para invocar seu serviço do Cloud Run. Para mais informações, consulte Autenticação serviço a serviço do Cloud Run.Para ativar a autenticação baseada no IAM para seu serviço do Cloud Run:
- Use a flag
--no-allow-unauthenticated
durante a implantação.
- Use a flag
Autenticação no nível do agente para exposição pública:se o servidor A2A for projetado para acesso público, ele vai processar a autenticação no nível do agente.
Para permitir o acesso público ao serviço do Cloud Run:
- Você precisa fornecer informações de autenticação essenciais no cartão do seu
agente A2A usando os parâmetros
securitySchemes
esecurity
. Para mais informações, consulte Especificação A2A: detalhes do objeto SecurityScheme. - Use a flag
--allow-unauthenticated
durante a implantação. Para mais informações sobre como permitir acesso público ao seu serviço do Cloud Run, consulte Autenticação de acesso público do Cloud Run.
- Você precisa fornecer informações de autenticação essenciais no cartão do seu
agente A2A usando os parâmetros
- 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 execução da instância de contêiner é
1Gi
. - Chaves secretas: para usar chaves secretas, 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
- REGION: a região Google Cloud em que você quer
implantar o serviço. Por exemplo:
europe-west1
- PROJECT_ID: o ID do projeto.
- PROJECT_NUMBER: o número do projeto.
- REGION: a região Google Cloud em que você quer
implantar o serviço. Por exemplo:
europe-west1
- PROJECT_ID: o ID do projeto.
- PROJECT_NUMBER: o número do projeto.
- CLUSTER_NAME: o nome do cluster do AlloyDB para PostgreSQL.
- Formato do URL do Cloud Run:
https://TAG---SERVICE_NAME-PROJECT_NUMBER.REGION.run.app
- Exemplo de URL:
https://sample-a2a-agent-1234.europe-west1.run.app
- Registros detalhados:para registros detalhados de implantação, defina a flag
--verbosity=info
no comandogcloud run deploy
. Incompatibilidade de URL:se o URL
run.app
retornado pelo comando de implantação for diferente do URL determinístico esperado, atualize a variável de ambienteAPP_URL
para seu serviço do Cloud Run:Use o comando a seguir 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:
- SERVICE_NAME: o nome do seu serviço do Cloud Run;
- PROJECT_ID: o ID do projeto.
- REGION: a região Google Cloud em que você quer
implantar o serviço. Por exemplo:
europe-west1
- CLOUD_RUN_SERVICE_URL: o URL do seu serviço do Cloud Run.
Verifique se o
APP_URL
foi atualizado corretamente descrevendo o serviço:gcloud run services describe SERVICE_NAME \ --project="PROJECT_ID" \ --region="REGION"
Configurar a autenticação do serviço do Cloud Run
Depois que o agente A2A estiver totalmente desenvolvido e o
ambiente de implantação estiver preparado,
configure a autenticação e use o comando gcloud run deploy
para
implantar o agente no Cloud Run.
Use uma das seguintes opções para configurar o acesso e a autenticação do serviço do Cloud Run A2A:
Implantar o agente A2A no Cloud Run
Use o
exemplo de ADK
para implantar seu agente A2A. Especifique os seguintes parâmetros ao usar o comando
gcloud run deploy
:
Para testes locais, use uma configuração TaskStore
na memória.
Para implantar seu serviço em produção, use o armazenamento permanente para
um servidor A2A de produção. Confira um exemplo na seção Implantação do AlloyDB para PostgreSQL.
Implantar com uma configuração TaskStore
na memória
Para implantar
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 você não estiver no diretório que contém o código-fonte do seu agente A2A,
atualize a flag --source
com o caminho completo para o
código do agente.
Substitua:
Implantar com o AlloyDB para PostgreSQL
Para manter as tarefas de A2A, use o AlloyDB para PostgreSQL. Para implantar seu agente A2A com o
AlloyDB para PostgreSQL para armazenamento de tarefas persistentes, 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 você não estiver no diretório que contém o código-fonte do seu agente A2A,
atualize a flag --source
com o caminho completo para o
código do agente.
Substitua:
Entender o URL do aplicativo do Cloud Run
Quando a implantação é bem-sucedida, o Cloud Run fornece automaticamente um run.app
URL, que serve como endpoint para consultar seu serviço A2A ativo. O URL é determinístico e previsível se o nome do serviço for suficientemente curto.
Depurar falhas de implantação
Para depurar falhas de implantação do Cloud Run, considere o seguinte: