Copiar um aplicativo
Nesta página
Visão geral
Você pode fazer uma cópia de um aplicativo existente reutilizando os arquivos de configuração do aplicativo e portando segredos manualmente.
Talvez você queira copiar um aplicativo se:
Você usa ramificações de recursos para desenvolvimento. Use uma cópia exclusiva da aplicação para cada ramificação de recurso para evitar conflitos.
Você executa testes em uma versão funcional do aplicativo. Você pode copiar um aplicativo para cada execução de teste para garantir um estado inicial consistente.
Você implementa o mesmo aplicativo em clusters entre regiões usando um modelo de sistema local. Você pode copiar um aplicativo para atender a várias regiões localmente.
Antes de começar
Você precisará do seguinte para copiar um aplicativo na CLI:
Uma conta do MongoDB Atlas com permissões de Proprietário do Projeto. Para saber como se inscrever em uma conta gratuita, consulte Comece a usar o Atlas.
Uma admin API do MongoDB Atlas par de chaves pública/privada. A chave da API deve ter permissões do Proprietário do projeto para trabalhar com o App Services Admin API.
Uma cópia da App Services CLI instalada e adicionada ao seu sistema local
PATH
. Para saber como, consulte Instalar App Services CLI.
Para copiar um aplicativo com base em arquivos de configuração em um repositório do Github , você deve ativar o sistema automático do Github para o aplicativo.
Procedimento
Aviso
Se o Sistema automático Github estiver ativado, não faça push de alterações em sua aplicação com o App Services CLI. Para obter mais informações, consulte Evitar fazer alterações do CLI.
Criar um novo aplicativo
Criar uma nova aplicação em branco. Escolha um nome e configure o modelo de implantação e região para ser o que você deseja que a aplicação copiada utilize. Para mais informações, consulte Criar uma aplicação.
Exemplo
# Create the new App appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2"
Migrar segredos para o novo aplicativo
Os arquivos de configuração de uma aplicação não incluem os nomes ou valores de nenhum Segredo.
Você deve ter acesso aos valores de segredo existentes do aplicativo original e adicioná-los manualmente à novo aplicativo. Se seu aplicativo não tiver segredos, você pode pular esta etapa.
Para adicionar os segredos do seu aplicativo original:
Obtenha os nomes de todos os segredos do aplicativo exportado seguindo a documentação de segredos de visualização.
Salve os nomes de todos os segredos em um local seguro. A lista não incluirá os valores reais do segredo, mas é útil ter uma lista dos nomes secretos a serem adicionados ao seu novo aplicativo.
Encontre o valor de cada um dos segredos do aplicativo original.
Adicione cada segredo individualmente à nova aplicação. Para saber como, consulte Definir um segredo.
Importante
Adicionar segredos antes de copiar arquivos de configuração
Alguns recursos do App Services exigem que você tenha um ou mais Segredos definidos antes de definir e usar o recurso. Por exemplo, os provedores de autenticação OAuth exigem um segredo que contenha um valor clientSecret
.
Se você enviar arquivos de configuração que fazem referência a segredos indefinidos, a implantação falhará.
Copie seus arquivos de configuração
Extraia a versão mais recente dos arquivos de configuração do seu aplicativo original para o seu sistema de arquivos local. Para saber como, consulte Exportar um aplicativo.
Exemplo
# Pull the config files for an existing App appservices pull --remote="myapp-abcde"
Copie todos os arquivos de configuração da sua aplicação original, exceto root_config.json
, para o novo diretório de configuração da aplicação. Você usar o root_config.json
da nova aplicação e substituir quaisquer outros arquivos de configuração.
Exemplo
# Copy all configuration files except for root_config.json cp -r myapp myapp-temp rm myapp-temp/root_config.json cp -r myapp-temp/* myapp-copy rm -rf myapp-temp
Enviar por push os arquivos de configuração copiados
Envie os arquivos de configuração que você copiou do seu aplicativo original. O novo aplicativo será atualizado e implantado automaticamente com os arquivos de configuração copiados.
Exemplo
# Navigate back to the new App cd myapp-copy # Push the copied configuration files to App Services appservices push
Criar um Novo Diretório de Configuração
Crie um novo diretório para armazenar os arquivos de configuração da aplicação copiada. Você pode criar um novo repositório para o aplicativo copiado ou manter as configurações dos dois aplicativos no mesmo repositório usando ramificações ou subdiretórios.
Exemplo
# Create a new directory for the copied App mkdir myapp-copy
Criar um novo aplicativo
Criar uma nova aplicação em branco. Escolha o mesmo nome do aplicativo original e defina o modelo e a região de sistema como o que você deseja que o aplicativo copiado use. Para mais informações, consulte Criar uma aplicação.
Depois de criados, salve os arquivos de configuração da nova aplicação no diretório criado na etapa anterior, caso ainda não sejam.
Exemplo
# Navigate to the new App's directory cd myapp-copy # Create the new App. The create command saves the new # App's configuration file directory in the current directory appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2" cp -r myapp-copy/* . rm -rf myapp-copy # Navigate back to the root of the repo cd ..
Configurar o sistema automático do Github
Na nova aplicação, configure e ative o Sistema automático Github. Certifique-se de ponto para o repositório, a ramificação e o diretório que você criou para o novo aplicativo, não para o aplicativo original.
Migrar segredos para o novo aplicativo
Os arquivos de configuração de uma aplicação não incluem os nomes ou valores de nenhum Segredo.
Você deve ter acesso aos valores de segredo existentes do aplicativo original e adicioná-los manualmente à novo aplicativo. Se seu aplicativo não tiver segredos, você pode pular esta etapa.
Para adicionar os segredos do seu aplicativo original:
Obtenha os nomes de todos os segredos do aplicativo exportado seguindo a documentação de segredos de visualização.
Salve os nomes de todos os segredos em um local seguro. A lista não incluirá os valores reais do segredo, mas é útil ter uma lista dos nomes secretos a serem adicionados ao seu novo aplicativo.
Encontre o valor de cada um dos segredos do aplicativo original.
Adicione cada segredo individualmente à nova aplicação. Para saber como, consulte Definir um segredo.
Importante
Adicionar segredos antes de copiar arquivos de configuração
Alguns recursos do App Services exigem que você tenha um ou mais Segredos definidos antes de definir e usar o recurso. Por exemplo, os provedores de autenticação OAuth exigem um segredo que contenha um valor clientSecret
.
Se você enviar arquivos de configuração que fazem referência a segredos indefinidos, a implantação falhará.
Copie seus arquivos de configuração
Copie todos os arquivos de configuração da sua aplicação original, exceto root_config.json
, para o novo diretório de configuração da aplicação. Você usar o root_config.json
da nova aplicação e substituir quaisquer outros arquivos de configuração.
Exemplo
# Copy all configuration files except for root_config.json cp -r myapp myapp-temp rm myapp-temp/root_config.json cp -r myapp-temp/* myapp-copy rm -rf myapp-temp
Enviar Novo Aplicativo para o Github
Confirme os arquivos de configuração do aplicação copiados e envie-os por push para o Github. O novo aplicativo será atualizado e implantado automaticamente com os arquivos de configuração copiados.
Exemplo
# Navigate back to the new App cd myapp-copy # Push the copied configuration files to GitHub git add -A git commit -m "Copy configuration from myapp" git push origin main