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
--channel <channel>
--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 <token>
--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>
--oauth-client-id <oauth_client_id>
--oauth-client-secret <oauth_client_secret>
--oauth-authorization-url <oauth_authorization_url>
--oauth-token-request-url <oauth_token_request_url>
--oauth-redirect-uri <oauth_redirect_uri>
--oauth-scope <oauth_scope>
--oauth-disable-pkce
--oauth-enable-refresh-tokens
--oauth-enable-single-use-refresh-tokens
--client-store-temporary-credential
--format <format>
--verbose
--debug
--silent
--enhanced-exit-codes
Argumentos¶
Nenhum
Opções¶
--version TEXTA 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 INTEGERO número do patch sob a
--versionfornecida 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-directiveCria 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.
--channel TEXTO nome do canal de lançamento a ser usado ao criar ou atualizar uma instância de aplicativo a partir de uma diretriz de versão. Requer que o sinalizador
--from-release-directiveseja definido. Se não for definido, será usado o canal padrão.--interactive / --no-interactiveQuando 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.
--forceQuando 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-validateQuando 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 TEXTO ID da entidade do pacote no qual a operação é feita quando definition_version for 2 ou superior.
--app-entity-id TEXTO ID da entidade do aplicativo no qual a operação é feita quando definition_version for 2 ou superior.
-p, --project TEXTCaminho onde o projeto Snowflake está armazenado. O padrão é o diretório de trabalho atual.
--env TEXTCadeia de caracteres no formato key=value. Substitui as variáveis da seção env usada para modelos. Padrão: [].
--connection, -c, --environment TEXTNome da conexão, conforme definido no arquivo
config.toml. Padrão:default.--host TEXTEndereço do host da conexão. Substitui o valor especificado para a conexão.
--port INTEGERPorta para a conexão. Substitui o valor especificado para a conexão.
--account, --accountname TEXTNome atribuído à sua conta Snowflake. Substitui o valor especificado para a conexão.
--user, --username TEXTNome de usuário para se conectar ao Snowflake. Substitui o valor especificado para a conexão.
--password TEXTSenha do Snowflake. Substitui o valor especificado para a conexão.
--authenticator TEXTAutenticador Snowflake. Substitui o valor especificado para a conexão.
--private-key-file, --private-key-path TEXTCaminho do arquivo de chave privada Snowflake. Substitui o valor especificado para a conexão.
--token TEXTToken OAuth a ser usado ao se conectar ao Snowflake.
--token-file-path TEXTCaminho para o arquivo com um token OAuth a ser usado ao se conectar ao Snowflake.
--database, --dbname TEXTBanco de dados a ser usado. Substitui o valor especificado para a conexão.
--schema, --schemaname TEXTEsquema de banco de dados a ser usado. Substitui o valor especificado para a conexão.
--role, --rolename TEXTFunção a ser usada. Substitui o valor especificado para a conexão.
--warehouse TEXTWarehouse a ser usado. Substitui o valor especificado para a conexão.
--temporary-connection, -xUsa uma conexão definida com parâmetros de linha de comando, em vez de uma definida na configuração. Padrão: falso.
--mfa-passcode TEXTToken a ser usado para autenticação multifator (MFA).
--enable-diagSe deve gerar um relatório de diagnóstico de conexão. Padrão: falso.
--diag-log-path TEXTCaminho para o relatório gerado. O padrão é o diretório temporário do sistema. Padrão: <system_temporary_directory>.
--diag-allowlist-path TEXTCaminho para um arquivo JSON que contém parâmetros da lista de permissões.
--oauth-client-id TEXTValor do ID de cliente fornecido pelo provedor de identidade para integração com o Snowflake.
--oauth-client-secret TEXTValor do segredo do cliente fornecido pelo provedor de identidade para integração com o Snowflake.
--oauth-authorization-url TEXTPonto de extremidade do provedor de identidade que fornece o código de autorização ao driver.
--oauth-token-request-url TEXTPonto de extremidade do provedor de identidade que fornece os tokens de acesso ao driver.
--oauth-redirect-uri TEXTURI a ser usado para redirecionamento de código de autorização.
--oauth-scope TEXTEscopo solicitado na solicitação de autorização do provedor de identidade.
--oauth-disable-pkceDesativa o Proof Key for Code Exchange (PKCE). Padrão:
False.--oauth-enable-refresh-tokensPermite uma reautenticação silenciosa quando o token de acesso real fica desatualizado. Padrão:
False.--oauth-enable-single-use-refresh-tokensSe o usuário deve optar pela semântica de token de atualização de uso único. Padrão:
False.--client-store-temporary-credentialArmazena a credencial temporária.
--format [TABLE|JSON|JSON_EXT|CSV]Especifica o formato de saída. Padrão: TABLE.
--verbose, -vExibe entradas de log para os níveis de log
infoe superiores. Padrão: falso.--debugExibe entradas de log para níveis de log de
depuraçãoe superiores; os logs de depuração contêm informações adicionais. Padrão: falso.--silentDesliga a saída intermediária para o console. Padrão: falso.
--enhanced-exit-codesDiferencia os códigos de erro de saída com base no tipo de falha. Padrão: falso.
--helpExibe 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.artifactsno(s) arquivo(s) de definição do projeto são enviados para o estágio Snowflake. Este artefato deve incluir um arquivomanifest.ymle seu(s) script(s) de configuração relacionado(s).Todos os arquivos especificados em
nativeapp.project.artifactsdevem 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 rundepois 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
--forcepara 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
--forcenã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
V1e patch12sã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"
Para criar um aplicativo a partir da diretriz de versão de um canal de lançamento não padrão, execute:
snow app run --from-release-directive --channel ALPHA --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