Cloud Run ti consente di proteggere i workload interni esponendo al contempo le funzionalità rivolte ai client in un'architettura multi-servizio. In questo tutorial creerai un'applicazione sicura a due servizi con un editor Markdown di frontend pubblico e un servizio di backend privato che esegue il rendering del testo Markdown in HTML.
Il servizio di backend è privato e utilizza la funzionalità integrata di Cloud Run per l'autenticazione service-to-service basata su IAM, che limita chi può chiamare il servizio. Entrambi i servizi sono basati sul principio del privilegio minimo, senza accesso al resto di Google Cloud , tranne dove necessario.
Limitazioni o non obiettivi di questo tutorial
Questo tutorial non mostra l'autenticazione degli utenti finali, che utilizza Identity Platform o Firebase Authentication per generare token ID utente e verificare manualmente le identità degli utenti. Per scoprire di più sull'autenticazione degli utenti finali, consulta il tutorial di Cloud Run sull'autenticazione degli utenti finali.
Questo tutorial non mostra la combinazione dei metodi di autenticazione basata su IAM e token ID, perché non è supportata.
Obiettivi
- Crea un account di servizio dedicato con autorizzazioni minime per l'autenticazione service-to-service e l'accesso del servizio al resto di Google Cloud.
- Scrivere, creare ed eseguire il deployment di due servizi su Cloud Run che interagiscono.
- Effettua richieste tra un servizio Cloud Run pubblico e uno privato.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Abilita l'API Cloud Run, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.- Installa e inizializza gcloud CLI.
- Installa curl per provare il servizio
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare il tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Cloud Build Editor (
roles/cloudbuild.builds.editor) - Cloud Run Admin (
roles/run.admin) - Create Service Accounts (
roles/iam.serviceAccountCreator) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Utente Service Account (
roles/iam.serviceAccountUser) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - Storage Admin (
roles/storage.admin) - Artifact Registry Repository Administrator (
roles/artifactregistry.repoAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura i valori predefiniti di gcloud CLI
Per configurare Google Cloud CLI con i valori predefiniti per il tuo servizio Cloud Run:
Imposta il progetto predefinito:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con il nome del progetto che hai creato per questo tutorial.
Configura Google Cloud CLI per la regione scelta:
gcloud config set run/region REGION
Sostituisci REGION con la regione Cloud Run supportata che preferisci.
Località di 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.
La soddisfazione dei requisiti di latenza, disponibilità o durabilità è un fattore principale 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 prodotti Google Cloud utilizzati dal tuo servizio Cloud Run.
L'utilizzo di prodotti Google Cloud in sinergia in più località può influire
sulla latenza del servizio e sui costi.
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)A basse emissioni 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)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 .
Recupera l'esempio di codice
Per recuperare l'esempio di codice da utilizzare:
Clona il repository dell'app di esempio in Cloud Shell o sulla tua macchina locale:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice campione di Cloud Run:
Node.js
cd nodejs-docs-samples/run/markdown-preview/
Python
cd python-docs-samples/run/markdown-preview/
Go
cd golang-samples/run/markdown-preview/
Java
cd java-docs-samples/run/markdown-preview/
C#
cd dotnet-docs-samples/run/markdown-preview/
Esamina il servizio di rendering Markdown privato
Dal punto di vista del frontend, il servizio Markdown ha la seguente specifica API:
- Un endpoint a
/ - Prevede richieste POST
- Il corpo della richiesta POST è un testo Markdown
Puoi esaminare tutto il codice per verificare la presenza di eventuali problemi di sicurezza o semplicemente per saperne di più esplorando la directory ./renderer/. Tieni presente che il tutorial non spiega il codice di trasformazione Markdown.
Invia il servizio di rendering Markdown privato
Per inviare il codice, crealo con Cloud Build, caricalo su Artifact Registry ed eseguine il deployment in Cloud Run:
Passa alla directory
renderer:Node.js
cd renderer/
Python
cd renderer/
Go
cd renderer/
Java
cd renderer/
C#
cd Samples.Run.MarkdownPreview.Renderer/
Crea un Artifact Registry:
gcloud artifacts repositories create REPOSITORY \ --repository-format docker \ --location REGION
Sostituisci:
- REPOSITORY con un nome univoco per il repository. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.
- REGION con la regione Google Cloud da utilizzare per il repository Artifact Registry.
Esegui questo comando per creare il container e pubblicarlo su Artifact Registry.
Node.js
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
rendererè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Python
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
rendererè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Vai
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
rendererè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Java
Questo esempio utilizza Jib per creare immagini Docker utilizzando strumenti Java comuni. Jib ottimizza le build dei container senza la necessità di un Dockerfile o di avere Docker installato. Scopri di più sulla creazione di container Java con Jib.
Utilizza l'helper per le credenziali gcloud per autorizzare Docker a eseguire il push su Artifact Registry.
gcloud auth configure-docker
Utilizza il plug-in Jib Maven per creare il container ed eseguirne il push ad Artifact Registry.
mvn compile jib:build -Dimage=REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
rendererè il nome che vuoi assegnare al tuo servizio.Se l'operazione va a buon fine, vedrai un messaggio BUILD SUCCESS. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
C#
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
rendererè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Esegui il deployment come servizio privato con accesso limitato.
Cloud Run fornisce funzionalità pronte all'uso di controllo degli accessi e identità di servizio. Il controllo degli accessi fornisce un livello di autenticazione che impedisce agli utenti e ad altri servizi di richiamare il servizio. L'identità del servizio consente di limitare l'accesso del servizio ad altre risorseGoogle Cloud creando un account di servizio dedicato con autorizzazioni limitate.
Crea un account di servizio che funga da "identità di computing" del servizio di rendering. Per impostazione predefinita, non dispone di privilegi diversi dall'appartenenza al progetto.
Riga di comando
gcloud iam service-accounts create renderer-identity
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Il servizio di rendering Markdown non si integra direttamente con nient'altro in Google Cloud. Non richiede ulteriori autorizzazioni.
Esegui il deployment con il account di servizio
renderer-identitye nega l'accesso non autenticato.Riga di comando
gcloud run deploy renderer \ --image REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/renderer \ --service-account renderer-identity \ --no-allow-unauthenticated
Cloud Run può utilizzare il nome del account di servizio in formato breve anziché l'indirizzo email completo se il account di servizio fa parte dello stesso progetto.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Prova il servizio di rendering privato di Markdown
I servizi privati non possono essere caricati direttamente da un browser web. Utilizza invece curl o uno strumento simile di interfaccia a riga di comando per le richieste HTTP che consente di inserire un'intestazione Authorization.
Per inviare del testo in grassetto al servizio e vedere come converte gli asterischi di Markdown in tag HTML <strong>:
Recupera l'URL dall'output del deployment.
Utilizza
gcloudper ricavare un token di identità speciale solo per lo sviluppo per l'autenticazione:TOKEN=$(gcloud auth print-identity-token)
Crea una richiesta curl che passi il testo Markdown non elaborato come parametro della stringa di query con escape URL:
curl -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: text/plain' \ -d '**Hello Bold Text**' \ SERVICE_URL
Sostituisci SERVICE_URL con l'URL fornito dopo il deployment del servizio di rendering Markdown.
La risposta deve essere uno snippet HTML:
<strong>Hello Bold Text</strong>
Esamina l'integrazione tra i servizi di editor e di rendering
Il servizio editor fornisce un'interfaccia utente per l'inserimento di testo e uno spazio per visualizzare l'anteprima HTML. Prima di continuare, esamina il codice recuperato in precedenza aprendo la directory ./editor/.
Successivamente, esplora le seguenti sezioni di codice che integrano in modo sicuro i due servizi.
Node.js
Il modulo render.js crea richieste autenticate al servizio di rendering privato. Utilizza il server dei metadati Google Cloud nell'ambiente Cloud Run per creare un token di identità e aggiungerlo alla richiesta HTTP come parte di un'intestazione Authorization.
In altri ambienti, render.js utilizza le
Credenziali predefinite dell'applicazione
per richiedere un token ai server di Google.
Analizza il Markdown dal JSON e invialo al servizio Renderer per trasformarlo in HTML.
Python
Il metodo new_request crea richieste autenticate ai servizi privati.
Utilizza il server di metadati Google Cloud nell'ambiente Cloud Run per creare un token di identità e aggiungerlo alla richiesta HTTP come parte di un'intestazione Authorization.
In altri ambienti, new_request richiede un token di identità ai server di Google autenticandosi con le Credenziali predefinite dell'applicazione.
Analizza il Markdown da JSON e invialo al servizio Renderer per trasformarlo in HTML.
Vai
RenderService crea richieste autenticate ai servizi privati. Utilizza il server dei metadati Google Cloud nell'ambiente Cloud Run per creare un token di identità e aggiungerlo alla richiesta HTTP come parte di un'intestazioneAuthorization.
In altri ambienti, RenderService richiede un token di identità ai server di Google autenticandosi con le Credenziali predefinite dell'applicazione.
La richiesta viene inviata al servizio Renderer dopo aver aggiunto il testo Markdown da trasformare in HTML. Gli errori di risposta vengono gestiti per distinguere i problemi di comunicazione dalla funzionalità di rendering.
Java
makeAuthenticatedRequest crea richieste autenticate ai servizi privati. Utilizza il server dei metadati Google Cloud nell'ambiente Cloud Run per creare un token di identità e aggiungerlo alla richiesta HTTP come parte di un'intestazione Authorization.
In altri ambienti, makeAuthenticatedRequest richiede un token di identità ai server di Google autenticandosi con le Credenziali predefinite dell'applicazione.
Analizza il Markdown dal JSON e invialo al servizio Renderer per trasformarlo in HTML.
C#
GetAuthenticatedPostResponse crea richieste autenticate ai servizi privati. Utilizza il server dei metadati Google Cloud nell'ambiente Cloud Run per creare un token di identità e aggiungerlo alla richiesta HTTP come parte di un'intestazione Authorization.
In altri ambienti, GetAuthenticatedPostResponse richiede un token di identità ai server di Google autenticandosi con le Credenziali predefinite dell'applicazione.
Analizza il Markdown dal JSON e invialo al servizio Renderer per trasformarlo in HTML.
Pubblica il servizio di editor pubblico
Per creare ed eseguire il deployment del codice:
Passa alla directory
editor:Node.js
cd ../editor
Python
cd ../editor
Go
cd ../editor
Java
cd ../editor
C#
cd ../Samples.Run.MarkdownPreview.Editor/
Esegui questo comando per creare il container e pubblicarlo su Artifact Registry.
Node.js
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
editorè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Container Registry e, se necessario, può essere riutilizzata.
Python
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
editorè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Vai
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
editorè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Java
Questo esempio utilizza Jib per creare immagini Docker utilizzando strumenti Java comuni. Jib ottimizza le build dei container senza la necessità di un Dockerfile o di avere Docker installato. Scopri di più sulla creazione di container Java con Jib.mvn compile jib:build -Dimage=REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
editorè il nome che vuoi assegnare al tuo servizio.Se l'operazione va a buon fine, vedrai un messaggio BUILD SUCCESS. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
C#
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor
Dove PROJECT_ID è l'ID del tuo progetto Google Cloud e
editorè il nome che vuoi assegnare al tuo servizio.In caso di esito positivo, vedrai un messaggio SUCCESS contenente l'ID, l'ora di creazione e il nome dell'immagine. L'immagine è archiviata in Artifact Registry e, se necessario, può essere riutilizzata.
Esegui il deployment come servizio privato con accesso speciale al servizio di rendering.
Crea un account di servizio che funga da "identità di computing" del servizio privato. Per impostazione predefinita, non dispone di privilegi diversi dall'appartenenza al progetto.
Riga di comando
gcloud iam service-accounts create editor-identity
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Il servizio Editor non deve interagire con nient'altro in Google Cloud , ad eccezione del servizio di rendering Markdown.
Concedi l'accesso all'identità di computing
editor-identityper richiamare il servizio di rendering Markdown. Qualsiasi servizio che utilizza questo account come identità di computing avrà questo privilegio.Riga di comando
gcloud run services add-iam-policy-binding renderer \ --member serviceAccount:editor-identity@PROJECT_ID.iam.gserviceaccount.com \ --role roles/run.invoker
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Poiché a questo viene assegnato il ruolo Invoker nel contesto del servizio di rendering, il servizio di rendering è l'unico servizio Cloud Run privato che l'editor può richiamare.
Esegui il deployment con il account di servizio
editor-identitye consenti l'accesso pubblico non autenticato.Riga di comando
gcloud run deploy editor --image REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editor \ --service-account editor-identity \ --set-env-vars EDITOR_UPSTREAM_RENDER_URL=SERVICE_URL \ --allow-unauthenticated
Sostituisci:
- PROJECT_ID con l'ID progetto
- SERVICE_URL con l'URL fornito dopo il deployment del servizio di rendering Markdown.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Esegui il deployment del servizio editor:
Concedi l'autorizzazione
allUsersper richiamare il servizio:
Comprendi il traffico HTTPS
Il rendering di Markdown utilizzando questi servizi prevede tre richieste HTTP.
editor-identity richiama il servizio di rendering. Sia editor-identity che renderer-identity hanno autorizzazioni limitate, pertanto qualsiasi exploit di sicurezza o code injection ha accesso limitato ad altre risorse Google Cloud .
Provalo
Per provare l'applicazione completa con due servizi:
Vai nel browser all'URL fornito dal passaggio di deployment precedente.
Prova a modificare il testo Markdown a sinistra e fai clic sul pulsante per visualizzarne l'anteprima a destra.
Dovrebbe avere il seguente aspetto:

