Pular para o conteúdo principal
Version: v4.5.0

Criar Stackfiles

O que são Stackfiles?

Stackfiles são bundles, ou seja, um conjunto de Templates e Plugins predefinidos de uma Stack que será aplicado no comando stk-legacy create app).

Quando você utiliza um Stackfile, você pode aplicar um conjunto de Plugins com um único comando do STK CLI ao criar um app.

Quando usar Stackfiles?

  1. Em cenários onde um bundle de Template/Plugin é frequentemente usado dentro de uma Stack.
  2. Os Stackfiles são utéis para evitar que você utilize vários comandos para criar um projeto. Por isso, você pode criar um bundle de Templates e Plugins predefinidos e colocá-los dentro do contexto de um projeto.

Como criar Stackfiles?

Siga os passos abaixo:

Passo 1. Criar uma pasta com o nome 'stackfiles' dentro do repositório da sua Stack

Passo 2. Executar o comando

Dentro da pasta Stackfiles, execute o comando abaixo e escolha um nome para o seu Stackfile:

stk-legacy create stackfile <nome-stackfile>

Passo 3. Editar e definir o arquivo <nome-stackfile>.yaml

O arquivo yaml é criado com o nome que você definiu no passo anterior. Procure a pasta e abra o arquivo. Você verá algo parecido com a estrutura abaixo:

type: app
description: Create a Stackfile Example
display-name: Example Portal Stackfile
template: example-portal-stack/example-portal-template
inputs:
project_version: "1.0.0"
project_description: "Example"
author_name: "John Doe"
author_email: "johndoe@mail.com"
plugins:
- plugin: example-portal-stack/example-portal-plugin

Você deve editar e definir os itens abaixo:

  • O Template que será usado.
  • Os Plugins que serão aplicados.

A sequência de aplicação de Plugins é definida no arquivo.

Atributos Mandatórios:

AtributoDescrição
typeIndica que o Stackfile será usado em um stk-legacy create app.

Atributos Opcionais

AtributoDescrição
descriptionDescrição do Stackfile que será apresentada no comando stk-legacy list stackfile.
templateTemplate usado para criar o app no formato nome-stack/nome-template.
inputsObjetos com os valores dos inputs que serão passados para o Template. Ele não é obrigatório e caso algum valor de input definido no Template não seja informado, a pergunta é feita para o usuário.
pluginsLista de objetos que indicam os Plugins que serão aplicados. O Plugin deve ser informado no formato nome-stack/nome-plugin.

Confira um exemplo da estrutura de um Stackfile já preenchida:

type: app
description: Python Rest API using flask
display-name: Example Portal Stackfile
template: stack-python/python-app-template
inputs:
source_folder: src
plugins:
- plugin: stack-python/flask-api-plugin
inputs:
enable_cors: true
- plugin: stack-python/zappa-deploy-plugin
info

Se você atualizar o Template e/ou o Plugin utilizados no Stackfile, não é necessário deletar e criar o Stackfile novamente. As atualizações são carregadas automaticamente, desde que o Template e o Plugin mantenham o mesmo nome usado anteriormente.

Passo 4. Adicionar o arquivo no Git

Siga os passos abaixo:

  1. Adicione o arquivo yaml do Stackfile no Git e faça o push da Stack;

  2. Logo depois o seu Stackfile será publicado.

Confira abaixo o exemplo do layout de um repositório com Stackfiles:

/stack-python
stack.yaml
/python-app-template/
template.yaml
/templates/
...
/flask-api-plugin/
plugin.yaml
/templates/
...
/zappa-deploy-plugin/
plugin.yaml
/templates/
...
/stackfiles/
default.yaml
flask-serverless-api.yaml

Como utilizar os Stackfiles?

Os Stackfiles podem ser utilizados com o comando:

Para Stackfiles incluídos na própria Stack use a sintaxe:

stk-legacy create app nome-app --stackfile <nome-stack>/<nome-stackfile>
  • Quando você utilizar o Stackfile, o Template e o Plugin já definidos, o app será aplicado com as mesmas definições.
caution

O nome do Stackfile é opcional e pode ser omitido. Neste caso é usado o Stackfile default da Stack, representado pelo arquivo default.yaml.

Exemplos

Exemplo de aplicação de um Stackfile default:

stk-legacy create app nome-app --stackfile <nome-stack>

Você pode utilizar um Stackfile customizado, ou seja, que não está dentro da pasta Stackfiles de uma Stack. Informe o caminho para arquivo yaml da especificação.

Exemplo de aplicação de um Stackfile customizado:

stk-legacy create app nome-app --stackfile /home/user/custom-stackfile.yaml

Esta página foi útil?