Persistir dados usando variáveis de projeto, cache em nuvem ou armazenamento temporário no Jitterbit Integration Studio
Introdução
Vários métodos podem ser usados para armazenar dados na nuvem Harmony, como usar variáveis de projeto, usar funções de cache na nuvem ou usar armazenamento temporário.
Variáveis do projeto
Variáveis de projeto são variáveis estáticas pré-inicializadas que podem ser consideradas constantes de projeto. Elas podem ser editadas de qualquer Integration Studio(veja Variáveis do projeto) ou o Management Console (consulte Projetos).
Um exemplo de uso de variáveis de projeto é para credenciais de endpoint. Ao usar variáveis de projeto, diferentes ambientes de endpoint (que geralmente têm credenciais diferentes) podem ser aplicados a diferentes ambientes Harmony . e editado por meio do Management Console. Isso permite um processo de negócios em que um usuário com direitos do Management Console pode alterar credenciais sem precisar de acesso a Integration Studio e o designer do projeto.
Um segundo exemplo é usar variáveis de projeto para manter sinalizadores usados pela lógica de integração que podem personalizar o comportamento da integração. Se um único projeto for desenvolvido, mas usado para diferentes endpoints, uma variável de projeto booleana (como Send_PO_Number) poderá ser verificada pela lógica da transformação para o campo PO Number. Se o valor da variável do projeto for false
, então o UnMap
poderia ser usada para "desligar" esse campo e não incluí-lo em uma transformação relevante.
Funções de cache em nuvem
As funções de cache em nuvem ReadCache
e WriteCache
são usados para atribuir espaços de dados que estão disponíveis em projetos e ambientes. Um valor armazenado em cache é visível para todas as operações em execução no mesmo escopo até que ele expire, independentemente de como essa operação foi iniciada ou em qual agente ela é executada. Ao armazenar dados em cache no Harmony, em vez de depender de armazenamentos de dados locais ou específicos do agente, como Armazenamento Temporário, os dados podem ser compartilhados entre operações separadas e entre projetos.
Estes são usos adicionais do cache em nuvem:
- Os dados podem ser compartilhados entre operações assíncronas dentro de um projeto.
- Erros que são gerados em diferentes operações podem ser armazenados em um cache comum. Ao acumular resultados de operação dessa maneira, alertas mais abrangentes podem ser criados.
- Os tokens de login podem ser compartilhados entre operações.
Armazenamento temporário
Armazenamento Temporário endpoints são frequentemente usados em operações em agentes privados e de nuvem. Eles são distintos do Armazenamento Local endpoints, que só podem ser usados em agentes privados.
Ao usar um endpoint de armazenamento temporário, os arquivos temporários são gravados e lidos no diretório temporário do sistema operacional padrão no agente que está executando o trabalho:
- No caso de um único agente privado, o diretório de armazenamento temporário é o diretório temporário padrão do servidor do agente privado.
- Se você estiver usando mais de um agente privado, agrupado em um grupo de agentes privados, o diretório de armazenamento temporário será o diretório temporário padrão do servidor de agente privado específico que está fazendo o trabalho.
- Como os agentes de nuvem são agrupados em um grupo de agentes de nuvem, o diretório de armazenamento temporário é o diretório temporário padrão do servidor do agente de nuvem específico que está fazendo o trabalho.
Em um grupo de agentes em cluster (agentes privados ou de nuvem), desde que as operações que usam o armazenamento temporário sejam vinculadas (encadeadas), todas as leituras e gravações de armazenamento temporário acontecerão no mesmo servidor de agente. No entanto, se Chain A gravar em seu armazenamento temporário myfile
e a Cadeia B lê de seu armazenamento temporário myfile
, e as duas cadeias não estão encadeadas uma à outra, a ação de leitura de armazenamento temporário na Cadeia B pode não ser lida do mesmo agente que foi gravado pela Cadeia A.
Ao usar armazenamento temporário, tenha estas diretrizes em mente:
-
Ao usar agentes privados, para tornar seu projeto à prova de atualização, use armazenamento temporário de forma que mover de um único agente privado para um grupo de agentes com vários agentes não exija refatoração.
-
Ao usar um grupo de agentes em cluster (agentes privados ou em nuvem), para garantir que o servidor do agente onde o armazenamento temporário é gravado seja o mesmo servidor onde o armazenamento temporário será lido, certifique-se de que todas as referências às atividades de Leitura e Gravação do armazenamento temporário estejam na mesma cadeia de operação.
-
O armazenamento temporário em agentes privados é excluído após 24 horas por padrão pelo [serviço de limpeza de arquivos Jitterbit]/agent/cleanuprules/). A frequência do serviço de limpeza pode ser configurada por meio do arquivo de configuração do agente privado sob o
[FileCleanup]
seção. No entanto, em agentes de nuvem, arquivos temporários podem ser excluídos imediatamente. -
Os agentes de nuvem têm um limite de tamanho de arquivo de armazenamento temporário de 50 GB por arquivo. Arquivos temporários maiores que 50 GB são possíveis somente ao usar agentes privados.
-
Ao gravar no armazenamento temporário, o padrão é sobrescrever arquivos. Isso pode ser alterado com a caixa de seleção Anexar ao arquivo em uma Atividade de gravação de armazenamento temporário. Normalmente, isso requer que, após a leitura da fonte, o arquivo seja excluído ou arquivado. Uma maneira simples de fazer isso é usar as opções de pós-processamento Excluir arquivo ou Renomear arquivo em uma atividade de leitura de armazenamento temporário.
-
Palavras-chave do nome do arquivo estão disponíveis e podem ser usados ao criar um nome de arquivo.
-
Um arquivo em armazenamento temporário pode ser lido construindo um script com o
ReadFile
função. Por exemplo:ReadFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_read/Read</TAG>")
. Tenha em mente que isso funciona de forma confiável somente se houver um único agente privado.
Em alguns casos, pode ser vantajoso usar uma Variável endpoint em vez de um endpoint de Armazenamento Temporário. Veja a seção Variável versus Armazenamento Temporário em Variável global versus armazenamento temporário para uma comparação dessas duas abordagens diferentes e para recomendações sobre quando cada uma é apropriada.