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
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 arquivomanifest.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 chamarsnow 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 forEXTERNAL
, 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"
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"
Aqui, versão
V1
e patch12
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"
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