Questa guida fornisce una panoramica su come preparare e configurare gli agenti Agent2Agent (A2A) per il deployment su Cloud Run. Vengono illustrati i passaggi essenziali, come la configurazione di un ambiente cloud, la configurazione dei ruoli Identity and Access Management (IAM) richiesti e la preparazione dell'agente per il deployment.
Prima di iniziare
Prima di iniziare a sviluppare e implementare l'agente A2A, acquisisci familiarità con i seguenti concetti e risorse:
- Consulta le specifiche A2A ufficiali per comprendere l'architettura del protocollo e i concetti di base per la comunicazione tra agenti.
- Esplora gli agenti di esempio esistenti per ottenere informazioni pratiche e accelerare il processo di sviluppo degli agenti A2A. In particolare, esamina l'Google esempio di deployment di Cloud Run che utilizza l'Agent Development Kit (ADK).
Roadmap per l'implementazione dell'agente A2A
Per eseguire il deployment dell'agente, completa i seguenti passaggi:
- Comprendi le specifiche A2A e utilizza gli agenti di esempio per accelerare lo sviluppo.
- Stabilisci ruoli IAM sicuri per il tuo servizio Cloud Run.
- Configura il tuo ambiente cloud impostando i secret necessari e creando un Dockerfile.
- Esegui il comando deployment di Cloud Run.
- Testa e monitora il rendimento dell'agente dopo il deployment.
Architettura di alto livello
Il nucleo dell'agente A2A è un livello di gestione e orchestrazione, ad esempio Cloud Run. Questo livello gestisce le interazioni con modelli di AI come Gemini e Vertex AI, archivi di memoria come AlloyDB e A2A TaskStore e strumenti esterni tramite API. I client interagiscono con l'agente inviando richieste, ad esempio "Get Agent Card" (Ottieni scheda agente) o "send message" (invia messaggio), e ricevono aggiornamenti sulle attività.
Il seguente diagramma illustra l'architettura di un sistema A2A Agent, che mostra un client A2A (utente o agente) che interagisce con l'agente A2A.

Per informazioni sul ciclo di vita delle richieste A2A, consulta la sezione Ciclo di vita delle richieste A2A.
Ruoli e autorizzazioni IAM per gli agenti Cloud Run A2A
I ruoli IAM configurati correttamente sono importanti per il tuo servizio Cloud Run per interagire in modo sicuro con altri servizi Google Cloud. Crea un account di servizio dedicato e concedi le autorizzazioni specifiche elencate nelle sezioni seguenti per garantire sicurezza ed efficienza operative.
Crea un account di servizio Cloud Run
Prima di eseguire qualsiasi comando gcloud
, assicurati di essere autenticato. Esegui il comando seguente per accedere al tuo account Google Cloud :
gcloud auth login
Crea un account di servizio specifico per l'istanza del servizio A2A di cui è stato eseguito il deployment.
Utilizza il comando gcloud iam service-accounts create
.
gcloud iam service-accounts create A2A_SERVICE_ACCOUNT_NAME \
--description="Service account for A2A Cloud Run service" \
--display-name="A2A Cloud Run Service Account"
Sostituisci A2A_SERVICE_ACCOUNT_NAME con il nome del account di servizio.
Configurare i ruoli IAM per l'agente A2A
Assegna i seguenti ruoli IAM al tuo account di servizio in base ai servizi con cui interagisce l'agente A2A: Google Cloud
Accesso a Secret Manager per le credenziali sicure
- Ruolo:
Secret Manager Secret Accessor
(roles/secretmanager.secretAccessor
) Scopo:consente al account di servizio Cloud Run di recuperare in modo sicuro i secret, come le credenziali del database, da Secret Manager.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:A2A_SERVICE_ACCOUNT_NAME@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Accesso ai modelli Vertex AI per le funzionalità di AI
- Ruolo:
Vertex AI User
(roles/aiplatform.user
) Scopo:necessario per l'account di servizio Cloud Run per richiamare le API di previsione sui modelli Vertex AI.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:A2A_SERVICE_ACCOUNT_NAME@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Accesso all'istanza AlloyDB per l'archiviazione permanente (se applicabile)
- Ruoli:
AlloyDB Client
(roles/alloydb.client
) eService Usage Consumer
(roles/serviceusage.serviceUsageConsumer
) Scopo:consente all'identità del servizio Cloud Run di interagire con il cluster AlloyDB per l'archiviazione permanente delle attività, fondamentale per gli agenti A2A di produzione.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:A2A_SERVICE_ACCOUNT_NAME@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/alloydb.client"
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:A2A_SERVICE_ACCOUNT_NAME@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageConsumer"
Prepara l'agente A2A per il deployment di Cloud Run
Questa sezione descrive le configurazioni necessarie per preparare l'agente A2A per il deployment su Cloud Run, garantendo un funzionamento sicuro, efficiente e scalabile nel cloud.
Configura i secret per i servizi Cloud Run
Fornisci tutte le credenziali sensibili, come chiavi API e password del database, al tuo server A2A utilizzando un meccanismo sicuro. Cloud Run supporta la fornitura di secret come variabili di ambiente o volumi montati dinamicamente. Per ulteriori informazioni, consulta Configurazione dei secret in Cloud Run.
Ad esempio, crea e gestisci i secret di password e utente del database all'interno di Google Secret Manager utilizzando la CLI gcloud
. Per ulteriori informazioni, vedi
Creare un secret.
gcloud secrets create alloy_db_user --replication-policy="automatic"
# Create a file user.txt with contents of secret value
gcloud secrets versions add alloy_db_user --data-file="user.txt"
gcloud secrets create alloy_db_pass --replication-policy="automatic"
# Create a file pass.txt with contents of secret value
gcloud secrets versions add alloy_db_pass --data-file="pass.txt"
Crea Dockerfile per la containerizzazione
Cloud Run può eseguire il deployment dei servizi da immagini container già ospitate o direttamente dal codice sorgente. Quando esegui il deployment dal codice sorgente, Cloud Run crea automaticamente un'immagine container se è presente un Dockerfile nella directory principale del progetto.
Di seguito è riportato un Dockerfile di esempio per il deployment dell'agente A2A:
FROM python:3.13-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
EXPOSE 8080
WORKDIR /app
COPY . ./
RUN uv sync
ENTRYPOINT ["uv", "run", ".", "--host", "0.0.0.0", "--port", "8080"]
Eseguire il deployment dal codice sorgente senza un Dockerfile
Per i repository di codice sorgente senza un Dockerfile
, Cloud Run offre
supporto integrato per alcuni linguaggi di programmazione più diffusi, semplificando il
processo di containerizzazione.
- Applicazioni Python su Cloud Run:Cloud Run
in genere cerca un file
main.py
per creare ed eseguire il deployment dei servizi Python. Per saperne di più, vedi Guida rapida al deployment del servizio Python su Cloud Run. - Applicazioni Node.js su Cloud Run:consulta la guida rapida per il deployment del servizio Node.js su Cloud Run.