Esegui il deployment di un'istanza di servizio con Runtime SaaS

Scopri come eseguire il deployment di un'istanza di servizio utilizzando Runtime SaaS. In questo esempio di guida rapida, l'istanza di servizio è una VM.

Prima di iniziare

  1. Accedi al tuo Account Google.

    Se non ne hai già uno, registrati per creare un nuovo account.

  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the SaaS Runtime, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  6. Installa Google Cloud CLI.

  7. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  8. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  9. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the SaaS Runtime, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  13. Installa Google Cloud CLI.

  14. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  15. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Concedi le autorizzazioni al account di servizio del runner SaaS

Runtime SaaS utilizza più di un account di servizio. Nella sezione precedente hai creato un service account e, quando abiliti l'API SaaS Runtime, SaaS Runtime crea un altro account di servizio.

Il account di servizio creato da Runtime SaaS si chiama service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero del tuo progetto.

Concedi a questo account di servizio le autorizzazioni richieste procedendo nel seguente modo:

  1. Apri la pagina Runtime SaaS > Panoramica > Inizia.

    Vai a Inizia a utilizzare Runtime SaaS

  2. Nel banner con il messaggio Non sono state concesse le autorizzazioni richieste per l'account Runtime SaaS, fai clic su Concedi autorizzazioni.

Definisci l'istanza del servizio utilizzando una configurazione Terraform

Devi utilizzare una configurazione Terraform per definire l'infrastruttura da deploy per l'istanza di servizio. In questa guida rapida, esegui il deployment di una VM.

Per creare una configurazione Terraform che definisce una VM:

  1. Crea una directory denominata terraform-vm sulla tua macchina locale.

  2. All'interno di terraform-vm, crea i seguenti quattro file Terraform:

    1. Un file denominato versions.tf con i seguenti contenuti:

      terraform {
        required_version = "1.5.7"
        required_providers {
          google = {
            source  = "hashicorp/google"
            version = "~> 4.0"
          }
        }
      }
      
    2. Un file denominato outputs.tf con i seguenti contenuti:

      output "instance_name" {
        description = "Name of the instance"
        value       = google_compute_instance.vm_instance.name
      }
      
      output "instance_external_ip" {
        description = "External IP of the instance"
        value       = google_compute_instance.vm_instance.network_interface[0].access_config[0].nat_ip
      }
      
      output "instance_self_link" {
        description = "Self-link of the instance"
        value       = google_compute_instance.vm_instance.self_link
      }
      
    3. Un file denominato variables.tf con i seguenti contenuti:

      variable "region" {
        description = "The Google Cloud region"
        type        = string
        default     = "us-central1"
      }
      
      variable "zone" {
        description = "The Google Cloud zone"
        type        = string
        default     = "us-central1-a"
      }
      
      variable "instance_name" {
        description = "Name for the Compute Engine instance"
        type        = string
        default = "saas-runtime-vm-instance"
      }
      
      variable "machine_type" {
        description = "Machine type for the Compute Engine instance"
        type        = string
        default = "e2-medium"
      }
      
      variable "disk_size" {
        description = "Boot disk size in GB"
        type        = number
        default = 10
      }
      
      variable "actuation_sa" {
        description = "The email of the Actuation Service Account"
        type        = string
      }
      
      variable "tenant_project_id" {
        description = "The project ID of the tenant project"
        type        = string
      }
      
      variable "tenant_project_number" {
        description = "The project number of the tenant project"
        type        = number
      }
      
    4. Un file denominato main.tf con i seguenti contenuti:

      resource "google_compute_instance" "vm_instance" {
        project      = var.tenant_project_id
        name         = var.instance_name
        machine_type = var.machine_type
        zone         = var.zone
      
        boot_disk {
          initialize_params {
            image = "debian-cloud/debian-11"
            size  = var.disk_size
          }
        }
      
        network_interface {
          network = "default"
          access_config {
            # Ephemeral public IP - empty block is okay here
          }
        }
      
        tags = ["allow-ssh"]
      }
      
  3. Per creare un archivio zip contenente questi quattro file di configurazione Terraform, vai alla directory terraform-vm nel terminale ed esegui questo comando:

    zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
    

    Ora hai un archivio compresso denominato terraform-files.zip che contiene tutti e quattro i file di configurazione di Terraform.

Crea un repository in Artifact Registry

Per utilizzare Runtime SaaS, devi avere un repository in Artifact Registry. Per creare questo repository:

  1. Nella console, vai ad Artifact Registry.

    Vai ad Artifact Registry

  2. Fai clic su Crea repository.

  3. In Nome, digita vm-quickstart-repo.

  4. Mantieni Docker come Formato selezionato.

  5. In Regione, scegli us-central1 (Iowa).

  6. Fai clic su Crea.

Crea un'offerta SaaS

Hai la configurazione Terraform che definisce la VM di cui vuoi eseguire il deployment e un repository. Ora puoi utilizzare Runtime SaaS per modellare le unità di deployment ed eseguire il deployment della VM.

Crea una risorsa di offerta SaaS

  1. Nella console, vai a Runtime SaaS > Offerta SaaS.

    Vai all'offerta SaaS

  2. Fai clic su Crea.

  3. Nel campo Nome dell'offerta SaaS, digita vm-quickstart-saas-offering.

  4. Nel campo Regione, seleziona la regione us-central1, poi fai clic su Ok.

  5. Fai clic su Crea.

Le regioni che hai selezionato per l'offerta SaaS sono quelle in cui vengono ospitati i deployment della tua offerta SaaS. Nell'esempio di questa guida rapida, l'offerta SaaS è una singola VM, quindi queste regioni sono quelle in cui viene eseguito il provisioning e l'hosting della VM.

