En esta página se describe cómo crear una implementación. Una implementación es una instanciación de un conjunto de recursos definidos en una configuración. Proporcionas una configuración válida en la solicitud para crear el despliegue. Una implementación puede contener varios recursos de diferentes servicios. Google Cloud Cuando creas una implementación, Deployment Manager crea todos los recursos descritos en las APIs correspondientes. Google Cloud
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.
- Crea una configuración.
Crear un despliegue
Cuando creas una implementación, creas un recurso de implementación que contiene una colección de recursos. Cada recurso se define explícitamente en una configuración que proporcione en su solicitud.
gcloud
Con Google Cloud CLI, usa el comando deployments create
:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
La marca --config
es una ruta relativa a tu archivo de configuración YAML.
De forma predeterminada, si tu configuración incluye recursos que ya están en tu proyecto, la implementación los adquiere y se pueden gestionar mediante la implementación. Si no quieres adquirir un recurso, debes usar la opción --create-policy
, como en el siguiente comando gcloud beta
:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
Para obtener información sobre las políticas que puedes usar al crear implementaciones, consulta Definir la política para crear recursos.
Si la implementación se crea correctamente, puedes obtener una descripción de la implementación:
gcloud deployment-manager deployments describe my-first-deployment
API
En la API, haz una solicitud insert()
con la configuración proporcionada de forma insertada en el cuerpo de la solicitud:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "example-config-with-templates",
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
}
}
}
Si importa plantillas, también debe proporcionarlas como parte del cuerpo de la solicitud. Por ejemplo, la siguiente solicitud a la API tiene un target
que importa una plantilla llamada vm_template.jinja
:
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "my-example-config-with-templates-2",
"target": {
"config": {
"content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n type: vm_template.jinja"
},
"imports": [
{
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
"name": "vm_template.jinja"
}
]
}
}
Definir la política para crear recursos
Cuando creas un nuevo despliegue, si ya existe en tu proyecto un recurso que quieres crear, el despliegue lo adquiere.
En estos casos, Deployment Manager no crea un nuevo recurso.
Si no quieres adquirir un recurso, debes usar la política CREATE
en tu implementación.
Puedes usar las siguientes políticas para crear tus recursos:
CREATE_OR_ACQUIRE
: [Predeterminado] Deployment Manager adquiere recursos que ya existen en el proyecto o crea recursos si no existen. Para adquirir un recurso, Deployment Manager comprueba en tu configuración las propiedades del recurso que quieres crear. Si ya existe un recurso con las mismas propiedades, Deployment Manager lo adquiere como parte de su implementación.Las propiedades que comprueba Deployment Manager dependen del tipo de recurso que estés creando y pueden incluir lo siguiente:
- El
name
del recurso - El
type
del recurso - El
zone
o elregion
del recurso, si procede
Las propiedades forman parte de la URL de la solicitud a la API
GET
del recurso. Para ver qué propiedades usa Deployment Manager para obtener un recurso, consulta la documentación de la API del métodoGET
del recurso. Por ejemplo, en el caso de las instancias de Compute Engine, la URL de solicitud del métodoinstances.get
incluyeresourceId
(name
en tu configuración),zone
yproject
.- El
CREATE
- Deployment Manager crea recursos que no existen. Si alguno de los recursos de tu configuración ya existe en el proyecto, la implementación fallará.ACQUIRE
: Deployment Manager adquiere recursos que ya existen con los mismos criterios queCREATE_OR_ACQUIRE
.Usa la política
ACQUIRE
si ya tienes varios recursos en tu proyecto y quieres gestionarlos juntos como una sola implementación.En tu plantilla o configuración, debes proporcionar las propiedades obligatorias de estos recursos como si los estuvieras creando. Si alguno de los recursos de tu configuración no existe en el proyecto, la implementación fallará.
Mostrar tus despliegues
Consulta una lista de tus implementaciones en la Google Cloud console, la API o Google Cloud CLI.
Consola
Ve a la página Deployments (Despliegues) de la Google Cloud consola.
gcloud
Con Google Cloud CLI, usa el subcomando deployments list
:
gcloud deployment-manager deployments list
API
En la API, haz una solicitud GET
vacía a la colección Deployments:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments