snow app run

Cria um pacote de aplicativo na sua conta Snowflake, carrega arquivos de código para seu estágio e, em seguida, cria ou atualiza um objeto de aplicativo a partir do pacote de aplicativo.

Sintaxe

snow app run
  --version <version>
  --patch <patch>
  --from-release-directive
  --interactive / --no-interactive
  --force
  --validate / --no-validate
  --package-entity-id <package_entity_id>
  --app-entity-id <app_entity_id>
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

Argumentos

Nenhum

Opções

--version TEXT

A versão definida em um pacote de aplicativo existente a partir do qual você deseja criar um objeto de aplicativo. Os nomes do objeto do aplicativo e do pacote do aplicativo são determinados a partir do arquivo de definição do projeto.

--patch INTEGER

O número do patch sob a --version fornecida definida em um pacote de aplicativo existente que deve ser usado para criar um objeto de aplicativo. Os nomes do objeto do aplicativo e do pacote do aplicativo são determinados a partir do arquivo de definição do projeto.

--from-release-directive

Cria ou atualiza um objeto de aplicativo para a versão e o patch especificados pela diretriz de versão aplicável à sua conta Snowflake. O comando falhará se não houver nenhuma diretriz de versão para sua conta Snowflake para um determinado pacote de aplicativo, o que é determinado a partir do arquivo de definição do projeto. Padrão: não definido. Padrão: falso.

--interactive / --no-interactive

Quando ativada, esta opção exibe prompts mesmo que a entrada e a saída padrão não sejam dispositivos terminais. O padrão é True em um ambiente shell interativo e False caso contrário.

--force

Quando ativada, esta opção faz com que o comando aprove implicitamente quaisquer prompts que surjam. Você deve habilitar esta opção se o modo interativo não estiver especificado e se quiser executar ações potencialmente destrutivas. O padrão é não definido. Padrão: falso.

--validate / --no-validate

Quando ativada, esta opção aciona a validação de script de configuração SQL de um Snowflake Native App implementado. Padrão: Verdadeiro.

--package-entity-id TEXT

O ID da entidade do pacote no qual a operação é feita quando definition_version for 2 ou superior.

--app-entity-id TEXT

O ID da entidade do aplicativo no qual a operação é feita quando definition_version for 2 ou superior.

-p, --project TEXT

Caminho onde o projeto Snowflake está. O padrão é o diretório de trabalho atual.

--env TEXT

Cadeia de caracteres no formato chave=valor. Substitui variáveis da seção env usadas para modelos. Padrão: [].

--connection, -c, --environment TEXT

Nome da conexão, conforme definido no arquivo config.toml. Padrão: padrão.

--host TEXT

Endereço do host da conexão. Substitui o valor especificado para a conexão.

--port INTEGER

Porta para a conexão. Substitui o valor especificado para a conexão.

--account, --accountname TEXT

Nome atribuído à sua conta Snowflake. Substitui o valor especificado para a conexão.

--user, --username TEXT

Nome de usuário para se conectar ao Snowflake. Substitui o valor especificado para a conexão.

--password TEXT

Senha do Snowflake. Substitui o valor especificado para a conexão.

--authenticator TEXT

Autenticador Snowflake. Substitui o valor especificado para a conexão.

--private-key-file, --private-key-path TEXT

Caminho do arquivo de chave privada Snowflake. Substitui o valor especificado para a conexão.

--token-file-path TEXT

Caminho para o arquivo com um token OAuth que deve ser usado ao conectar-se ao Snowflake.

--database, --dbname TEXT

Banco de dados a ser usado. Substitui o valor especificado para a conexão.

--schema, --schemaname TEXT

Esquema de banco de dados a ser usado. Substitui o valor especificado para a conexão.

--role, --rolename TEXT

Função a ser usada. Substitui o valor especificado para a conexão.

--warehouse TEXT

Warehouse a ser usado. Substitui o valor especificado para a conexão.

--temporary-connection, -x

Usa conexão definida com parâmetros de linha de comando, em vez de uma definida na configuração. Padrão: falso.

--mfa-passcode TEXT

Token a ser usado para autenticação multifator (MFA).

--enable-diag

Execução do teste de diagnóstico do conector Python. Padrão: falso.

--diag-log-path TEXT

Caminho do relatório de diagnóstico. Padrão: <temporary_directory>.

--diag-allowlist-path TEXT

Caminho do relatório de diagnóstico para a lista de permissões opcional.

--format [TABLE|JSON]

Especifica o formato de saída. Padrão: TABLE.

--verbose, -v

Exibe entradas de log para níveis de log info e superior. Padrão: falso.

--debug

Exibe entradas de log para níveis de log de depuração e superiores; os logs de depuração contêm informações adicionais. Padrão: falso.

--silent

Desliga a saída intermediária para o console. Padrão: falso.

--help

Exibe o texto de ajuda para este comando.

Notas de uso

Nota

Este comando não aceita substituições de função ou warehouse para seu arquivo config.toml. Adicione-os à definição do aplicativo nativo em snowflake.yml ou snowflake.local.yml em vez disso.

