Exporta y visualiza los resultados de la vista previa

En esta página, se describe cómo exportar y revisar los resultados de una vista previa. Una vista previa describe las acciones para activar una configuración específica de Terraform. Antes de crear una implementación nueva o actualizar una existente, puedes obtener una vista previa de la implementación para verificar qué se planea cambiar.

Si aún no creaste la vista previa que quieres ver, consulta Cómo obtener una vista previa de una implementación.

En esta página, se supone que estás familiarizado con Terraform. Para obtener más detalles, consulta Terraform y Infrastructure Manager.

Antes de comenzar

  1. Habilita Infra Manager.
  2. Asegúrate de tener los permisos de IAM necesarios para exportar vistas previas: roles/config.admin.
  3. Crea una implementación de vista previa.

Exporta los resultados de la vista previa

Para revisar los resultados de una vista previa, primero debes exportarlos. Luego, visualiza los resultados exportados con una herramienta adecuada.

Para exportar una vista previa, su estado debe ser SUCCEEDED o STALE. Puedes ver el estado actual de una versión preliminar con los comandos describe o list.

Exporta los resultados de una vista previa y guárdalos de forma local con el siguiente comando:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infrastructure Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta Ubicaciones del Administrador de infraestructura para obtener la lista de ubicaciones válidas.
  • PREVIEW_ID: Es el identificador de vista previa que especificas. Consulta Nombre de vista previa para obtener detalles sobre las restricciones del identificador de vista previa.

Cómo ver los resultados de la vista previa

Los resultados se exportan en dos formatos: el archivo de plan binario y la representación JSON. Puedes usar cualquiera de los formatos para revisar los resultados. Para ver los resultados, usa una herramienta adecuada para el formato.

Revisa el archivo del plan binario

Para ver el archivo del plan binario, haz lo siguiente:

  1. Verifica que tengas instalada la CLI de Terraform.

  2. Verifica que la configuración de Terraform que usaste para crear la vista previa esté presente de forma local y se haya inicializado con terraform init.

  3. Imprime el plan propuesto con terraform show.

Revisa la representación JSON

Para ver la representación de JSON, puedes usar tu IDE o herramientas como jq.

Para aplicar restricciones de políticas, puedes usar la representación JSON con herramientas como Terraform vet.

Consulta los detalles de los cambios y las desviaciones de los recursos

Puedes usar las vistas previas para ver la desviación de recursos de tu implementación. Ver la desviación de recursos de tus implementaciones es útil para verificar que los cambios en tus configuraciones sean los esperados y para resumir cómo cambiará tu implementación cuando se actualice con una vista previa en particular.

Cuando creas una vista previa, usas la API de Infra Manager para ver los cambios en tus recursos a medida que actualizas tus implementaciones.

Cómo ver la desviación de recursos

Para ver la desviación de recursos, llama a 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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto Google Cloud en el que se encuentra tu implementación de vista previa.
  • LOCATION: Es la región o zona de la implementación de la versión preliminar.
  • PREVIEW_ID: Es el identificador de tu implementación de vista previa.

El resultado se verá de la siguiente manera:

{
    "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"
                }
            ]
        }
    ]
}

Cómo ver los detalles de una desviación

Para ver los detalles de una desviación, llama a 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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto Google Cloud en el que se encuentra tu implementación de vista previa.
  • LOCATION: Es la región o zona de la implementación de la versión preliminar.
  • PREVIEW_ID: Es el identificador de tu implementación de vista previa.
  • RESOURCE_DRIFT_ID: Es el identificador de tu desviación.

El resultado se verá de la siguiente manera:

{
    "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"
        }
    ]
}

Obtén una vista previa de los cambios en los recursos

Puedes usar las vistas previas para verificar cómo cambiarán tus recursos si actualizas una implementación desde tu vista previa.

Cómo ver los cambios en los recursos

Para ver cómo afectaría a tus recursos la implementación de la versión preliminar, llama a 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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto Google Cloud en el que se encuentra tu implementación de vista previa.
  • LOCATION: Es la región o zona de la implementación de la versión preliminar.
  • PREVIEW_ID: Es el identificador de tu implementación de vista previa.
  • RESOURCE_CHANGE_ID: Es el identificador del cambio de tu recurso.

El resultado se verá de la siguiente manera:

{
    "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"
                }
            ]
        }
    ]
}

Cómo ver los detalles de un cambio en un recurso

Para ver los detalles de un cambio de recurso, llama a 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"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto Google Cloud en el que se encuentra tu implementación de vista previa.
  • LOCATION: Es la región o zona de la implementación de la versión preliminar.
  • PREVIEW_ID: Es el identificador de tu implementación de vista previa.
  • RESOURCE_CHANGE_ID: Es el identificador del cambio de tu recurso.

El resultado se verá de la siguiente manera:

{
    "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"
        }
    ]
}

¿Qué sigue?