Se hai utenti finali che accedono a queste VM, accederanno a queste VM distribuite nelle regioni che specifichi qui.

Modellare le unità di deployment

Per modellare l'offerta SaaS, crei componenti chiamati tipi di unità. Un tipo di unità definisce un componente all'interno del servizio da implementare e gestire. Ad esempio, potresti avere un tipo di unità per una VM e un secondo tipo di unità per l'applicazione in esecuzione su quella VM.

In questa guida rapida crei un tipo di unità per la VM.

Per creare il tipo di unità:

  1. Nella console, vai a SaaS Runtime > Tipi di unità.

    Vai a Tipi di unità

  2. Seleziona Crea.

  3. Nella pagina Crea blueprint:

    1. Seleziona Carica.
    2. Per caricare la configurazione Terraform che definisce la VM, procedi nel seguente modo:
      1. Nel campo Selettore file, seleziona Sfoglia.
      2. Vai a terraform-files.zip e selezionalo. Si tratta del file di archivio zip che hai creato in precedenza.
      3. Seleziona Apri.
    3. Fai clic su Avanti: configura il progetto iniziale.
  4. Nella pagina Progetto iniziale del datastore:

    1. Seleziona Artifact Registry:
      1. Nel campo Seleziona repository da Artifact Registry, seleziona Sfoglia.
      2. Seleziona vm-quickstart-repo, il repository che hai creato in precedenza.
      3. Fai clic su Seleziona.
    2. Nel campo Nome immagine artefatto, digita vm-quickstart-blueprint.
    3. In Versione Terraform di Infrastructure Manager, seleziona 1.5.7.
    4. Per il service account Cloud Build, seleziona il service account che hai creato nella sezione Prima di iniziare.
    5. Fai clic su Avanti: dettagli del tipo di unità.
  5. Nella pagina Configura le proprietà del tipo di unità, segui questi passaggi:

    1. Per Nome del tipo di unità, digita vm-quickstart-unit-kind.
    2. Per Offerta SaaS, seleziona vm-quickstart-saas-offering, ovvero la risorsa dell'offerta SaaS che hai creato in precedenza.
    3. Fai clic su Avanti: configurazione della release.
  6. In Nome della release, digita vm-quickstart-first-release.

  7. Fai clic su Crea.

Esegui il provisioning dell'istanza di servizio

Per eseguire il provisioning delle risorse che fanno parte di un tipo di unità, crea unità. Quando crei un'unità, Runtime SaaS esegue il provisioning delle risorse definite nella configurazione Terraform collegata al tipo di unità. Le risorse vengono provisionate in ogni regione che fa parte dell'offerta SaaS.

Nell'esempio di questa guida rapida, la VM viene sottoposta a provisioning nella regione us-central1.

  1. Creare un'unità:

    1. Nella console, vai a SaaS Runtime > Unità.

      Vai a Unità

    2. Seleziona Crea.

    3. Nella pagina Crea un'unità:

      1. In Nome unità, digita: vm-quickstart-unit.
      2. Nella sezione Offerta SaaS, seleziona la risorsa dell'offerta SaaS che hai creato in precedenza: vm-quickstart-saas-offering.
      3. In Regione, seleziona us-central1.
      4. In Tipo di unità, seleziona il tipo di unità che hai creato in precedenza: vm-quickstart-unit-kind.
      5. Seleziona Crea.
  2. Per eseguire il provisioning della VM:

    1. Nella pagina Dettagli unità, seleziona Provisioning.
    2. Per il campo Rilascio, seleziona vm-quickstart-first-release.
    3. Per Service account, seleziona il service account che hai creato nella sezione Prima di iniziare.
    4. Aggiungi un progetto tenant:

      1. Seleziona Aggiungi variabili del progetto tenant.
      2. Seleziona il Google Cloud progetto che utilizzi per questa guida rapida. Quando Runtime SaaS esegue il deployment della VM, lo esegue in questo progetto.
    5. Seleziona Provisioning.

SaaS Runtime esegue il provisioning di una VM nella regione specificata nell'offerta SaaS. Puoi creare unità in qualsiasi regione specificata nell'unità. In questa guida rapida, hai specificato una regione (us-central1) ed è qui che viene eseguito il provisioning della VM.

Visualizza la VM di cui è stato eseguito il deployment

Ora hai utilizzato Runtime SaaS per eseguire il deployment della VM.

Per visualizzare la VM che hai deployment in questa guida rapida:

  1. Nella console, vai alla pagina Runtime SaaS > Unità > Dettagli unità.

    Vai a Unità

  2. Fai clic sul nome dell'unità: vm-quickstart-unit.

  3. Nella pagina Dettagli unità:

    1. Verifica che lo stato sia:

      • Pronta se è stato eseguito il provisioning della VM.
      • Provisioning se l'operazione è ancora in corso.
    2. Espandi la sezione Variabili.

    3. In Variabili di output, puoi vedere l'IP esterno che puoi utilizzare per raggiungere l'istanza.

  4. Puoi anche visualizzare la VM in Compute Engine:

    1. Nella console, vai alla pagina Compute Engine > Istanze VM.

      Vai a Istanze VM

    2. Visualizza la VM elencata in Istanze VM.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Elimina il progetto

Se hai eseguito il deployment della soluzione in un nuovo progetto Google Cloud e non ne hai più bisogno, eliminalo completando i seguenti passaggi:

  1. Nella console Google Cloud , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Al prompt, digita l'ID progetto e fai clic su Chiudi.

Passaggi successivi