> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/multi-instance.md).

# Multi-instância

Saiba como fazer o deploy do mesmo pipeline várias vezes na Digibee Integration Platform, com parâmetros e contas diferentes para cada instância.

## **Visão geral**

### **O que é um pipeline multi-instância**

Um pipeline multi-instância é um pipeline que você cria uma vez e implanta várias vezes, com parâmetros diferentes em cada deploy. Cada deploy é uma instância. Todas as instâncias compartilham o mesmo fluxo de integração, mas cada uma é executada com seus próprios valores, como uma conta, uma loja ou um intervalo de datas diferente.

### **Por que usar pipelines multi-instância**

Sem pipelines multi-instância, executar a mesma lógica em destinos diferentes exige manter uma cópia do pipeline para cada destino. Com o multi-instância, você mantém um único pipeline e qualquer alteração no fluxo vale para todas as instâncias.

### **Como funciona**

Uma configuração multi-instância tem quatro partes:

* **Modelo multi-instância:** Define os campos (variáveis) que cada instância precisa preencher.
* **Instância:** Atribui valores próprios aos campos do modelo em cada ambiente.
* **Pipeline multi-instância:** Referencia os campos do modelo em triggers e campos de conta, usando o padrão `{{replica.field-name}}`.
* **Deploy:** Executa o pipeline com os valores de uma instância, por isso você faz um deploy do pipeline para cada instância.

### **Casos de uso**

#### **Extração de dados acelerada**

Você pode usar pipelines multi-instância para extrair grandes volumes de dados de um banco de dados com rapidez e segurança. Divida a extração em instâncias que cobrem, cada uma, um intervalo de datas específico, todas usando a mesma lógica de extração:

| Instância | Intervalo          |
| --------- | ------------------ |
| Período 1 | 1 a 8 de outubro   |
| Período 2 | 8 a 16 de outubro  |
| Período 3 | 16 a 24 de outubro |
| Período 4 | 24 a 31 de outubro |

A instância Período 1 extrai todos os dados entre 1 e 8 de outubro, em quantas execuções forem necessárias. As outras instâncias aplicam a mesma lógica aos seus próprios intervalos. Seria possível fazer essa extração com um único pipeline, mas, com várias instâncias, ela pode ser até quatro vezes mais rápida.

#### **Mesma consulta em ambientes diferentes**

Você também pode usar um pipeline multi-instância para executar uma consulta idêntica em bancos de dados instalados em ambientes diferentes.

## **Passo a passo**

### **Passo 1: Crie o modelo multi-instância**

1. Acesse **Configurações**, abra a página **Multi-Instância** e clique em **Criar**.
2. Preencha as informações do modelo:
   * **Nome:** Nome do modelo multi-instância.
   * **Descrição:** Descrição do modelo multi-instância.
   * **Campo:** As variáveis que recebem um valor em cada instância. Você usa esses nomes depois no pipeline.
3. Clique em **Confirmar**.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2F0SZHSb9SuwhVwID4795j%2F1.criar-multi-instancia.png?alt=media&amp;token=b3b8f576-ef9c-43aa-bf07-b861f83dce47" alt=""><figcaption></figcaption></figure>

Depois de criar um modelo, você pode:

* **Editar:** Alterar o nome, a descrição e os campos.
* **Configurar:** Criar instâncias e definir os valores delas.
* **Excluir:** Remover um modelo que não é mais usado por nenhum pipeline, esteja ele implantado, não implantado ou arquivado.

### **Passo 2: Configure as instâncias**

1. Encontre o modelo que você criou e clique em **Configurar**.
2. Crie as instâncias uma a uma e defina um valor para cada campo em cada aba de ambiente (por exemplo, test e prod).
3. Clique em **Salvar**.

No exemplo a seguir, "instance1" e "instance2" representam duas lojas. Cada uma tem seus próprios valores para test e prod.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2FRn3ioPL1JcF38b7o8zcz%2F2.configurar-instancias.gif?alt=media&amp;token=86f49a12-94d8-476b-8768-ffd94bb88630" alt=""><figcaption></figcaption></figure>

