Esta página descreve como criar uma implementação. Uma implementação é uma instanciação de um conjunto de recursos definidos numa configuração. Fornece uma configuração válida no pedido de criação da implementação. Uma implementação pode conter vários recursos, em vários Google Cloud serviços. Quando cria uma implementação, o Deployment Manager cria todos os recursos descritos nas APIs respetivas. Google Cloud
Antes de começar
- Se quiser usar os exemplos de linhas de comando neste guia, instale a ferramenta de linhas de comando`gcloud`.
- Se quiser usar os exemplos de API neste guia, configure o acesso à API.
- Crie uma configuração.
Criar uma implementação
Quando cria uma implementação, está a criar um recurso de implementação que contém uma coleção de recursos. Cada recurso é definido explicitamente numa configuração que fornece no seu pedido.
gcloud
Com a CLI do Google Cloud, use o comando deployments create
:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
A flag --config
é um caminho relativo para o seu ficheiro de configuração YAML.
Por predefinição, se a sua configuração incluir recursos que já se encontram no seu projeto, esses recursos são adquiridos pela implementação e podem ser geridos através da implementação. Se não quiser adquirir um recurso, tem de usar a opção --create-policy
, como no seguinte comando gcloud beta
:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
Para ver informações sobre as políticas que pode usar quando cria implementações, consulte o artigo Definir a política para criar recursos.
Se a implementação for criada com êxito, pode obter uma descrição da implementação:
gcloud deployment-manager deployments describe my-first-deployment
API
Na API, faça um pedido insert()
com a configuração fornecida inline, no corpo do pedido:
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"
}
}
}
Se importar modelos, também tem de fornecer esses modelos como parte do corpo do pedido. Por exemplo, o seguinte pedido de API
tem um target
que importa um modelo com o nome 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 a política para a criação de recursos
Quando cria uma nova implementação, se um recurso que quer criar já existir no seu projeto, é adquirido pela implementação.
Nestes casos, o Deployment Manager não cria um novo recurso.
Se não quiser adquirir um recurso existente, tem de usar a política CREATE
para a sua implementação.
Pode usar as seguintes políticas para criar os seus recursos:
CREATE_OR_ACQUIRE
- [Predefinição] O Deployment Manager adquire recursos que existem no projeto ou cria recursos se não existirem. Para adquirir um recurso, o Deployment Manager verifica a sua configuração para as propriedades do recurso que está a tentar criar. Se existir um recurso com as mesmas propriedades, o Deployment Manager adquire esse recurso como parte da sua implementação.As propriedades que o Deployment Manager verifica dependem do tipo de recurso que está a criar e podem incluir:
- O
name
do recurso - O
type
do recurso - O
zone
ou oregion
do recurso, se aplicável
As propriedades fazem parte do URL do pedido da API
GET
para o recurso. Para ver que propriedades o Deployment Manager usa para adquirir um recurso, consulte a documentação da API do métodoGET
do recurso. Por exemplo, para instâncias do Compute Engine, o URL do pedido para o métodoinstances.get
incluiresourceId
(name
na sua configuração),zone
eproject
.- O
CREATE
- O Deployment Manager cria recursos que não existem. Se algum dos recursos na sua configuração já existir no projeto, a implementação falha.ACQUIRE
- O Deployment Manager adquire recursos já existentes, usando os mesmos critérios queCREATE_OR_ACQUIRE
.Use a política
ACQUIRE
se já tiver vários recursos no seu projeto e quiser geri-los em conjunto como uma única implementação.No modelo ou na configuração, tem de fornecer as propriedades necessárias para estes recursos como se os estivesse a criar. Se algum dos recursos na sua configuração não existir no projeto, a implementação falha.
Apresentar as suas implementações
Veja uma lista das suas implementações na Google Cloud console, na API ou na CLI Google Cloud.
Consola
Aceda à página Implementações na Google Cloud consola.
gcloud
Com a Google Cloud CLI, use o subcomando deployments list
:
gcloud deployment-manager deployments list
API
Na API, faça um pedido GET
vazio à coleção Deployments:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments