Edição local da definição da pilha de arquitetura implementável

O arquivo de definição de pilha define as arquiteturas implementáveis membros que são empilhadas para formar uma arquitetura implementável mais complexa. Ele especifica informações sobre como essas arquiteturas implementáveis devem se relacionar umas com as outras, como referências de entrada que conectam as arquiteturas. Se você planeja compartilhar essa solução com outras pessoas por meio de um catálogo privado, é necessária uma definição de pilha para ajudar a garantir que ela possa ser implementada com êxito.

A menos que você empilhe arquiteturas implementáveis em um projeto e queira compartilhar essa solução com outras pessoas por meio de um catálogo privado, não é necessário usar o arquivo de definição de pilha.

A definição de pilha contém variáveis de pilha. Essas variáveis são entradas que os usuários podem configurar e saídas de arquiteturas implementáveis empilhadas que são exibidas no nível pai. Esses valores de entrada são referenciados nas arquiteturas implementáveis dos membros, conforme ilustrado na imagem a seguir. A definição da pilha também inclui entradas de arquiteturas implementáveis de membros. Essas entradas podem ser referências que vinculam as arquiteturas implementáveis. As entradas que exigem um valor ou uma referência específica para implementar a solução com êxito precisam ser incluídas na definição da pilha. Para ver um exemplo, consulte Criando a definição de pilha usando a CLI.

 Uma representação visual de uma definição de pilha. No nível da pilha, uma entrada chamada "prefixo" é incluída. A arquitetura implantável do membro A está usando esse prefixo como uma entrada. A cria saídas. A arquitetura implantável do membro B usa uma dessas saídas como entrada e cria saídas quando é implantada.
Visualizando a definição de pilha

Uso do console para criar a definição da pilha

Em um projeto, sua definição de pilha é criada automaticamente quando você empilha arquiteturas implementáveis e define variáveis. Usar o console para empilhar arquiteturas implantáveis e definir variáveis de pilha oferece os seguintes benefícios:

  • Você pode usar o seletor de referência no console para criar referências entre arquiteturas implantáveis empilhadas, em vez de escrever as referências do zero.
  • A implementação das arquiteturas empilhadas de um projeto ajuda a verificar se a solução geral funciona conforme projetado antes que outras pessoas a configurem e implementem.
  • Como a definição da pilha é criada automaticamente com base nas seleções no console, informações como IDs do localizador de versão de arquiteturas implantáveis de membros são precisas e atualizadas automaticamente.

No projeto, você pode selecionar quais entradas deseja incluir no nível da pilha. Essas entradas são incluídas na seção inputs da definição de pilha e são configuradas como referências na arquitetura implantável do membro em seu projeto. Na imagem a seguir, a entrada prefix é destacada dentro da arquitetura implantável do membro Custom Apache. Se esta entrada for selecionada, o Default value muda para uma referência à entrada do nível de pilha. Quando um usuário adiciona sua solução a um projeto de um catálogo, ele pode configurar a entrada prefix e a arquitetura do membro Custom Apache fará referência a esse valor. A entrada fp_vsi_floating_ip_address faz referência a uma saída de outra arquitetura implementável de membro. Essa entrada não deve ser selecionada, pois essa referência vincula as arquiteturas dos membros. Essas entradas de arquiteturas de membros são incluídas na seção members do arquivo de definição de pilha.

 Definindo variáveis de pilha em um projeto.
Definindo variáveis de pilha em um projeto

Editando sua definição de pilha

