Upgrade de um aplicativo¶
Este tópico fornece informações sobre o upgrade de um Snowflake Native App.
Sobre upgrades¶
O Snowflake Native App Framework permite que os provedores atualizem um aplicativo para uma nova versão ou patch. Para ver como as atualizações se encaixam no fluxo de trabalho geral para o desenvolvimento de uma nova versão ou patch de um aplicativo, consulte Fluxo de trabalho para atualizar um aplicativo.
Os provedores podem iniciar uma atualização de um aplicativo para uma nova versão ou patch definindo uma diretriz de versão no pacote do aplicativo. Quando a diretriz de versão é modificada, o Snowflake atualiza automaticamente todas as instâncias instaladas da versão atual do aplicativo para a versão especificada pela diretriz de versão.
Quando o provedor inicia uma atualização, o Snowflake adiciona cada aplicativo a ser atualizado a uma fila. Cada aplicativo é atualizado à medida que os recursos estão disponíveis. O processo de atualização pode demorar um pouco para ser concluído em todas as versões instaladas do aplicativo. Para agilizar o processo de atualização, os consumidores também podem iniciar manualmente uma atualização de um aplicativo quando uma nova versão ou patch estiver disponível.
Nota
Após o início do processo de atualização do aplicativo, os consumidores não poderão mais atualizar o aplicativo manualmente.
Fluxo de trabalho de atualização¶
Um provedor faz o upgrade de um aplicativo instalado usando o seguinte fluxo de trabalho:
Atualize o aplicativo para incluir novos recursos.
Se você estiver criando uma nova versão do aplicativo e houver duas versões atualmente definidas para o aplicativo:
Certifique-se de que nenhum consumidor esteja executando a versão no momento.
Descarte a versão do aplicativo que você está substituindo.
Crie uma nova versão ou patch para as alterações no pacote de aplicativo.
Se a propriedade DISTRIBUTION do pacote do aplicativo estiver definida como
EXTERNAL
, a verificação de segurança automatizada será iniciada. A verificação de segurança deve passar antes que o upgrade possa ocorrer.Teste a nova versão criando a instalação do aplicativo em sua conta de teste.
Atualize a diretriz de versão da versão ou patch.
Isso inicia um upgrade automatizado que atualizará todas as instâncias instaladas da versão anterior. Um provedor pode notificar o consumidor de que uma atualização está disponível e solicitar que ele faça a atualização manual do aplicativo.
Início da atualização¶
O processo de atualização é iniciado automaticamente quando um provedor atualiza a diretriz de versão (padrão ou personalizada) do pacote do aplicativo para apontar para uma nova versão ou patch. Use o comando ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE para definir a diretriz de versão, conforme mostrado nos exemplos a seguir:
ALTER APPLICATION PACKAGE my_application_package SET DEFAULT RELEASE DIRECTIVE
VERSION = v2
PATCH = 0;
Esse comando define a diretriz de versão padrão para a versão v2
e o patch 0
.
ALTER APPLICATION PACKAGE my_application_package
SET RELEASE DIRECTIVE my_custom_release_directive
ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
VERSION = v2
PATCH = 0;
Esse comando define a diretriz de versão personalizada chamada my_custom_release_directive
para a versão v2
e o patch 0
para a conta USER_ACCOUNT.snowflakecomputing.com.
Consulte Configuração da diretriz de lançamento para um aplicativo para obter mais informações.
Atualização manual de um aplicativo¶
As atualizações manuais permitem que um consumidor atualize seu aplicativo instalado mais rapidamente do que as atualizações automatizadas. Quando uma nova versão ou patch estiver disponível, o provedor poderá solicitar ao consumidor que faça uma atualização manual.
O consumidor realiza uma atualização manual executando o ALTER APPLICATION. Esse comando inicia a atualização de uma versão instalada ou de um patch de um aplicativo usando a diretriz de versão especificada no pacote do aplicativo.
Para fazer o upgrade de um Snowflake Native App instalado para a versão mais recente disponível, um consumidor pode usar a cláusula UPGRADE do comando ALTER APPLICATION para modificar o objeto do aplicativo:
ALTER APPLICATION <name> UPGRADE
Atualização de um aplicativo em todas as regiões¶
Depois de atualizar o aplicativo, as alterações no Snowflake Native App instalado na conta do consumidor podem não ficar visíveis até que a atualização para regiões remotas seja executada.
Você pode usar o Exibição APPLICATION_STATE no esquema Uso de Data Sharing para monitorar o estado. Se o upgrade não for concluído mais de um dia após a primeira atualização depois do upgrade, pode haver um problema com o processo de atualização. Entre em contato com o suporte Snowflake.
Se um provedor publicar um Snowflake Native App usando o Preenchimento automático entre nuvens, as atualizações automatizadas poderão demorar um pouco para serem atualizadas, dependendo de vários fatores, inclusive:
O valor do agendamento de atualização.
O número de instâncias instaladas do aplicativo.
O número de regiões onde o aplicativo está implantado.
Se a atualização contiver uma correção urgente que precise ser atualizada em uma região remota, o provedor poderá reduzir a frequência de atualização da listagem para um valor menor. Consulte Monitoramento e gerenciamento de configurações de preenchimento automático para obter informações sobre como definir a frequência de atualização no nível da conta.
Cuidado
A redução da frequência de atualização pode aumentar os custos associados à replicação.
Atualização de estados¶
Durante o processo de atualização, o aplicativo passa por diferentes estados. O diagrama a seguir mostra os possíveis estados ao fazer upgrade da versão anterior, v1, para uma nova versão, v2.
Nota
Embora esse diagrama mostre uma atualização para uma versão, ele também se aplica a atualizações de patches.