### **Passo 3: Defina o pipeline como multi-instância**

Você pode converter qualquer pipeline em multi-instância, esteja ele implantado ou não.

{% hint style="danger" %}
Depois que você define um pipeline como multi-instância, não é possível desativar essa configuração.
{% endhint %}

1. No pipeline, clique em **Configurações** e ative **É multi-instância?**.
2. Selecione o modelo multi-instância que o pipeline usa.

### **Passo 4: Use variáveis de instância no pipeline**

Para que o pipeline use valores diferentes em cada instância, adicione variáveis de instância a ele. Uma variável de instância segue o padrão `{{replica.field-name}}`, em que `field-name` é o nome de um campo criado no Passo 1. Por exemplo, um campo chamado `account-name` vira `{{replica.account-name}}`.

Quando você faz o deploy do pipeline, a plataforma substitui cada variável pelo valor definido para aquela instância.

#### **Use variáveis de instância no trigger**

Você pode usar variáveis de instância na configuração do trigger com o padrão `{{replica.field-name}}`. Por exemplo, se o pipeline usa um [Event Trigger](/documentation/connectors-and-triggers/triggers/messaging-and-events/event.md), adicione uma variável de instância ao nome do evento:

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2Flx6NPVIDud5eh1h5kMhD%2F4.trigger-event.png?alt=media&amp;token=1a4c9440-6b71-4f14-b46e-f03ecfe5859c" alt=""><figcaption></figcaption></figure>

#### **Use uma conta diferente para cada instância**

Cada instância pode usar sua própria conta. Para isso, substitua a conta selecionada por uma variável de instância na configuração do conector. Isso funciona em conectores e cápsulas, inclusive em conectores com mais de um campo de conta, como **Custom Account #1** e **Custom Account #2**.

1. Abra a configuração do conector e encontre o campo **Conta**.
2. Clique no botão de chaves (`{ }`) ao lado do nome do campo. O campo deixa de exibir a lista de contas e passa a exibir um editor.
3. Insira a variável de instância, por exemplo `{{replica.account-name}}`. O autocomplete sugere os escopos `replica` e `global`, mas não os nomes dos campos do modelo, então digite o nome do campo exatamente como ele aparece no modelo.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2FGsGt7HF6jQldUfXTVVRK%2FMulti-Instance%20Accounts.gif?alt=media&amp;token=6a29c4c5-b262-4624-8ca5-2eda96c9b7ec" alt=""><figcaption></figcaption></figure>

Para voltar à lista de contas, clique novamente no botão de chaves. Ao voltar, o campo é limpo e a expressão digitada é perdida.

O botão de chaves aparece em todos os pipelines multi-instância. Nos demais pipelines, ele só aparece quando o campo de conta já contém uma variável de instância, para que você possa voltar à lista de contas.

Você define o valor da variável para cada instância na página **Multi-Instância**, em **Configurações**. Abra a instância e acesse a aba do ambiente correspondente, como mostrado no Passo 2.

#### **Teste o pipeline com uma instância**

No Painel de Execução, selecione a instância na aba **Payload**. A execução usa os valores configurados para essa instância nas variáveis `{{replica.field-name}}`.

### **Passo 5: Faça o deploy do pipeline em cada instância**

1. Acesse **Run**, selecione o ambiente no canto superior esquerdo e clique em **Criar novo**.
2. Selecione o pipeline e a versão.
3. Selecione a instância em que você quer fazer o deploy do pipeline.
4. Configure as demais opções de deploy, como tamanho, execuções simultâneas e réplicas. Para saber mais sobre essas configurações, leia [Como fazer o deploy ou redeploy de um pipeline](/documentation/developer-guide/pt-br/development-cycle/overview/deployment/deployments.md).
5. Clique em **Implantar**.

Repita esses passos para cada instância.

Depois do deploy, o nome da instância é adicionado ao nome do pipeline. Por exemplo, "multi-instance-pipeline" implantado em "instance1" aparece como "multi-instance-pipeline-instance1".


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/multi-instance.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
