Implementar automaticamente com o GitHub
Nesta página
Visão geral
Você pode configurar um Atlas App Services para ser implantado automaticamente sempre que você enviar os arquivos de configuração do aplicativoGithub para um repositório. Você pode clonar o repositório do Github em seu computador e usar os comandos Git padrão para puxar as versões mais recentes e implementar novas alterações.
Pré-requisitos
Um conta e Github repositório. O repositório deve estar vazio ou conter um diretório de configuração exportado para uma aplicação existente. Para obter informações sobre como criar um repositório vazio, consulte Github Criar um repositório do guia.
Uma cópia instalada do Git CLI. Se você não tiver
git
o instalado, consulte o guia oficial para Instalar o Git.Uma Chave de API programática do MongoDB Atlas para autenticar e autorizar o acesso ao repositório Git subjacente do seu app. Se ainda não gerou uma chave de API programática para a sua organização Atlas, faça isso agora.
Habilitar a implantação automática com GitHub
Você pode habilitar a implantação automática com o GitHub usando a UI do App Services, o App Services CLI ou o App Services Admin API.
Instalar o Aplicativo GitHub do Atlas App Services
Para distribuir automaticamente com base em um repositório GitHub, o Atlas App Services requer que você instale uma aplicação GitHub que tenha, no mínimo, acesso de leitura ao repositório.
Para instalar a aplicativo, clique em Deployment no menu de navegação esquerdo da UI do App Services. Selecione a aba Configuration e clique em Install App Services on GitHub. Uma nova janela do navegador será aberta no fluxo de instalação da aplicativo GitHub.
Observação
Autenticação do GitHub
O GitHub pode exigir que você forneça suas credenciais de conta do GitHub antes de poder instalar a aplicação.
Selecione a conta ou organização do GitHub para a qual deseja instalar o aplicativo:
Especifique um ou mais repositórios para os quais você deseja conceder acesso de leitura ao App Services. Você pode selecionar repositórios específicos ou conceder acesso a todos os seus repositórios no GitHub. Selecione os repositórios que deseja usar e clique em Install.
Depois de instalar o aplicativo, volte à aba Configuration e clique no botão Authorize para concluir a conexão do App Services ao GitHub. Isso o leva a uma tela de permissões do Github. Clique em Authorize MongoDB Atlas App Services.
Observação
Permissões do GitHub
Você pode gerenciar permissões para o aplicativo GitHub do App Services na página Aplicativos GitHub Instalados nas configurações do GitHub.
Especificar um repositório do GitHub
Depois de vincular sua conta do GitHub ao seu aplicativo, você pode especificar um repositório que o App Services deve implantar automaticamente. Especifique o Repository, Branch e Directory que contêm os arquivos de configuração do aplicativo e clique em Save.
Observação
A lista de repositórios conterá apenas os repositórios aos quais você concedeu ao App Services acesso de leitura.
Inicializar o repositório
Clone uma cópia local do repositório Git que você especificou:
git clone https://github.com/<organization>/<repo>.git
A ramificação e o diretório configurados devem conter arquivos de configuração que definam seu aplicativo. Você pode criar a configuração manualmente ou exportar o diretório do aplicativo de um aplicativo existente.
Adicione o diretório de aplicativos ao repositório e, em seguida, confirme as alterações:
git add -A git commit -m "Adds App Services Application Directory"
Depois de ter cometido a versão mais recente da aplicação ao repositório, envie-a para o repositório do GitHub:
git push origin <branch name>
Habilitar implantação automática
Depois de especificar um repositório para implantá-lo e inicializá-lo com a versão mais recente do seu aplicativo, você precisará habilitar a implantação automática para começar a implantá-lo. Na aba Configuration da página Deploy, clique em Enable Automatic Deployment. No modal que aparece, clique em Enable Automatic Deployment para confirmar sua seleção.
Faça alterações em seu aplicativo
Um sistema contém uma ou mais alterações que você fez em sua aplicação desde a implantação anterior. Faça quaisquer adições, modificações ou exclusões no repositório que você deseja incluir em seu sistema.
Consulte a página de referência da Configuração do aplicativo e as páginas de referência de componentes individuais para obter detalhes sobre a estrutura e o esquema do diretório do aplicativo.
Importante
Não faça alterações significativas no esquema por meio de implantação automatizada
Como as alterações de esquema significativas - também chamadas de destrutivas - exigem um tratamento especial, o App Services não oferece suporte à realização de alterações significativas de esquema por meio de implantação automatizada com o GitHub. Em vez disso, você deve fazer alterações significativas na interface do usuário do App Services.
Comprometer-se e promover suas alterações
Depois de atualizar a configuração do aplicativo, você pode implantar as atualizações como uma nova versão de seu aplicativo, enviando-as para o repositório do GitHub que você especificou. Se a Implantação Automática do GitHub estiver habilitada, o App Services implanta imediatamente o commit mais recente para a ramificação e o diretório configurados
Quando estiver pronto para implantar, confirme todos os arquivos que deseja incluir e envie-os por push para o GitHub:
git add -A git commit -m "<commit message>" git push origin <branch name>
Depois que você fizer push das alterações no GitHub, o App Services distribuirá imediatamente uma nova versão da sua aplicação que corresponda ao estado do cometimento mais recente. As aplicações de cliente usarão automaticamente a versão mais recente , portanto, certifique-se de atualizar também o código do cliente para usar a nova versão , se necessário.
Observação
Histórico de implantação
Você pode ver a versão atualmente implantada do seu aplicativo, bem como um registro histórico de implantações anteriores na tabela Histórico de implantações na interface do usuário do App Services.
Novidades na versão 1.1.0.
Você pode usar a CLI para configurar, habilitar ou desabilitar o sistema automático.
Execute o comando Deploy Configure
O App Services CLI pode orientá-lo no processo de configuração da implantação automática. Esse é um comando interativo.
appservices deploy configure
O comando também suporta sinalizadores adicionais que você pode incluir opcionalmente. Para obter informações sobre esses sinalizadores, consulte appservices deployment configure.
O App Services CLI ativa imediatamente a implantação automática quando você conclui este comando. Você não precisa executar o comando enable
como uma etapa adicional.
Dica
A configuração do sistema automático via CLI depende de um Github beta recurso do
A capacidade de configurar a implantação automática usando o App Services CLI depende de um recurso do Github que está atualmente em beta. Se o Github fizer alterações significativas nesse recurso, talvez você não consiga configurar a implantação automática usando o App Services CLI. Nesse caso, use a UI do App Services ou a API de administração para configurar o sistema automático.
O Github beta recurso do afeta apenas a configuração do sistema automático. Se você tiver configurado anteriormente a implantação automática para seu aplicação, poderá habilitá-la ou desabilitá-la usando a App Services CLI independentemente do status desse recurso beta do Github .
Desativar, ativar ou visualizar detalhes de configuração (opcional)
Você pode usar a App Services CLI para visualizar os detalhes de configuração após configurar o sistema automático.
appservices deploy describe
Você também pode desabilitar e habilitar a implantação automática usando o App Services CLI. Para obter mais informações sobre esses comandos e suas opções, consulte appservices deployment.
Autenticar um usuário do MongoDB Atlas
Chame o endpoint de autenticação do usuário administrador com seu par de chaves da API do MongoDB Atlas:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
Se a autenticação for bem-sucedida, o corpo da resposta conterá um objeto JSON com um valor access_token
:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
O access_token
concede acesso à App Services Admin API. Você deve incluí-lo como um token do portador no cabeçalho Authorization
para todas as solicitações de API Admin.
Obter uma configuração de sistema existente (opcional)
Você pode obter a configuração de implantação existente para seu aplicativo fazendo uma solicitação de GET
para o endpoint Get the Deployment Configuration .
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deploy/config \ -H 'Authorization: Bearer <access_token>'
Atualizar a configuração do sistema
Você pode atualizar a configuração de implantação existente para sua aplicação fazendo uma solicitação de PATCH
para o endpoint Configurar implantação .
curl -X PATCH \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deploy/config \ -H 'Authorization: Bearer <access_token>' \ -d '{ "ui_drafts_disabled": true, "automatic_deployment": { "enabled": true, "provider": "github", "installation_ids": [ "string" ] }, "last_modified": 0 }'
Fazer alterações na interface do usuário
A implantação automática do GitHub não impede que você faça alterações na sua aplicação a partir da UI do App Services. Você pode fazer alterações em sua aplicação por meio da UI e o App Services confirma automaticamente as alterações em seu repositório do GitHub vinculado.
Dica
Se o seu repositório vinculado do GitHub contiver novas confirmações que não estejam refletidos nas alterações da interface do usuário do App Services, o App Services não poderá fazer o commit automático dessas alterações no seu repositório. No entanto, você pode usar o botão Export para baixar os arquivos de configuração atualizados para o computador local e, em seguida, enviá-los manualmente para o repositório do GitHub.
Quando as alterações estiverem comprometidas com seu repositório GitHub vinculado, você verá um link do Commit: <commit-hash> no Histórico de Implementação do seu aplicativo.
Você pode clicar nesse link para visualizar a confirmação no GitHub. O bot mongodb-realm
aparece como o autor da confirmação.
Fazer alterações por meio da CLI
No passado, recomendávamos não fazer alterações em seu aplicativo com o App Services CLI depois de configurar a implantação automática. A partir do App Services CLI v1.1.0 e posterior, você poderá usar o App Services CLI com segurança para fazer alterações em seu aplicativo.
App Services CLI versão 1.1.0 e posterior
No App Services CLI v1.1.0 e posterior, um push do App Services CLI gera um commit correspondente no GitHub automaticamente. Isso mantém as alterações de código sincronizadas com sua fonte de verdade do GitHub controlada por versão.
App Services CLI versão 1.0.3 e anterior
No App Services CLI v1.0.3 e anterior, evite fazer alterações no aplicativo com o App Services CLI depois de configurar a implantação automática, pois:
Se você enviar alterações por push com o CLI enquanto o sistema GitHub estiver habilitado, o App Services distribui as alterações, mas não as confirma de volta ao repositório vinculado.
Os arquivos de configuração em seu repositório não refletem mais o atual estado do seu aplicativo.
Para obter as alterações que você enviou, um colaborador deve extrair manualmente os arquivos de configuração mais recentes diretamente do seu aplicativo. O repositório GitHub não é mais a fonte da verdade.
Se um colaborador adicionar uma nova confirmação a um repositório obsoleto, ele substituirá quaisquer alterações distribuídas, mas não confirmadas.
Resumo
Você pode implantar seu aplicativo modificando um repositório hospedado no GitHub.
Enquanto a implantação automática do GitHub estiver habilitada, o App Services imediatamente implanta a confirmação mais recente. Para implantar, confirme suas alterações localmente e, em seguida, envie-as para o seu repositório no GitHub.
Quando você faz alterações por meio da UI do App Services depois de habilitar a opção sistema automático GitHub, essas alterações são automaticamente confirmadas de volta ao seu repositório vinculado.
Para usar App Services CLI para atualizar os arquivos de configuração depois de habilitar a implantação automática do GitHub, use o App Services CLI v1.1.0 ou posterior.