Inicializando um projeto a partir de um modelo¶
Para facilitar a instanciação de projetos, Snowflake CLI implementa modelos de projeto. É possível criar seus próprios modelos de projeto ou usar amostras fornecidas pela Snowflake no repositório Git público de modelos de CLI da Snowflake.
O comando snow init cria um diretório de projeto e o preenche com a estrutura de arquivo definida no modelo especificado.
Se você não fornecer a opção
--no-interactive, o comando solicitará cada variável especificada pelo modelo (template.yml) que você não fornecer com a opção-D(ou--variable).Se você fornecer a opção
--no-interactive, o comando usará os valores padrão das variáveis (definidas pelo modelo). Se o modelo não definir um valor padrão para uma variável e você não usar a opção-Dpara fornecê-lo, o comando sairá com um erro.
O comando snow init usa a seguinte sintaxe:
onde:
PATHé um novo diretório onde o comando inicializa o projeto. Se você especificar um diretório existente, o comando sairá com um erro.[--template-source SOURCE]é um dos seguintes:Um caminho de arquivo local do diretório do modelo.
Um URL de Git válido para o diretório com o modelo de projeto. Se não for especificado, o comando assume como padrão o repositório Git de modelos de CLI do Snowflake.
[--template NAME]especifica qual subdiretório deSOURCEusar como modelo (útil para fontes remotas). Se não for fornecido,SOURCEserá tratado como um único modelo.[-D key1=value1 -D key2=value2...]é uma lista de um ou mais pares nome-valor, fornecendo valores para variáveis definidas no modelo (emtemplate.yml). O comando não solicita variáveis fornecidas com esta opção.[--no-interactive]desabilita prompts para entradas do usuário. Se você usar esta opção, será necessário fornecer todos os valores necessários com as opções[-D key1=value1 -D key2=value2...]; caso contrário, o comando existirá com um erro.
Para mais informações, consulte a referência de comando snow init.
Exemplos¶
Inicialização de projeto a partir do modelo
example_snowparkdo repositório padrão:Os prompts de comando para (os valores padrão são exigidos entre colchetes):
Inicialize o projeto a partir do modelo local.
Neste exemplo, as variáveis
query_warehouseestagesão especificadas com a opção-D, portanto, o comando solicita apenas o seguinte:
Criação de modelos personalizados¶
Layout de modelo¶
Um modelo de projeto requer um arquivo template.yml com dados que explicam como o comando snow init deve renderizar o modelo. Se o arquivo não estiver presente no diretório raiz do modelo, snow init termina com um erro. Para obter mais informações, consulte a sintaxe template.yml.
Sintaxe do modelo¶
Variáveis e expressões de modelo devem ser delimitadas entre <! ... !>. Snowflake CLI também oferece suporte a expressões e filtros básicos jinja2, por exemplo:
Os modelos de projeto Snowflake CLI também oferecem suporte filtro e variável reservados a seguir:
Variável
project_dir_name, que resolve automaticamente para o diretório raiz do projeto criado.Por exemplo, suponha que seu arquivo
snowflake.ymlcontenha o seguinte:Se você executar o seguinte comando para inicializar o projeto a partir do modelo personalizado:
O comando
snow initrenderiza o arquivosnowflake.ymlda seguinte forma:Filtro
to_snowflake_identifier, que formata cadeias de caracteres fornecidas pelo usuário em identificadores Snowflake formatados corretamente.A Snowflake recomenda fortemente usar este filtro quando uma variável faz referência a um objeto Snowflake.
Por exemplo, suponha que seu arquivo
snowflake.ymlcontenha o seguinte:Se você executar o seguinte comando para inicializar um projeto a partir do modelo personalizado:
O comando
snow initrenderiza o arquivosnowflake.ymlda seguinte forma:Se uma cadeia de caracteres não puder ser convertida em um identificador Snowflake válido, o comando
snow initsairá com um erro, conforme mostrado:
Sobre o arquivo de modelo do projeto template.yml¶
O arquivo de modelo de projeto template.yml armazena todos os dados necessários para renderizar o projeto. Por exemplo:
A tabela a seguir lista as propriedades em um arquivo de modelo de projeto template.yml.
Propriedade |
Definição |
|---|---|
optional, string (padrão: Nenhum) |
Versão de Snowflake CLI mínima Se especificado, o comando |
optional, string list (padrão: |
Lista de arquivos a serem renderizados pelo comando Nota Arquivos de modelo não incluídos nesta lista são adicionados ao novo projeto, mas seu conteúdo permanece inalterado. |
optional, variable list (padrão: |
Lista de variáveis de modelo. Ele suporta a personalização de prompts, fornecendo valores padrão para variáveis opcionais e verificação básica de tipos. Consulte a tabela Parâmetros de propriedade de variáveis abaixo para obter mais detalhes. Os valores de variável são determinados em ordem a partir desta lista. Se você omitir qualquer variável usada no arquivo |
A tabela a seguir lista os parâmetros de uma propriedade de variável.
Propriedade |
Definição |
|---|---|
required, string |
Nome da variável. É usado em arquivos de modelo, como |
optional, string |
Prompt para solicitar ao usuário um valor. Se você não definir esse parâmetro, o comando exibirá o nome do parâmetro como texto do prompt. Se você definir o prompt da seguinte forma:
|
optional, string/int/float |
Default value of the variable. If not provided, the variable is treated as required, so a user needs to provide the value after a prompt or by specifying it with the O exemplo a seguir define duas variáveis com valores padrão: Quando executado, o comando Neste exemplo, o comando usa o valor padrão ( |
optional, string |
Tipo de dados da variável. Os valores válidos incluem: O exemplo a seguir define uma variável como um tipo de dados Quando executado, o comando snow init exibe os seguintes erros se o usuário inserir um valor do tipo de dados errado: |