Se scegli di continuare a sviluppare questi servizi, ricorda che hanno un accesso limitato di Identity and Access Management (IAM) al resto di Google Cloud e dovranno ricevere ruoli IAM aggiuntivi per accedere a molti altri servizi.
Esegui la pulizia
Se hai creato un nuovo progetto per questo tutorial, eliminalo. Se hai utilizzato un progetto esistente e vuoi conservarlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.
Per eliminare il progetto:
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
Elimina le risorse del tutorial
Elimina i servizi Cloud Run di cui hai eseguito il deployment in questo tutorial:
gcloud
gcloud run services delete editor gcloud run services delete renderer
Puoi eliminare i servizi Cloud Run anche dalla consoleGoogle Cloud .
Rimuovi le configurazioni predefinite di Google Cloud CLI che hai aggiunto durante la configurazione del tutorial.
gcloud config unset run/regionRimuovi la configurazione del progetto:
gcloud config unset projectElimina le altre risorse Google Cloud create in questo tutorial:
- Elimina l'immagine container dell'editor denominata
REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/editorda Artifact Registry - Elimina l'immagine container di rendering denominata
REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/rendererda Artifact Registry - Elimina il account di servizio editor
editor-identity@PROJECT_ID.iam.gserviceaccount.com - Elimina il account di servizio di rendering
renderer-identity@PROJECT_ID.iam.gserviceaccount.com
- Elimina l'immagine container dell'editor denominata
Passaggi successivi
- Proteggi ulteriormente il tuo progetto consultando l'elenco di controllo per l'utilizzo sicuro di IAM
- Estendi questa applicazione di esempio per monitorare l'utilizzo di Markdown con le metriche personalizzate di Cloud Monitoring
- Consulta il tutorial su Pub/Sub per un approccio ai microservizi asincroni sicuri