Esportare e visualizzare i risultati dell'anteprima

Questa pagina descrive come esportare e rivedere i risultati di un'anteprima. Un'anteprima descrive le azioni per attivare una configurazione Terraform specifica. Prima di creare un nuovo deployment o aggiornarne uno esistente, puoi visualizzare in anteprima il deployment per verificare cosa è previsto che cambi.

Se non hai ancora creato l'anteprima che vuoi visualizzare, consulta Visualizzare l'anteprima di un deployment.

Questa pagina presuppone che tu abbia dimestichezza con Terraform. Per maggiori dettagli, vedi Terraform e Infrastructure Manager.

Prima di iniziare

  1. Abilita Infra Manager.
  2. Assicurati di disporre delle autorizzazioni IAM necessarie per esportare le anteprime: roles/config.admin.
  3. Crea un deployment di anteprima.

Esportare i risultati dell'anteprima

Per esaminare i risultati di un'anteprima, esportali prima. Poi, visualizza i risultati esportati utilizzando uno strumento appropriato.

Per esportare un'anteprima, il relativo stato deve essere SUCCEEDED o STALE. Puoi visualizzare lo stato attuale di un'anteprima utilizzando i comandi describe o list.

Esporta i risultati di un'anteprima e salvali localmente utilizzando il seguente comando:

gcloud infra-manager previews export projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID

Sostituisci:

  • PROJECT_ID: l'ID progetto in cui viene eseguito Infrastructure Manager.
  • LOCATION: la posizione in cui viene eseguito Infra Manager. Consulta le località di Infrastructure Manager per l'elenco delle località valide.
  • PREVIEW_ID: l'identificatore dell'anteprima che specifichi. Per informazioni dettagliate sui vincoli dell'identificatore dell'anteprima, vedi Nome anteprima.

Visualizzare i risultati dell'anteprima

I risultati vengono esportati in due formati: il file binario del piano e la rappresentazione JSON. Puoi utilizzare uno dei due formati per esaminare i risultati. Per visualizzare i risultati, utilizza uno strumento appropriato per il formato.

Esaminare il file del piano binario

Per visualizzare il file del piano binario:

  1. Verifica di aver installato la CLI di Terraform.

  2. Verifica che la configurazione Terraform che hai utilizzato per creare l'anteprima sia presente localmente e inizializzata con terraform init.

  3. Stampa il piano proposto utilizzando terraform show.

Esamina la rappresentazione JSON

Per visualizzare la rappresentazione JSON, puoi utilizzare il tuo IDE o strumenti come jq.

Per applicare i vincoli dei criteri, puoi utilizzare la rappresentazione JSON con strumenti come Terraform vet.

Visualizzare i dettagli delle modifiche e della deriva delle risorse

Puoi utilizzare le anteprime per visualizzare la deriva delle risorse per la tua implementazione. La visualizzazione della deriva delle risorse per i deployment è utile per verificare che le modifiche alle configurazioni siano intenzionali e per riepilogare come cambierà il deployment quando viene aggiornato con una determinata anteprima.

Quando crei un'anteprima, utilizzi l'API Infra Manager per visualizzare le modifiche alle risorse man mano che aggiorni i deployment.

Visualizza la deriva delle risorse

Per visualizzare la deriva delle risorse, chiama ListResourceDrifts:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts"

Sostituisci:

  • PROJECT_ID: L'identificatore del progetto Google Cloud in cui si trova il deployment dell'anteprima.
  • LOCATION: La regione o la zona del deployment di anteprima.
  • PREVIEW_ID: l'identificatore del deployment di anteprima.

Il risultato sarà simile a questo:

{
    "resourceDrifts": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google"
            },
            "propertyDrifts": [
                {
                    "path": "$.json_path_to_property_field",
                    "before": "config-defined-state",
                    "after": "remote-state"
                }
            ]
        }
    ]
}

Visualizzare i dettagli di una deriva

Per visualizzare i dettagli di una deriva, chiama il numero GetResourceDrift:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID"

Sostituisci:

  • PROJECT_ID: L'identificatore del progetto Google Cloud in cui si trova la distribuzione dell'anteprima.
  • LOCATION: La regione o la zona del deployment di anteprima.
  • PREVIEW_ID: l'identificatore del deployment di anteprima.
  • RESOURCE_DRIFT_ID: l'identificatore della deriva.

Il risultato sarà simile a questo:

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google"
    },
    "propertyDrifts": [
        {
            "path": "$.json_path_to_property_field",
            "before": "config-defined-state",
            "after": "remote-state"
        }
    ]
}

Visualizzare l'anteprima delle modifiche alle risorse

Puoi utilizzare le anteprime per verificare in che modo le risorse cambieranno se aggiorni una distribuzione dall'anteprima.

Visualizzare le modifiche alle risorse

Per visualizzare l'impatto del deployment dell'anteprima sulle tue risorse, chiama ListResourceChanges:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges"

Sostituisci:

  • PROJECT_ID: L'identificatore del progetto Google Cloud in cui si trova la distribuzione dell'anteprima.
  • LOCATION: La regione o la zona del deployment di anteprima.
  • PREVIEW_ID: l'identificatore del deployment di anteprima.
  • RESOURCE_CHANGE_ID: l'identificatore della modifica della risorsa.

Il risultato sarà simile a questo:

{
    "resourceChanges": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google",
                "actions": [
                    "update"
                ]
            },
            "intent": "UPDATE",
            "propertyChanges": [
                {
                    "path": "$.json_path_to_property_field1",
                    "before": "true"
                },
                {
                    "path": "$.json_path_to_property_field2",
                    "before": "old value",
                    "after": "new value"
                }
            ]
        }
    ]
}

Visualizzare i dettagli di una modifica alla risorsa

Per visualizzare i dettagli di una modifica alla risorsa, chiama GetResourceChange:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID"

Sostituisci:

  • PROJECT_ID: L'identificatore del progetto Google Cloud in cui si trova la distribuzione dell'anteprima.
  • LOCATION: La regione o la zona del deployment di anteprima.
  • PREVIEW_ID: l'identificatore del deployment di anteprima.
  • RESOURCE_CHANGE_ID: l'identificatore della modifica della risorsa.

Il risultato sarà simile a questo:

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google",
        "actions": [
            "update"
        ]
    },
    "intent": "UPDATE",
    "propertyChanges": [
        {
            "path": "$.json_path_to_property_field1",
            "before": "true"
        },
        {
            "path": "$.json_path_to_property_field2",
            "before": "old value",
            "after": "new value"
        }
    ]
}

Passaggi successivi