Para editar sua definição de pilha localmente, conclua as seguintes etapas:

  1. Conclua as etapas para empilhar arquiteturas implementáveis, definir variáveis de pilha e integrar as arquiteturas empilhadas a um catálogo privado.

    Configure e implemente as arquiteturas que estão empilhadas para verificar se a solução funciona conforme projetado antes de adicioná-la a um catálogo privado.

  2. Depois que a arquitetura implementável for adicionada ao seu catálogo privado, você será levado à página Configurar versão no catálogo. A partir daí, clique no menu Ações > Gerar manifesto.

    Você também pode usar o método Obter uma definição de pilha da API de projetos ou o comando ibmcloud project stack-definition da CLI de projetos para exportar a definição de pilha.

  3. Abra o arquivo stack_definition.json.

  4. Usando a definição de exemplo como guia, edite as variáveis de entrada e saída.

  5. Adicione o arquivo na pasta raiz do seu repositório de código-fonte.

Na próxima vez que você adicionar uma nova versão da sua solução ao catálogo, suas atualizações serão incluídas.

Exemplo de arquivo de definição

Recomenda-se usar um projeto para criar a definição de pilha para ajudar a garantir a precisão. No entanto, o trecho de código a seguir pode ser usado como modelo para criar a definição de pilha do zero:

{
   "inputs": [
      {
         "name": "Stack input 1",
         "type": "string",
         "hidden": false,
         "required": true,
         "default" : "Default value"
      },
      {
         "name": "Stack input 2",
         "type": "string",
         "hidden": false,
         "required": true
      }
   ],
   "outputs": [
      {
         "name": "Output 1 name",
         "value": "The reference to this output value"
      },
      {
         "name": "Output 2 name",
         "value": "The reference to this output value"
      }
   ],
   "members": [
      {
         "Name": "Deployable architecture 1 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      },
      {
         "Name": "Deployable architecture 2 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      }
   ]
}

Entradas de pilha

O valor inputs indica uma matriz das variáveis de entrada necessárias para que a solução seja implantada com êxito. Quando um usuário adiciona a arquitetura implementável a um projeto de um catálogo, ele deve configurar essas entradas antes da implementação. Os seguintes valores podem ser incluídos no nível inputs.

"inputs": [
   {
      "name": "Stack input 1",
      "type": "string",
      "hidden": false,
      "required": true,
      "default" : "Default value"
   },
   {
      "name": "Stack input 2",
      "type": "string",
      "hidden": false,
      "required": true
   }
]
name
O nome de sua variável de entrada.
type
O tipo de dados primitivos do Terraform da variável. Por exemplo, boolean ou string.
hidden
Um booleano que indica se o parâmetro deve ser ocultado dos usuários durante a instalação.
required
Um booleano que indica se os usuários são obrigados a especificar o parâmetro durante a instalação.
default
O valor padrão que deve ser definido no catálogo.

Saídas de pilha

O valor outputs indica uma matriz das variáveis de saída que são criadas quando a solução é implantada. Os seguintes valores podem ser incluídos no nível outputs.

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
O nome de sua variável de saída.
value
A referência de onde o valor pode ser encontrado. Para obter mais informações sobre referências, consulte Referenciando valores.

Entradas de membros

O valor members indica uma matriz de entradas e saídas para cada arquitetura implementável empilhada. Os seguintes valores podem ser incluídos no nível members.

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
O nome programático da arquitetura implantável incluída na pilha.
version_locator
Identifica a versão da arquitetura implantável do membro. Para encontrar o localizador de versões, selecione o produto no catálogo para abrir a página de detalhes do catálogo. Certifique-se de que a versão correta esteja selecionada. Em seguida, clique em Exibir detalhes.
inputs
Entradas para as arquiteturas implantáveis de membros que são empilhadas juntas. Inclua entradas com valores específicos que são necessários para a implantação da solução geral. Se as arquiteturas-membro empilhadas dependerem umas das outras, inclua esses valores aqui como referências. Para obter mais informações, consulte Referenciando valores. Por exemplo, se uma de suas arquiteturas exigir uma saída de outra arquitetura com a qual está empilhada, adicione uma referência à saída como o valor.
name
O nome de sua variável de entrada. Não edite o nome, pois ele deve corresponder à entrada usada na arquitetura implantável do membro.
value
O valor da sua variável de entrada. É necessário fornecer um valor padrão ou uma referência.