L'atto di eseguire il deployment di una funzione Cloud Run coordina automaticamente i servizi Google Cloud sottostanti, tra cui Cloud Storage, Cloud Build e Artifact Registry, per pacchettizzare ed eseguire il codice. Comprendere queste interazioni tra i servizi ti aiuta a configurare le autorizzazioni di Identity and Access Management richieste, monitorare le dipendenze delle risorse e risolvere i problemi di deployment o build.
Prima di iniziare
Acquisisci familiarità con i concetti relativi alle funzioni Cloud Run e al deployment del codice sorgente consultando la guida Opzioni di deployment e modello delle risorse di Cloud Run.
Panoramica dell'architettura
Quando esegui il deployment del codice sorgente della funzione in Cloud Run Functions, il codice viene archiviato in un bucket Cloud Storage. Cloud Build compila quindi automaticamente il codice in un'immagine container ed esegue il push dell'immagine in un registro delle immagini di Artifact Registry. Cloud Run Functions accede a questa immagine quando deve eseguire il container per eseguire la tua funzione.
Nel seguente diagramma, la casella Cloud Run Functions rappresenta una funzione di cui viene eseguito il deployment in Cloud Run utilizzando l'API Cloud Run Admin o l'API Cloud Functions. In genere, il deployment delle funzioni più recenti viene eseguito utilizzando l'API Cloud Run Admin, mentre quello delle funzioni meno recenti viene eseguito utilizzando l'API Cloud Functions.
A seconda dell'API utilizzata durante il deployment di una funzione, si verifica quanto segue:
Se hai eseguito il deployment della funzione utilizzando l'API Cloud Run Admin, si verifica quanto segue:
Il codice sorgente viene caricato in un bucket Cloud Storage senza periodo di conservazione.
- Se utilizzi la crittografia predefinita, il nome del bucket viene generato automaticamente ed è
run-sources-PROJECT_ID-REGION. - Se proteggi i tuoi dati con le chiavi di crittografia gestite dal cliente (CMEK), il nome del bucket non viene generato automaticamente e devi fornirlo.
- Se utilizzi la crittografia predefinita, il nome del bucket viene generato automaticamente ed è
Il codice sorgente viene inviato a Cloud Build, dove i buildpack di Google Cloud e il framework di Functions creano un'immagine container. Tieni presente che l'immagine container viene creata dal account di servizio Cloud Build. Cloud Run utilizza per impostazione predefinita il tipo di macchina
e2-standard-2fornito da Cloud Build.L'immagine container viene quindi caricata in Artifact Registry tramite un bucket creato automaticamente denominato
REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.Il deployment dell'immagine viene eseguito in Cloud Run come servizio.
Puoi attivare o richiamare la funzione con Eventarc, Pub/Sub o altri trigger HTTP.
Se hai eseguito il deployment della funzione utilizzando l'API Cloud Functions (v2), si verifica quanto segue:
Il codice sorgente viene caricato in un bucket Cloud Storage senza periodo di conservazione.
Il nome del bucket viene generato automaticamente e segue questo formato:
- Se utilizzi la crittografia predefinita, il nome di questo bucket è
gcf-v2-sources-PROJECT_NUMBER-REGION. - Se proteggi i tuoi dati con CMEK, il nome del bucket è
gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH.
- Se utilizzi la crittografia predefinita, il nome di questo bucket è
Il codice sorgente viene inviato a Cloud Build, dove i buildpack di Google Cloud e il framework di Functions creano un'immagine container. Tieni presente che l'immagine container viene creata dal account di servizio Cloud Build. Cloud Run utilizza per impostazione predefinita il tipo di macchina
e2-standard-2fornito da Cloud Build.L'immagine container viene quindi caricata in Artifact Registry tramite un bucket creato automaticamente denominato
REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts.Il deployment dell'immagine viene eseguito in Cloud Run come servizio.
Puoi attivare o richiamare la funzione con Eventarc, Pub/Sub o altri trigger HTTP.
Passaggi successivi
- Scopri i diversi tipi di funzioni e le opzioni per attivare le funzioni.
- Se in precedenza hai creato funzioni con l'API Cloud Functions, consulta la guida di confronto di Cloud Run Functions per scoprire le differenze tra le due versioni di Cloud Run Functions.