Questa pagina descrive come eseguire il deployment e modificare una funzione Cloud Run. Per un esempio dettagliato di deployment di una funzione Hello World, consulta Esegui il deployment di una funzione di esempio.
Le distribuzioni di funzioni Cloud Run utilizzano automaticamente i buildpack di Google Cloud e Cloud Build per creare immagini container a partire dal codice sorgente della funzione. Non è necessario installare Docker sulla macchina o configurare buildpack o Cloud Build.
I deployment di Cloud Run Functions utilizzano anche Artifact Registry per archiviare gli artefatti e gestire le immagini container. Artifact Registry crea automaticamente il repository Artifact Registry denominato cloud-run-source-deploy, se il tuo progetto non ne ha già creato uno con questo nome.
Se hai funzioni esistenti e devi utilizzare il comando gcloud functions deploy, l'API Cloud Functions v2 o la configurazione Terraform google_cloudfunctions2_function per la compatibilità con le versioni precedenti, consulta Esegui il deployment di funzioni con il comando gcloud functions deploy.
Prima di iniziare
Assicurati di aver configurato un nuovo progetto per Cloud Run, come descritto nella pagina di configurazione.
Abilita le API Artifact Registry, Cloud Build, Cloud Run Admin e Cloud Logging:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ run.googleapis.com \ logging.googleapis.com(Facoltativo) Abilita l'API Eventarc per utilizzare i trigger di eventi:
gcloud services enable eventarc.googleapis.comSe il tuo progetto è soggetto a un criterio dell'organizzazione con restrizioni di dominio che limitano le chiamate non autenticate, devi accedere al servizio di cui è stato eseguito il deployment come descritto in Test dei servizi privati.
Ruoli obbligatori
Per eseguire il deployment delle funzioni Cloud Run, tu o il tuo amministratore dovete concedere i seguenti ruoli IAM all'account di deployment e al account di servizio:
Fai clic per visualizzare i ruoli richiesti per l'account di distribuzione
Per ottenere le autorizzazioni necessarie per compilare ed eseguire il deployment dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) sul tuo progetto - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) sul tuo progetto - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità del servizio Cloud Run
Fai clic per visualizzare i ruoli richiesti per il account di servizio Cloud Build
Cloud Build utilizza automaticamente l'account di servizio predefinito di Compute Engine come account di servizio predefinito di Cloud Build per compilare il codice sorgente e la risorsa Cloud Run, a meno che non si sovrascriva questo comportamento. Affinché Cloud Build possa compilare i tuoi sorgenti, chiedi al tuo amministratore di concedere Cloud Run Builder (roles/run.builder) all'account di servizio predefinito di Compute Engine sul tuo progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Sostituisci PROJECT_NUMBER con il numero del tuo progetto Google Cloude PROJECT_ID con l'ID progetto Google Cloud. Per istruzioni dettagliate su come trovare l'ID progetto e il numero di progetto,
vedi Creazione
e gestione dei progetti.
La concessione del ruolo Cloud Run Builder al account di servizio Compute Engine predefinito richiede alcuni minuti per la propagazione.
Fai clic per visualizzare i ruoli richiesti per l'account di servizio se utilizzi Eventarc
(Facoltativo) Se utilizzi Eventarc, concedi i seguenti ruoli alaccount di serviziot:
- Editor di build cloud (
roles/cloudbuild.builds.editor) - Cloud Run Admin (
roles/run.admin) - Crea service account (
roles/iam.serviceAccountCreator) - Cloud Run Invoker (
roles/run.invoker) - Eventarc Admin (
roles/eventarc.admin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - Storage Admin (
roles/storage.admin)
Per saperne di più sulla concessione di ruoli specifici per i trigger Eventarc, consulta Ruoli e autorizzazioni per le destinazioni Cloud Run.
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Crea ed esegui il deployment di una funzione
Puoi eseguire il deployment di una funzione Cloud Run utilizzando la console Google Cloud o gcloud CLI. Fai clic sulla scheda per visualizzare le istruzioni sull'utilizzo dello strumento che preferisci.
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic su Scrivi una funzione.
Nel campo Nome servizio, inserisci un nome per descrivere la tua funzione. I nomi dei servizi devono iniziare solo con una lettera e contenere un massimo di 49 caratteri, tra cui lettere, numeri o trattini. I nomi dei servizi non possono terminare con trattini e devono essere univoci per regione e per progetto. Il nome di un servizio non può essere modificato in seguito ed è visibile pubblicamente.
Nell'elenco Regione, utilizza il valore predefinito o seleziona la regione in cui vuoi eseguire il deployment della funzione.
Nell'elenco Runtime, utilizza il valore predefinito o seleziona una versione del runtime.
(Facoltativo) Nella sezione Attivatore, fai clic su Aggiungi attivatore e seleziona un'opzione. Si apre il riquadro Trigger Eventarc, in cui puoi modificare i seguenti dettagli del trigger:
Nel campo Nome del trigger, immettere un nome per il trigger oppure utilizzare il nome predefinito.
Seleziona un Tipo di trigger dall'elenco per specificare uno dei seguenti tipi di trigger:
Origini Google per specificare i trigger per Pub/Sub, Cloud Storage, Firestore e altri provider di eventi Google.
Personalizzato per produrre e utilizzare eventi dal codice dell'applicazione. Segui i prompt nel riquadro Trigger Eventarc per creare un canale. Un canale è una risorsa utilizzata come pipeline per fornire eventi personalizzati dai producer ai consumer. Gli eventi personalizzati vengono pubblicati in un canale e un trigger Eventarc esegue la sottoscrizione a questi eventi.
Terze parti per integrarsi con fornitori non Google che offrono una sorgente Eventarc. Per saperne di più, vedi Eventi di terze parti in Eventarc.
Seleziona un fornitore di eventi dall'elenco per selezionare un prodotto che fornisca il tipo di evento per attivare la funzione. Per l'elenco dei fornitori di eventi, consulta Provider e destinazioni di eventi.
Seleziona un Tipo di evento dall'elenco. La configurazione del trigger varia a seconda del tipo di evento supportato. Per saperne di più, consulta Tipi di eventi.
Nel campo Region, seleziona una location per il trigger Eventarc. In generale, la località di un trigger Eventarc deve corrispondere a quella della Google Cloud risorsa che vuoi monitorare per gli eventi. Nella maggior parte degli scenari, devi anche eseguire il deployment della funzione nella stessa regione. Per ulteriori dettagli sulle posizioni dei trigger di Eventarc, consultare la sezione Informazioni sulle posizioni di Eventarc.
Nel campo Service account, seleziona un account di servizio. I trigger di Eventarc sono collegati agli account di servizio da utilizzare come identità durante l'invocazione della funzione. Il account di servizio del trigger Eventarc deve disporre dell'autorizzazione per richiamare la funzione. Per impostazione predefinita, Cloud Run utilizza l'account di servizio predefinito di Compute Engine.
(Facoltativo) Specifica il percorso dell'URL del servizio a cui inviare la richiesta in entrata. Questo è il percorso relativo nel servizio di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio:
/,/route,routeeroute/subroute.Una volta compilati i campi obbligatori, fai clic su Salva attivatore.
Nella sezione Autenticazione, configura quanto segue:
Se stai creando una funzione HTTP pubblica, ad esempio un webhook, seleziona Consenti accesso pubblico. Se selezioni questa opzione, viene assegnato il ruolo Invoker IAM all'identificatore speciale
allUser. Puoi utilizzare IAM per modificare questa impostazione in un secondo momento dopo aver creato il servizio. Se non disponi delle autorizzazioni (ruolo Amministratore di Cloud Run) per selezionare questa opzione, il servizio verrà deployment e richiederà l'autenticazione.Se stai creando una funzione basata su eventi, seleziona Richiedi autenticazione.
Se vuoi, aggiorna le seguenti configurazioni aggiuntive per le tue funzioni:
Imposta la fatturazione in base alle esigenze.
In Scalabilità del servizio, se utilizzi la scalabilità automatica predefinita di Cloud Run, specifica facoltativamente le istanze minime. Se utilizzi la scalabilità manuale, specifica il numero di istanze per il servizio.
Impostare le impostazioni del controllo in entrata Ingress control secondo necessità.
Espandi la sezione Container, volumi, networking, sicurezza per impostare altre impostazioni facoltative nelle schede appropriate:
Fai clic su Crea e attendi che Cloud Run crei il servizio utilizzando una revisione segnaposto.
La console ti reindirizzerà alla scheda Source dove potrai visualizzare il codice sorgente della tua funzione. Fai clic su Salva e ridistribuisci.
Nella scheda Origine, puoi fare clic su Mostra payload per visualizzare un esempio di payload degli eventi in entrata.
Dopo il deployment, testa la funzione creata facendo clic sul pulsante Testa.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Aggiorna i componenti di
gcloudall'ultima versione:gcloud components update
Esegui questo comando nella directory che contiene il codice campione:
gcloud run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGIONSostituisci:
FUNCTION con il nome della funzione che stai distribuendo. Puoi omettere completamente questo parametro, ma ti verrà chiesto il nome se lo ometti.
FUNCTION_ENTRYPOINT con il punto di ingresso alla tua funzione nel tuo codice sorgente. Questo è il codice che Cloud Run esegue quando viene eseguita la funzione. Il valore di questo flag deve essere un nome di funzione o un nome di classe completo esistente nel codice sorgente.
BASE_IMAGEcon l'ambiente immagine di base per la tua funzione, come
nodejs24,python314,go127,java25,dotnet10,ruby40, Ophp85. Per maggiori dettagli sulle immagini di base e sui pacchetti inclusi in ciascuna immagine, vedi Immagini di base dei runtime.REGION con la Google Cloud regione in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.
Facoltativamente,
- Se stai creando una funzione HTTP pubblica, ad esempio un webhook, specifica il flag
--allow-unauthenticated. Questo flag assegna il ruolo Cloud Run IAM Invoker all'identificatore specialeallUser. Puoi utilizzare IAM per modificare questa impostazione in un secondo momento dopo aver creato il servizio. Se stai creando una funzione attivata da un evento o un servizio autenticato, puoi omettere questo flag.
Facoltativamente, dopo aver distribuito la funzione, è possibile aggiungere dei trigger Eventarc alla funzione stessa. Per aggiungere un trigger, eseguire il seguente comando:
gcloud eventarc triggers create EVENTARC_TRIGGER_NAME \
--location=EVENTARC_TRIGGER_LOCATION \
--destination-run-service=FUNCTION \
--destination-run-region=REGION \
--event-filters="type=EVENTARC_FILTER_TYPE" \
--event-filters="EVENTARC_EVENT_FILTER" \
--service-account=EVENTARC_TRIGGER_SERVICE_ACCOUNT
Sostituisci:
EVENTARC_TRIGGER_NAME con il nome del trigger Eventarc.
EVENTARC_TRIGGER_LOCATION con la posizione per il trigger Eventarc. In generale, la posizione di un trigger Eventarc dovrebbe corrispondere alla posizione della risorsa Google Cloud che si desidera monitorare per gli eventi. Nella maggior parte degli scenari, devi anche eseguire il deployment della funzione nella stessa regione. Per ulteriori dettagli sulle posizioni dei trigger di Eventarc, consultare la sezione Informazioni sulle posizioni di Eventarc.
FUNCTION con il nome della funzione di cui è stato eseguito il deployment.
REGION con la Cloud Run region della funzione.
EVENTARC_FILTER_TYPE con i filtri degli eventi che il trigger monitora. Un evento che corrisponde a tutti i filtri
--event-filtersattiva le chiamate alla tua funzione. Ogni attivatore deve avere un tipo di evento supportato nel formato--event-filters="type=EVENTARC_FILTER_TYPE". Questo tipo di evento non può essere modificato dopo la creazione. Per modificareEVENT_FILTER_TYPE, crea un nuovo trigger ed elimina quello precedente. Facoltativamente, è possibile ripetere il flag--event-filterscon un filtro supportato nella formaATTRIBUTE=VALUEper aggiungere altri filtri.EVENTARC_TRIGGER_SERVICE_ACCOUNT con un account di servizio. I trigger di Eventarc sono collegati agli account di servizio da utilizzare come identità durante l'invocazione della funzione. Il account di servizio del trigger Eventarc deve disporre dell'autorizzazione per richiamare la funzione. Per impostazione predefinita, Cloud Run utilizza il service account Compute predefinito.
Terraform
Per gestire le funzioni utilizzando Terraform,
devi creare il codice della funzione in un'immagine container, quindi definire il servizio Cloud Run in una configurazione Terraform utilizzando la risorsa
google_cloud_run_v2_service
del provider Google Cloud.
Segui le istruzioni per creare una funzione da zero per creare un'immagine container compatibile con aggiornamenti di sicurezza automatici. Copia il percorso completo dell'immagine contenitore per la variabile IMAGE_URL utilizzata nel passaggio successivo.
Crea un nuovo file
main.tfcon questo contenuto:provider "google" { project = "PROJECT-ID" } resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" client = "terraform" template { containers { name = "SERVICE" image = "IMAGE_URL" # Container image built from your function in the previous step. base_image_uri = "BASE_IMAGE" } } build_config{ function_target = "FUNCTION_TARGET" image_uri = "IMAGE_URL" base_image = "BASE_IMAGE" enable_automatic_updates = true } } resource "google_cloud_run_v2_service_iam_member" "noauth" { location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "allUsers" }Sostituisci:
- PROJECT-ID con l'ID progetto Google Cloud .
- REGIONcon il Google Cloud regione. Ad esempio
europe-west1. - SERVICE con il nome del tuo servizio Cloud Run. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per regione e progetto.
- IMAGE_URL con un riferimento all'immagine container contenente solo la funzione creata
- BASE_IMAGE con l'ambiente dell'immagine di base per la tua
funzione, ad esempio
nodejs24,python314,go127,java25,dotnet10,ruby40ophp85. Per maggiori dettagli sulle immagini di base e sui pacchetti inclusi in ciascuna immagine, vedi Immagini di base dei runtime. - FUNCTION_TARGET con il nome della funzione che si desidera utilizzare come punto di ingresso.
Questa configurazione consente l'accesso pubblico (equivalente a
--allow-unauthenticated). Per rendere il servizio privato, rimuovere la sezionegoogle_cloud_run_v2_service_iam_member.Inizializza Terraform:
terraform initApplica la configurazione Terraform:
terraform applyConferma di voler applicare le azioni descritte inserendo
yes.
Località Cloud Run
Cloud Run è regionale, il che significa che l'infrastruttura che
esegue i tuoi servizi Cloud Run si trova in una regione specifica ed è
gestita da Google per essere disponibile in modo ridondante in
tutte le zone all'interno di quella regione.
Il rispetto dei requisiti di latenza, disponibilità o durabilità è un fattore
primario per la selezione della regione in cui vengono eseguiti i servizi Cloud Run.
In genere puoi selezionare la regione più vicina ai tuoi utenti, ma devi considerare la posizione degli altri Google Cloudprodotti utilizzati dal tuo servizio Cloud Run.
L'utilizzo combinato dei prodotti Google Cloud in più località può influire
sulla latenza e sui costi del servizio.
Cloud Run è disponibile nelle seguenti regioni:
Soggetto ai prezzi di Livello 1
asia-east1(Taiwan)asia-northeast1(Tokyo)asia-northeast2(Osaka)asia-south1(Mumbai, India)asia-southeast3(Bangkok)europe-north1(Finlandia)Bassi livelli di CO2
europe-north2(Stoccolma)Bassi livelli di CO2
europe-southwest1(Madrid)Bassi livelli di CO2
europe-west1(Belgio)Bassi livelli di CO2
europe-west4(Paesi Bassi)Bassi livelli di CO2
europe-west8(Milano)Bassi livelli di CO2
europe-west9(Parigi)Bassi livelli di CO2
me-west1(Tel Aviv)northamerica-south1(Messico)us-central1(Iowa)Bassi livelli di CO2
us-east1(Carolina del Sud)us-east4(Virginia del Nord)us-east5(Columbus)us-south1(Dallas)Bassi livelli di CO2
us-west1(Oregon)Bassi livelli di CO2
Soggetto ai prezzi di Livello 2
africa-south1(Johannesburg)asia-east2(Hong Kong)asia-northeast3(Seul, Corea del Sud)asia-southeast1(Singapore)asia-southeast2(Giacarta)asia-south2(Delhi, India)australia-southeast1(Sydney)australia-southeast2(Melbourne)europe-central2(Varsavia, Polonia)Bassi livelli di CO2
europe-west10(Berlino)europe-west12(Torino)Bassi livelli di CO2
europe-west2(Londra, Regno Unito)Bassi livelli di CO2
europe-west3(Francoforte, Germania)europe-west6(Zurigo, Svizzera)Bassi livelli di CO2
me-central1(Doha)me-central2(Dammam)northamerica-northeast1(Montreal)Bassi livelli di CO2
northamerica-northeast2(Toronto)Bassi livelli di CO2
southamerica-east1(San Paolo, Brasile)Bassi livelli di CO2
southamerica-west1(Santiago, Cile)Bassi livelli di CO2
us-west2(Los Angeles)Bassi livelli di CO2
us-west3(Salt Lake City)us-west4(Las Vegas)
Se hai già creato un servizio Cloud Run, puoi visualizzare la regione nella dashboard di Cloud Run nella consoleGoogle Cloud .
Abilita i nuovi tentativi di esecuzione degli eventi
Eventarc utilizza Pub/Sub come livello di trasporto e ha una norma di ripetizione predefinita che potrebbe non funzionare bene per la tua funzione.
Dopo aver creato un trigger Eventarc, ti consigliamo vivamente di aggiornare i criteri di nuovi tentativi in Eventarc e di configurare l'argomento messaggi non recapitabili in Pub/Sub.
Specifica un repository di immagini
Le distribuzioni di funzioni Cloud Run utilizzano Artifact Registry per archiviare gli artefatti e gestire le immagini dei container. Artifact Registry crea automaticamente il repository Artifact Registry REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy se il tuo progetto non ne ha già creato uno con questo nome.
Per specificare un repository Artifact Registry creato autonomamente, utilizzare il seguente comando:
gcloud
gcloud run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGION \ --image IMAGE_URL
Sostituisci quanto segue:
FUNCTION con il nome della funzione che stai distribuendo. È possibile omettere completamente questo parametro, ma in tal caso verrà richiesto di inserirne il nome.
FUNCTION_ENTRYPOINT con il punto di ingresso alla tua funzione nel tuo codice sorgente. Questo è il codice che Cloud Run esegue quando viene eseguita la funzione. Il valore di questo flag deve essere un nome di funzione o un nome di classe completo esistente nel codice sorgente.
BASE_IMAGEcon l'ambiente immagine di base per la tua funzione, come
nodejs24,python314,go127,java25,dotnet10,ruby40, Ophp85. Per maggiori dettagli sulle immagini di base e sui pacchetti inclusi in ciascuna immagine, vedi Immagini di base dei runtime.REGION con la Google Cloud regione in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.IMAGE_URL con un riferimento al percorso dell'immagine utilizzando il repository di immagini Artifact Registry di tua scelta, ad esempio
projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/FUNCTION. Il nome dell'immagine deve corrispondere al nome della funzione che vuoi creare. Se viene fornito solo il percorso del repository, l'immagine verrà creata utilizzando il nome della funzione FUNCTION.
Quando si specifica un repository di Artifact Registry situato in un progetto o in una regione diversa, è necessario tenere in considerazione quanto segue:
Configurazioni IAM:
- Assicurati di aver configurato le autorizzazioni IAM per distribuire immagini da altri Google Cloud progetti
- Inoltre, assicurati che il account di servizio di build sia autorizzato ad accedere in lettura e scrittura al REPOSITORY.
Configurazioni di rete:
- Assicurarsi che la destinazione REPOSITORY sia raggiungibile dalla configurazione corrente del progetto.
Configurazioni dei Controlli di servizio VPC:
- Assicurati che il account di servizio di build possa raggiungere il REPOSITORY di destinazione all'interno del perimetro VPC-SC.
Vincoli di residenza dei dati:
- Tieni presente che se specifichi un REPOSITORY in una regione diversa da quella in cui si trova la tua funzione, i dati verranno trasferiti tra le regioni.
Modificare una funzione esistente
È possibile modificare la configurazione o il codice della funzione:
Modifica configurazione
Per modificare i parametri di configurazione, come le opzioni di fatturazione, la memoria e la connettività VPC, segui le istruzioni nella scheda appropriata:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Individua il servizio che desideri aggiornare nell'elenco dei servizi e fai clic per visualizzare i dettagli di tale servizio.
Modifica le impostazioni di configurazione nelle schede appropriate.
Fai clic su Visualizza differenze e fai di nuovo il deployment, poi su Esegui il deployment delle modifiche per eseguire il deployment delle modifiche.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per aggiornare una o più impostazioni di configurazione del servizio, utilizzare
gcloud run services update SERVICEcomando con i flag della riga di comando della configurazione che si desidera aggiornare. Sostituire SERVICE con il nome del servizio.
Esegui nuovamente il deployment del nuovo codice sorgente
Puoi modificare l'immagine di base, il runtime e il codice sorgente della funzione utilizzando la console Google Cloud o gcloud CLI.
Fai clic sulla scheda relativa alle istruzioni per l'utilizzo dello strumento che preferisci.
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Individua la funzione che vuoi aggiornare nell'elenco Servizi e fai clic per aprire i dettagli della funzione.
Vai alla scheda Origine e fai clic su Modifica origine.
Fai clic su Modifica aggiornamenti di runtime e sicurezza accanto a Immagine di base e seleziona un runtime o un ambiente diverso dall'elenco in base alle esigenze, quindi fai clic su Salva e ridistribuisci.
Modifica l'entry point della funzione in base alle esigenze.
Nel File sezione, selezionare Aggiungi file per creare un nuovo file, Rinominare il file per rinominare un file, oppure Elimina il file per eliminare un file.
Nella sezione Codice, modifica il codice sorgente in base alle tue esigenze.
Fai clic su Salva e riesegui il deployment e attendi il completamento del deployment.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Esegui questo comando nella directory che contiene il codice sorgente della funzione:
gcloud run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGIONSostituisci:
FUNCTION con il nome della funzione da modificare.
FUNCTION_ENTRYPOINT con il punto di ingresso alla tua funzione nel tuo codice sorgente.
BASE_IMAGEcon l'ambiente immagine di base per la tua funzione, come
nodejs24,python314,go127,java25,dotnet10,ruby40, Ophp85.In alternativa, se si desidera utilizzare un pacchetto di sistema specifico nello stack o specificare la regione da cui viene scaricata l'immagine di base, è possibile specificare una delle seguenti opzioni:
- Il percorso completo dell'immagine di base, ad esempio
us-central1-docker.pkg.dev/serverless-runtimes/google-24-full/runtimes/nodejs24. Questa opzione ti consente di specificare l'immagine di base, un pacchetto di sistema specifico nello stack e la regione da cui viene scaricata l'immagine di base. - L'alias del percorso completo dell'immagine di base, ad esempio
google-24/nodejs24ogoogle-24-full/nodejs24. Questa opzione di alias più breve ti consente di specificare l'immagine di base e un pacchetto di sistema specifico nello stack.
Per maggiori dettagli sulle immagini di base e sui pacchetti inclusi in ogni immagine, vedi Immagini di base runtime.
- Il percorso completo dell'immagine di base, ad esempio
REGION con la Google Cloud regione in cui vuoi eseguire il deployment della funzione. Ad esempio:
europe-west1.
Flag facoltativi
Durante la modifica della funzione, è possibile configurare i seguenti flag opzionali:
Variabili di ambiente di build flag per specificare le variabili di ambiente durante la fase di build, ad esempio per configurare certificati o parametri specifici per la fase di build.
Flag worker pool per specificare quale pool di worker utilizzare nel contesto di build protetto di Controlli di servizio VPC.
Flag service account di build personalizzati per specificare un'alternativa al account di servizio di build predefinito per una maggiore sicurezza.
Automatic base image updates per disattivare gli aggiornamenti automatici. Per impostazione predefinita, le funzioni hanno gli aggiornamenti di sicurezza automatici abilitati.
Disabilitazione del controllo di integrità della distribuzione
Per impostazione predefinita, Cloud Run verifica che il deployment sia integro avviando un'istanza e attendendo che il probe di avvio venga superato. Se il controllo di integrità non va a buon fine, la revisione verrà contrassegnata come non integra e il traffico non verrà indirizzato.
Se non è necessario o per aumentare la velocità di deployment, il controllo di integrità del deployment può essere disattivato:
gcloud
Per disattivare il controllo di integrità del deployment, utilizza il flag --no-deploy-health-check:
gcloud run deploy --image IMAGE_URL --no-deploy-health-check
Sostituisci quanto segue:
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Utilizza --deploy-health-check per riattivare il controllo di integrità del deployment se
è stato disattivato in precedenza.
YAML
Per disattivare il controllo di integrità del deployment, aggiungi l'annotazione
run.googleapis.com/health-check-disabled con il valore 'true'
a spec.template.metadata.annotations.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: SERVICE
spec:
template:
metadata:
annotations:
run.googleapis.com/health-check-disabled: 'true'
Terraform
Per disattivare il controllo di integrità del deployment, imposta l'argomento health_check_disabled su true nel blocco template.
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
...
template {
health_check_disabled = true
...
}
}
Bucket di origine
Il codice sorgente deve essere accessibile al processo di compilazione e all'editor di origine della consoleGoogle Cloud . Ciò si ottiene caricando il codice sorgente in un bucket di Cloud Storage.
Quando esegui il deployment utilizzando gcloud CLI o la console Google Cloud , viene eseguito automaticamente il provisioning di un bucket Cloud Storage e il codice sorgente viene caricato per te. Per impostazione predefinita, il codice viene archiviato in un bucket denominato
run-sources-PROJECT_ID-REGION. Sei
responsabile della gestione degli
elenchi di controllo dell'accesso (ACL) e degli oggetti
di origine all'interno di questo bucket.
Se devi utilizzare un bucket specifico, ad esempio per utilizzare le chiavi di crittografia gestite dal cliente (CMEK), devi prima comprimere i file di origine locali in un archivio (ad esempio un file ZIP). Quindi, carica questo archivio nel bucket. Per eseguire il deployment da questa posizione personalizzata, utilizza gcloud CLI con il flag --source=gs://BUCKET_NAME/OBJECT_PATH.
Passaggi successivi
Dopo aver eseguito il deployment di una nuova funzione Cloud Run, puoi:
- Visualizza o elimina le funzioni
- Gestire i servizi
- Visualizza i log
- Crea container di funzioni nella tua toolchain ed eseguine il deployment su Cloud Run
- Attivazione con eventi
- Attiva funzioni da Cloud Storage utilizzando Eventarc