A tabela a seguir mostra cada estágio do processo de upgrade de um aplicativo na mesma região em que o pacote do aplicativo está localizado:
Estágio |
Descrição |
|
---|---|---|
1 |
O aplicativo está desativado? |
Se o aplicativo estiver desativado, não será possível fazer upgrade. |
2 |
Definir a diretriz de versão como v2.0 |
O provedor define a diretriz de versão como v2.0. |
3 |
Elegível para upgrade |
O Snowflake realiza verificações para confirmar se o aplicativo é elegível para upgrade. Essas verificações incluem verificar se o aplicativo não está desativado, se o pacote do aplicativo está disponível, se a versão e o patch são válidos para atualização, se a conta do consumidor é válida etc. |
4 |
Obter slot de upgrade? |
Dependendo do número de aplicativos que estão sendo atualizados, do número de contas de consumidores etc., eles podem ter que esperar para iniciar o processo de atualização. |
5 |
O script de configuração foi executado com êxito? |
Quando a atualização começa, o Snowflake executa o script de configuração. Se ocorrer algum erro não detectado, a execução do script de configuração será interrompida. O Snowflake coloca o aplicativo na fila para atualização novamente com base no número de tentativas configuradas. |
6 |
A versão está atualizada? |
O Snowflake verifica se a atualização é para uma versão ou patch. Se a atualização for para uma versão, o Snowflake realizará verificações adicionais e aguardará até que todos os trabalhos da versão anterior do aplicativo tenham sido concluídos. |
A tabela a seguir mostra o processo de upgrade para aplicativos que são implementados em regiões remotas:
Estágio |
Descrição |
|
---|---|---|
7 |
Diretriz de versão v2.0 replicada na região remota |
Quando um provedor define a diretriz de versão para um aplicativo implantado em uma região remota, a diretriz de versão é propagada para o pacote do aplicativo implantado na região remota. |
8 |
Região ativa para a v2.0? |
Quando a maioria dos aplicativos na região primária tiver sido atualizada, o Snowflake envia mensagens para a região remota para iniciar a atualização do aplicativo. |
9 |
Iniciar o processo de upgrade |
Inicie o processo de upgrade do aplicativo conforme descrito na tabela anterior. |
A tabela a seguir descreve cada um dos possíveis estados do processo de upgrade:
Estado |
Descrição |
---|---|
DISABLED |
O aplicativo está desativado e não é elegível para atualização. |
QUEUED |
O aplicativo está na fila de espera para ser atualizado com base no número de aplicativos e contas de consumidores. |
UPGRADING |
O aplicativo está em processo de atualização. |
COMPLETED |
A atualização do aplicativo foi bem-sucedida. |
QUEUED_RETRY |
O script de configuração ou outra verificação falhou e o aplicativo é devolvido à fila de atualização. |
FAILED |
A atualização do aplicativo falhou. As atualizações podem falhar no lado do provedor, por exemplo, devido a um erro no script de configuração. As atualizações também podem falhar no lado do consumidor se o aplicativo estiver desativado, a conta do consumidor estiver inativa etc. |
Monitoramento do estado de uma atualização¶
Para visualizar o estado de atualização de um aplicativo, use o Exibição APPLICATION_STATE.
Por exemplo, em uma situação em que você atualizou a diretriz de versão padrão e deseja verificar se todos os aplicativos atingiram a versão de destino. Para localizar instâncias de aplicativos que ainda não concluíram o upgrade, use a consulta do exemplo a seguir:
SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
Essa exibição inclui colunas específicas para upgrades, incluindo o estado do upgrade e a região onde o aplicativo está implantado. Para obter informações sobre os estados de upgrade, consulte Atualização de estados.
Solução de problemas durante a atualização¶
O Snowflake Native App Framework oferece várias maneiras de solucionar problemas de upgrade:
Como identificar erros de upgrade¶
Os consumidores podem usar o comando DESCRIBE APPLICATION para visualizar mensagens de erro relacionadas a upgrades com falha. Esse comando fornece informações sobre os erros que ocorreram durante o processo de upgrade.
Os provedores podem usar o Exibição APPLICATION_STATE para visualizar mensagens de erro de upgrades com falha. Usando essa visualização, os provedores podem diagnosticar problemas com aplicativos específicos. Consulte Monitoramento do estado de uma atualização para obter mais informações.
Como usar o registro em log e o rastreamento de eventos¶
Se o registro em log e o rastreamento de eventos estiverem configurados para o aplicativo, os provedores poderão consultar a tabela de eventos para diagnosticar problemas com a atualização do aplicativo.
Consulte Exibição dos logs e eventos na tabela de eventos para obter mais informações.
Monitoramento do estado de um serviço do aplicativo¶
Para visualizar informações sobre o status de um pool de computação ou serviço em um aplicativo, os consumidores podem usar as seguintes funções do sistema:
Os consumidores podem compartilhar essas informações com os provedores. Os provedores também podem configurar o compartilhamento de eventos para retornar essas informações.
Aplicativos desativados¶
Quando um aplicativo instalado na conta do consumidor é desativado, ele não pode mais ser usado. Um aplicativo instalado em uma conta de consumidor pode ser desativado por vários motivos, inclusive:
Problemas com o pacote do aplicativo
Problemas com o aplicativo instalado
Problemas com a conta do consumidor
Tanto os provedores quanto os consumidores devem evitar situações em que um aplicativo permaneça desativado por um longo período. Os aplicativos desativados podem se tornar inutilizáveis e precisam ser reinstalados
Atualização de um aplicativo desativado¶
Os aplicativos desativados não fazem parte do processo normal de atualização e não podem ser atualizados. Se um aplicativo desativado for reativado, ele será automaticamente atualizado para a versão e o patch da diretriz de versão. No entanto, se a versão ou o patch não estiver mais disponível, o aplicativo não poderá ser atualizado e deverá ser reinstalado.
Por exemplo, se um aplicativo desativado estiver na versão v1
, mas as versões atual e anterior no pacote de aplicativos forem v2
e v3
, o aplicativo não poderá ser atualizado e ficará inutilizável.
Motivos pelos quais um aplicativo pode ser desativado¶
Você pode visualizar a coluna DISABLEMENT_REASONS do Exibição APPLICATION_STATE para ver os motivos pelos quais um aplicativo está desativado. A tabela a seguir lista os valores possíveis para a coluna DISABLEMENT_REASONS:
Valor |
Descrição do status |
É recuperável? |
---|---|---|
MANUALLY_DISABLED |
O aplicativo foi desabilitado pelo Snowflake |
Sim. Para reativar o aplicativo, entre em contato com o suporte Snowflake. |
ACCOUNT_INACTIVE |
A conta fica inativa ao ser bloqueada ou suspensa, fazendo com que o aplicativo fique indisponível. Nesse estado, o consumidor não pode executar nenhuma consulta SQL em sua conta e o aplicativo não pode ser atualizado. |
Sim. O aplicativo é reativado automaticamente se o bloqueio ou suspensão da conta for removido |
PACKAGE_VERSION_IS_MISSING |
A versão do pacote de aplicativo para o aplicativo foi descartada pelo provedor. |
Não. O aplicativo não pode mais ser usado e deve ser descartado e reinstalado a partir de uma listagem válida ou pacote de aplicativo. |
CMK_ACCESS_DENIED |
O consumidor gerencia a chave de criptografia (ENCRYPT_USE_CMK_KMS está habilitado) e o Snowflake não tem acesso a essa chave. |
Sim. Para reativar o aplicativo, certifique-se de que a configuração do provedor de nuvem para recuperar a CMK esteja correta e que o Snowflake tenha acesso à chave. |
LISTING_ACCESS_REVOKED |
A listagem usada para criar o aplicativo não está mais disponível. Possíveis razões para esse status incluem:
|
Possivelmente. A recuperabilidade depende do motivo pelo qual o acesso foi revogado. Por exemplo, se o listagem foi excluída, ela não poderá ser recuperada. Se uma conta de consumidor foi removida manualmente da listagem privada, o acesso à listagem e ao aplicativo pode ser restaurado. |
LISTING_TRIAL_USAGE_EXCEEDED |
O aplicativo excedeu o limite de uso para uma listagem de teste baseada no uso. |
Não |
LISTING_PAYMENT_REQUIRED |
A listagem usada para instalar o aplicativo é uma listagem paga e exige pagamento para uso posterior. |
Sim. O consumidor deve definir corretamente o pagamento do aplicativo. |
LISTING_TRIAL_TIME_EXCEEDED |
O aplicativo excedeu o período de teste. |
Não |
APPLICATION_PACKAGE_NOT_AVAILABLE |
O pacote de aplicativo usado para criar o aplicativo não existe mais. O provedor pode ter descartado o pacote de aplicativo correspondente. |
Não |
APPLICATION_PACKAGE_DISABLED |
O pacote de aplicativo usado para criar o aplicativo é desabilitado pelo Snowflake. |
Sim. O aplicativo será reativado se o Snowflake reativar o pacote do aplicativo. |
APPLICATION_SUSPENDED |
Os recursos do aplicativo, por exemplo, tarefas, serviços e pools de computação, são suspensos porque o aplicativo está desabilitado. Os objetos suspensos permanecem suspensos até que o aplicativo seja reativado e não haja outros motivos para a desativação do aplicativo. |
Sim |
APPLICATION_SUSPEND_RESUME_IN_PROGRESS |
Os recursos do aplicativo, por exemplo, tarefas, serviços e pools de computação, estão sendo retomados no momento. |
Sim |