Este comando depende da definição do projeto resolvida para determinar o estágio para o qual os arquivos serão carregados, quais arquivos serão carregados e o nome dos objetos a serem criados. Para obter orientação sobre padrões, consulte as notas de uso de Sobre projetos de Snowflake Native App e snow init. Você também pode alterá-los de acordo com sua preferência, embora seja sua responsabilidade verificar se há algum conflito com objetos existentes em sua conta.

  • Objetos criados por Snowflake CLI são marcados com um comentário especial GENERATED_BY_SNOWCLI.

  • A(s) função(ões) usada(s) para criar o pacote e a instância do aplicativo deve(m) ter os privilégios de nível de conta adequados para trabalhar com Snowflake Native Applications. Consulte Criação de um pacote de aplicativo e Instalação e teste um aplicativo localmente para obter mais informações.

Por padrão, o comando snow app run cria um pacote de aplicativo em sua conta Snowflake, carrega arquivos de código para seu estágio, valida o script SQL de configuração e, em seguida, cria (ou atualiza) uma instância do modo de desenvolvimento desse aplicativo. Você deve ter em mente o seguinte ao executar o comando padrão:

  • Todos os arquivos especificados em nativeapp.project.artifacts no(s) arquivo(s) de definição do projeto são enviados para o estágio Snowflake. Este artefato deve incluir um arquivo manifest.yml e seu(s) script(s) de configuração relacionado(s).

  • Todos os arquivos especificados em nativeapp.project.artifacts devem ter sido compilados e colocados em pacote separadamente, se necessário, antes de chamar snow app run. Snowflake CLI não oferece nenhum recurso para executar essas tarefas intermediárias para você, então você tem controle total sobre seu processo de compilação executando-o em seus próprios scripts.

  • Snowflake CLI usa o nome do pacote de aplicativo padrão, o nome do estágio e o nome do aplicativo ao criar esses objetos.

  • Execuções subsequentes de snow app run depois da inicial comparam o estado dos seus arquivos enviados com os arquivos no seu diretório local e enviam seletivamente apenas os arquivos modificados para economizar tempo. Se algum arquivo for alterado, o aplicativo será atualizado com base no novo conteúdo do estágio.

  • Se o pacote do aplicativo já existir e sua propriedade de distribuição for INTERNAL, o comando verificará se o pacote foi criado pelo Snowflake CLI. Caso contrário, o comando gerará um erro. Se a distribuição do pacote de aplicativo for EXTERNAL, nenhuma verificação desse tipo será realizada.

  • O comando avisa se o pacote de aplicativo com o qual você está trabalhando tem um valor diferente para distribuição do que o definido na definição do projeto resolvido, mas continua a execução.

  • A instância do aplicativo é criada ou atualizada no modo de desenvolvimento. Especificamente, ele usa os arquivos preparados.

Se você especificar uma opção --version, --patch ou --from-release-directive, este comando atualiza sua instância de aplicativo existente ou cria uma se o aplicativo não existir. Ele não cria um pacote de aplicativo neste cenário.

  • Se Snowflake CLI não conseguir atualizar seu aplicativo por qualquer motivo, como tentar atualizar um aplicativo instalado inicialmente no modo de arquivos soltos para usar diretrizes de versão, em vez disso, ele tenta descartar o aplicativo existente e criar um novo usando a estratégia de instalação desejada. O comando solicita que você confirme o descarte antes de executar a ação.

  • Se você não quiser interagir com o comando e, em vez disso, forçar todas as ações, use a opção --force para ignorar todos os prompts, que respondem sim a todas as entradas que perguntam se devem prosseguir com ações destrutivas.

  • Snowflake CLI tenta determinar se você está executando os comandos em um shell interativo. Se --force não for fornecido e você estiver executando comandos no shell interativo, ele escolherá automaticamente a opção interativa para você.

  • Se você quiser forçar Snowflake CLI para interagir com você, mesmo que não esteja em um shell interativo, use a opção --interactive.

Exemplos

Esses exemplos pressupõem que você fez as alterações necessárias em seus arquivos de código e os adicionou aos seus arquivos snowflake.yml ou snowflake.local.yml.

  • Se você quiser criar um pacote de aplicativo e um aplicativo usando arquivos preparados, você pode executar:

    cd my_app_project
    my_app_project_build_script.sh
    snow app run --connection="dev"
    
    Copy
  • Se você já tiver um pacote de aplicativo com uma versão e um patch, desejar criar um aplicativo a partir dessa versão e patch e invocar o modo interativo, você pode executar:

    snow app run --version V1 --patch 12 --interactive --connection="dev"
    
    Copy

    Aqui, versão V1 e patch 12 são usados apenas como exemplo.

  • Se você tiver uma diretriz de versão existente definida em um pacote de aplicativo e quiser criar um aplicativo a partir dela e ignorar o modo interativo, poderá executar:

    snow app run --from-release-directive --force --connection="dev"
    
    Copy
  • Este exemplo mostra como passar diversas variáveis de ambiente usando a opção --env:

    snow app run --env source_folder="src/app" --env stage_name=mystage
    
    Copy