Nesta página, descrevemos como exportar e analisar os resultados de uma prévia. Uma prévia descreve as ações para ativar uma configuração específica do Terraform. Antes de criar ou atualizar uma implantação, é possível visualizar o que está planejado para mudar.
Se você ainda não criou a visualização que quer acessar, consulte Visualizar uma implantação.
Nesta página, presumimos que você já conhece o Terraform. Para mais detalhes, consulte Terraform e Infrastructure Manager.
Antes de começar
- Ative o Infra Manager.
- Verifique se você tem as permissões do IAM necessárias para exportar
pré-estreias:
roles/config.admin
. - Crie uma implantação de prévia.
Exportar os resultados da prévia
Para analisar os resultados de uma prévia, primeiro exporte-os. Em seguida, confira os resultados exportados usando uma ferramenta adequada.
Para exportar uma prévia, o estado dela precisa ser SUCCEEDED
ou STALE
. É possível conferir o estado atual de uma prévia usando os
comandos "describe" ou "list".
Exporte os resultados de uma prévia e salve-os localmente usando o seguinte comando:
gcloud infra-manager previews export projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID
Substitua:
- PROJECT_ID: o ID do projeto em que o Infrastructure Manager é executado.
- LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infrastructure Manager para ver a lista de locais válidos.
- PREVIEW_ID: o identificador de prévia especificado. Consulte Nome da prévia para detalhes sobre as restrições do identificador de prévia.
Ver os resultados da prévia
Os resultados são exportados em dois formatos: o arquivo de plano binário e a representação JSON. Você pode usar qualquer um dos formatos para analisar os resultados. Para conferir os resultados, use uma ferramenta adequada para o formato.
Revisar o arquivo de plano binário
Para conferir o arquivo de plano binário:
Verifique se você instalou a CLI do Terraform.
Verifique se a configuração do Terraform usada para criar a prévia está presente localmente e inicializada com
terraform init
.Imprima o plano proposto usando
terraform show
.
Analisar a representação JSON
Para conferir a representação JSON, use seu ambiente de desenvolvimento integrado (IDE) ou ferramentas como jq.
Para aplicar restrições de política, use a representação JSON com ferramentas como Terraform vet.
Ver detalhes da mudança e do desvio de recursos
É possível usar prévias para conferir o desvio de recursos da sua implantação. Ver o desvio de recursos das implantações é útil para verificar se as mudanças nas configurações são intencionais e para resumir como a implantação vai mudar quando for atualizada com uma visualização específica.
Ao criar uma prévia, você usa a API do Infra Manager para conferir as mudanças nos recursos à medida que atualiza as implantações.
Ver desvio de recursos
Para conferir o desvio de recursos, chame 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"
Substitua:
- PROJECT_ID: o identificador do projeto Google Cloud em que a implantação de prévia está localizada.
- LOCATION: a região ou zona da implantação de prévia.
- PREVIEW_ID: o identificador da sua implantação de prévia.
O resultado será semelhante a este:
{
"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"
}
]
}
]
}
Ver detalhes de uma derivação
Para conferir os detalhes de um drift, chame 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"
Substitua:
- PROJECT_ID: o identificador do projeto Google Cloud em que a implantação de prévia está localizada.
- LOCATION: a região ou zona da implantação de prévia.
- PREVIEW_ID: o identificador da sua implantação de prévia.
- RESOURCE_DRIFT_ID: o identificador da sua deriva.
O resultado será semelhante a este:
{
"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"
}
]
}
Visualizar mudanças nos recursos
Use as visualizações para verificar como seus recursos vão mudar se você atualizar uma implantação da visualização.
Conferir mudanças de recursos
Para ver como a implantação de prévia afetaria seus recursos, chame
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"
Substitua:
- PROJECT_ID: o identificador do projeto Google Cloud em que a implantação de prévia está localizada.
- LOCATION: a região ou zona da implantação de prévia.
- PREVIEW_ID: o identificador da sua implantação de prévia.
- RESOURCE_CHANGE_ID: o identificador da mudança de recurso.
O resultado será semelhante a este:
{
"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"
}
]
}
]
}
Conferir detalhes de uma mudança de recurso
Para conferir os detalhes de uma mudança em um recurso, chame 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"
Substitua:
- PROJECT_ID: o identificador do projeto Google Cloud em que a implantação de prévia está localizada.
- LOCATION: a região ou zona da implantação de prévia.
- PREVIEW_ID: o identificador da sua implantação de prévia.
- RESOURCE_CHANGE_ID: o identificador da mudança de recurso.
O resultado será semelhante a este:
{
"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"
}
]
}
A seguir
- Ver e listar prévias.
- Implante recursos.
- Saiba mais sobre o Terraform com o Google Cloud.
- Atualize uma implantação.
- Ver o estado de uma implantação.
- Ver recursos implantados.
- Excluir uma implantação.