En esta página se describe cómo crear una configuración que se pueda usar para crear una implementación. Para obtener más información sobre las implementaciones, consulta el artículo Crear una implementación.
Un archivo de configuración define todos los Google Cloud recursos que componen una implementación. Para crear un despliegue, debes tener un archivo de configuración. Los archivos de configuración deben escribirse con la sintaxis YAML.
Antes de empezar
- Si quieres usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos`gcloud`.
- Si quieres usar los ejemplos de API de esta guía, configura el acceso a la API.
- Conocer los conceptos básicos sobre los archivos de configuración.
Estructura del archivo de configuración
Un archivo de configuración se escribe en formato YAML y tiene la siguiente estructura:
# imported templates, if applicable
imports:
# path relative to the configuration file
- path: path/to/template.jinja
name: my-template
- path: path/to/another/template.py
name: another-template
resources:
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
Cada una de las secciones define una parte diferente de la implementación:
La sección
imports
es una lista de archivos de plantilla que usará la configuración. Deployment Manager expande de forma recursiva las plantillas importadas para formar la configuración final.La sección
resources
es una lista de los recursos que componen este despliegue. Un recurso puede ser:- Un tipo base gestionado por Google, como una instancia de VM de Compute Engine.
- Una plantilla importada
- Un tipo compuesto.
- Un proveedor de tipos.
También puedes incluir otras secciones opcionales, como las secciones outputs
y metadata
. La sección outputs
te permite exponer datos de tus plantillas y configuraciones como salidas para que otras plantillas de la misma implementación los usen o como salidas para tus usuarios finales, mientras que la sección metadata
te permite usar otras funciones, como establecer dependencias explícitas entre recursos.
Como mínimo, una configuración siempre debe declarar la sección resources
, seguida de una lista de recursos. El resto de las secciones son opcionales.
Declarar un tipo de recurso
Cada recurso de tu configuración debe especificarse como un tipo. Los tipos pueden ser un tipo base gestionado por Google, un tipo compuesto, un proveedor de tipos o una plantilla importada.
Los tipos base gestionados por Google son tipos que se resuelven en recursos de Google Cloud . Por ejemplo, una instancia de Cloud SQL o un segmento de Cloud Storage es un tipo base gestionado por Google. Puedes declarar estos tipos con la siguiente sintaxis:
type: <api>.<api-version>.<resource-type>
Por ejemplo, una instancia de Compute Engine tendría el siguiente tipo:
type: compute.v1.instance
En el caso de una base de datos de BigQuery, el tipo puede ser:
type: bigquery.v2.dataset
Para ver una lista de todos los tipos admitidos, usa el siguiente comando:
gcloud deployment-manager types list
Para ver una lista completa de los tipos base gestionados por Google admitidos, consulta Tipos de recursos admitidos.
Si usas un proveedor de tipos compuesto, declara el tipo de la siguiente manera:
# Composite type
resources:
- name: my-composite-type
type: [PROJECT]/composite:[TYPE_NAME]
En el caso de un proveedor de tipos:
# Base type
resources:
- name: my-base-type
type: [PROJECT_ID]/[TYPE_PROVIDER_NAME]:[TYPE_NAME]
También puedes crear recursos con proveedores de tipos gestionados por Google (beta). Para ver una lista de proveedores de tipos, consulta Proveedores de tipos admitidos. Google Cloud
Si quiere usar plantillas,
declare la plantilla como un tipo, con el nombre o la ruta de la plantilla como valor de type
.
Por ejemplo, la siguiente configuración importa una plantilla llamada my_vm_template.jinja y la proporciona como tipo:
imports:
- path: path/to/template/my_vm_template.jinja
name: my-template.jinja
resources:
- name: my-first-virtual-machine
type: my-template.jinja
Para obtener más información sobre las plantillas, consulta el artículo Crear una plantilla básica.
Declarar propiedades de recursos
Después de declarar el tipo de recurso, también debe asignarle un name
y especificar las propiedades que quiera para el recurso. Por ejemplo, el siguiente archivo de configuración define una instancia de máquina virtual llamada vm-created-by-deployment-manager
y sus propiedades deseadas. Deployment Manager usa esta información para crear una instancia de VM que tenga estas propiedades.
Para determinar el properties
de un recurso, consulta la documentación de la API del recurso:
- Consulta el formato de la solicitud en el método
insert
ocreate
del recurso. - Si el URI de solicitud contiene la zona, añádela a las propiedades.
En el caso de las matrices, utilice la sintaxis de lista de YAML para enumerar los elementos de la matriz. Por ejemplo, si creas una instancia de Compute Engine con la API, debes proporcionar una matriz de discos que se adjuntarán a la instancia con el siguiente formato:
"disks": [ { "type": "PERSISTENT", "deviceName": "disk1", ... }, { "type": "PERSISTENT", "deviceName": "disk2", ... } ]
En la configuración de Deployment Manager, añade estos discos con la siguiente sintaxis:
disks: - deviceName: disk1 type: PERSISTENT ... - deviceName: disk2 type: PERSISTENT
También puede proporcionar cualquier propiedad de escritura de ese recurso. Para determinar si una propiedad se puede escribir, consulta la documentación de referencia de la API del tipo de recurso. Por ejemplo, la referencia de Compute Engine marca determinadas propiedades que son de solo salida, por lo que no puedes definirlas en tu configuración, ya que son inmutables.
Algunas APIs requieren un conjunto mínimo de propiedades para crear un recurso. Por ejemplo, un disco persistente de Compute Engine requiere el nombre del disco, el origen de la imagen, el tamaño del disco, etc., al crear un disco nuevo. Para obtener información sobre un recurso concreto, consulta la referencia de la API de ese recurso.
Definir propiedades de plantillas
Si importa una plantilla para usarla en su configuración, debe usar la sección properties
para definir los valores de las propiedades de la plantilla en lugar de las propiedades del recurso. Si la plantilla no tiene propiedades de plantilla, puedes omitir la sección properties
.
Crear recursos a partir de diferentes Google Cloud servicios
Por último, un archivo de configuración puede crear recursos de diferentes Google Cloud servicios. Por ejemplo, el siguiente archivo de configuración crea recursos de Compute Engine y BigQuery:
Tipos de recursos y propiedades admitidos
Consulta la lista completa de recursos gestionados por Google admitidos en la documentación sobre tipos de recursos admitidos.
Siguientes pasos
- Obtén una vista previa de la configuración antes de confirmar la implementación.
- Cuando estés conforme con la configuración, úsala para crear una implementación.
- Con el tiempo, deberías plantearte modificar tus archivos de configuración para usar plantillas.