Crea un flujo de trabajo con Terraform
En esta guía de inicio rápido, se muestra cómo crear, implementar y ejecutar tu primer flujo de trabajo con Terraform. Terraform es una herramienta de infraestructura como código que te permite crear, cambiar y mejorar de forma predecible una infraestructura de nube mediante código. Aprende a usar Terraform para aprovisionar infraestructura en Google Cloud.
En esta guía de inicio rápido, el flujo de trabajo de muestra envía una solicitud a una API pública y, luego, muestra la respuesta de la API.
Completarás lo siguiente:
- Habilitar la API de Workflows con Terraform
- Crear una cuenta de servicio para el flujo de trabajo con Terraform
- Definir e implementar un flujo de trabajo con Terraform
- Ejecutar el flujo de trabajo con Google Cloud CLI
Antes de comenzar
Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno de Google Cloud restringido.
Ten en cuenta que Cloud Shell ya tiene Terraform integrado. Si necesitas instalar Terraform, consulta la documentación de Terraform en HashiCorp.
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de Cloud Resource Manager and Identity and Access Management (IAM):
gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de Cloud Resource Manager and Identity and Access Management (IAM):
gcloud services enable cloudresourcemanager.googleapis.com
iam.googleapis.com
Crea un archivo de configuración de Terraform
Crea un archivo de configuración de Terraform llamado main.tf
y, luego, incluye los
recursos del proveedor de Google para Terraform que se usan en
esta guía de inicio rápido.
Ten en cuenta que puedes usar la interpolación para sustituciones como variables de referencia, atributos de recursos y funciones de llamada.
Crea un directorio:
mkdir terraform
Ve al directorio
terraform
:cd terraform
Agrega un archivo nuevo,
main.tf
, al directorio:nano main.tf
Agrega los siguientes recursos al archivo
main.tf
:Asigna el ID del proyecto:
provider "google" { project = "PROJECT_ID" }
Reemplaza
PROJECT_ID
por el ID del proyecto.Habilita la API de Workflows:
Crea una cuenta de servicio para el flujo de trabajo:
Define el flujo de trabajo con el recurso
google_workflows_workflow
:Los siguientes argumentos se usan en el flujo de trabajo de muestra:
name
: El nombre de tu flujo de trabajo.region
: Es la ubicación del flujo de trabajo.description
: Es una descripción del flujo de trabajo.service_account
: Es la dirección de correo electrónico o el ID único de la cuenta de servicio asociada con la versión más reciente del flujo de trabajo. Esta cuenta de servicio representa la identidad del flujo de trabajo y determina qué permisos tiene. Si no especificas una cuenta de servicio durante la creación del flujo de trabajo, el flujo de trabajo usa la cuenta de servicio predeterminada de Compute Engine para su identidad. Si deseas obtener más información, consulta Otorga permiso a un flujo de trabajo para acceder a los recursos de Google Cloud.labels
: Es una lista de pares clave-valor para asignar a este flujo de trabajo que te ayuda a organizar tus instancias de Google Cloud. Para obtener más información, consulta ¿Qué son las etiquetas?user_env_vars
: Son las variables de entorno definidas por el usuario asociadas con esta revisión del flujo de trabajo. Para obtener más información, consulta Usa variables de entorno.source_contents
: Es el código de Workflows que se ejecutará. Para conocer el límite de tamaño de archivo, consulta Límites de recursos.
Otros argumentos opcionales incluyen los siguientes:
crypto_key_name
: Es el ID de recurso de una clave de Cloud Key Management Service en el siguiente formato:projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.
call_log_level
: El nivel de registro que se aplica a las llamadas y respuestas de llamadas durante las ejecuciones de este flujo de trabajo. Los valores posibles son:CALL_LOG_LEVEL_UNSPECIFIED
LOG_ALL_CALLS
LOG_ERRORS_ONLY
LOG_NONE
Para obtener más información, consulta Registro de llamadas.
project
: Es el ID del proyecto al que pertenece el recurso. Si no se proporciona, se usa el proyecto del proveedor.name_prefix
: Crea un nombre único que comienza con el prefijo especificado. Si no se especifican este niname
, se elige un valor aleatorio para el nombre.
Crea y ejecuta el flujo de trabajo
Implementar tus recursos de Terraform para crear el flujo de trabajo y, luego, ejecutarlo
Inicializa Terraform en el directorio:
terraform init
Verifica que los cambios que propones con Terraform coincidan con el plan esperado:
terraform plan
Puedes ignorar la nota sobre no usar la opción
-out
.Crea el flujo de trabajo:
terraform apply
En el mensaje Ingresa un valor, escribe
yes
para continuar con la creación de recursos.Confirma que se creó un flujo de trabajo:
gcloud workflows list --location us-central1
El resultado debería ser similar al siguiente ejemplo:
NAME STATE REVISION_ID UPDATE_TIME projects/project-name/locations/us-central1/workflows/sample-workflow ACTIVE 000001-f9a 2024-02-24T13:38:58.353765906Z
De manera opcional, puedes ejecutar el flujo de trabajo:
gcloud workflows execute sample-workflow
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.
- Borra todos los recursos que creaste con Terraform:
terraform destroy
- Borra el flujo de trabajo que creaste:
Cuando se te pregunte si deseas continuar, ingresagcloud workflows delete sample-workflow
y
. - Como alternativa, puedes borrar el proyecto de Google Cloud para evitar que se generen cargos. Si borras tu proyecto de Google Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.
Borra un proyecto de Google Cloud:
gcloud projects delete PROJECT_ID