Ambientes de desenvolvimento rápido rapid-development-environments
Para implantar alterações, os ambientes de desenvolvimento de nuvem atuais exigem o uso de um processo que emprega regras abrangentes de segurança e qualidade de código chamadas de pipeline de CI/CD. Para situações em que são necessárias alterações rápidas e iterativas, a Adobe introduziu os RDEs (Rapid Development Environments, ambientes de desenvolvimento rápido).
Os RDEs permitem que os desenvolvedores implantem e revisem alterações rapidamente, minimizando o tempo necessário para testar recursos que comprovadamente funcionam em um ambiente de desenvolvimento local.
Depois que as alterações forem testadas em um RDE, elas poderão ser implantadas em um ambiente de desenvolvimento de nuvem regular por meio do pipeline do Cloud Manager.
Você pode ver vídeos adicionais demonstrando como configurá-lo, como usá-lo e o ciclo de vida de desenvolvimento usando RDE.
Introdução introduction
Os RDEs podem ser usados para configurações de código, conteúdo e Apache ou Dispatcher. Diferentemente dos ambientes de desenvolvimento de nuvem comuns, os desenvolvedores podem usar ferramentas de linha de comando locais para sincronizar o código criado localmente em um RDE.
Cada programa é provisionado com um RDE. Se houver contas de sandbox, elas hibernarão após algumas horas de inatividade.
Após a criação, os RDEs são definidos para a versão mais recente do Adobe Experience Manager (AEM). Uma redefinição de RDE, que pode ser executada usando o Cloud Manager, transforma o RDE e o define para a versão mais recente do AEM disponível.
Normalmente, um RDE é usado por um único desenvolvedor em um determinado momento, para testar e depurar um recurso específico. Quando a sessão de desenvolvimento for concluída, o RDE poderá ser redefinido para um estado padrão para o próximo uso.
RDEs adicionais podem ser licenciados para programas de produção (não sandbox).
Ativar o RDE em um programa enabling-rde-in-a-program
-
Faça logon no Cloud Manager, em my.cloudmanager.adobe.com, e selecione a organização apropriada.
-
Clique no programa ao qual deseja adicionar um RDE para mostrar seus detalhes.
- Os RDEs podem ser adicionados a programas de sandbox e programas de produção.
-
Na página Visão geral do programa, no cartão Ambientes, clique em Adicionar ambiente.
-
A opção Adicionar ambiente também está disponível na guia Ambientes.
-
A opção Adicionar ambiente pode estar desativada devido à falta de permissões ou dependendo dos recursos licenciados.
-
-
Na caixa de diálogo Adicionar ambiente, faça o seguinte:
- Selecione Desenvolvimento rápido no cabeçalho Selecionar tipo de ambiente.
- O número de ambientes disponíveis/usados é exibido entre parênteses atrás do tipo de ambiente.
- Forneça um Nome para o ambiente.
- Forneça uma Descrição opcional para o ambiente.
- Selecione a Região da nuvem.
- Selecione Desenvolvimento rápido no cabeçalho Selecionar tipo de ambiente.
-
Clique em Salvar para adicionar o ambiente especificado.
A tela Visão geral agora exibe seu novo ambiente no cartão Ambientes.
Após a criação, os RDEs são definidos com a versão mais recente disponível do AEM. Uma redefinição de RDE, que também pode ser executada usando o Cloud Manager, transforma o RDE e o define para a versão mais recente do AEM disponível.
Para obter mais informações sobre como usar o Cloud Manager para criar ambientes, gerenciar quem tem acesso a eles e atribuir domínios personalizados, consulte Programas e Tipos de Programas na documentação do Cloud Manager.
Instalar as ferramentas de linha de comando do RDE installing-the-rde-command-line-tools
Depois de ter adicionado um RDE para seu programa usando o Cloud Manager, você pode interagir com ele configurando as ferramentas de linha de comando conforme descrito nas seguintes etapas:
-
Instale as ferramentas AIO CLI de acordo com este procedimento.
-
Instale o plug-in RDE do AEM de ferramentas da CLI AIO:
code language-none aio plugins:install @adobe/aio-cli-plugin-aem-rde aio plugins:update
-
Faça logon usando o cliente Adobe I/O (AIO).
code language-none aio login
As informações de logon (token) são armazenadas na configuração global do aio e, portanto, são compatíveis apenas com um logon e uma organização. Caso deseje usar vários RDEs que precisem de logons ou organizações diferentes, siga o exemplo abaixo introduzindo contextos.
accordion Siga este exemplo para configurar um contexto local para um de seus logons do RDE Agora, crie um contexto chamado m
ycontext
que você definiu como o contexto padrão usando o plug-in auth antes de chamar o comando login.code language-none aio config set --json -l "ims.contexts.mycontext" "{ cli.bare-output: false }" aio auth ctx -s mycontext aio login --no-open
note note NOTE O comando de logon com a opção --no-open
gera uma URL no terminal em vez de abrir o navegador padrão. Você pode copiá-la e abri-la com uma janela incógnita do seu navegador. Essa capacidade garante que a sessão atual na janela principal do navegador não seja afetada, permitindo que você faça logon com a conta e a organização específicas necessárias para a tarefa.O primeiro comando cria uma nova configuração de contexto de logon, chamada
mycontext
, no arquivo de configuração.aio
local (o arquivo é criado, se necessário). O segundo comando define o contextomycontext
como o contexto "atual"; ou seja, o padrão.Com essa configuração em vigor, o comando de logon armazena automaticamente os tokens de logon no contexto
mycontext
e, portanto, os mantém locais.Vários contextos podem ser gerenciados ao manter as configurações locais em várias pastas. Como alternativa, também é possível definir vários contextos em um único arquivo de configuração e alternar entre eles alterando o contexto "atual".
-
Configure o plug-in RDE para usar sua organização, programa e ambiente. O comando de configuração abaixo fornece interativamente ao usuário uma lista de programas em sua organização e mostra os ambientes RDE nesse programa para escolher.
code language-none aio aem:rde:setup
Você pode pular a etapa de configuração se estiver usando um ambiente com script. Nesse caso, inclua os valores de organização, programa e ambiente diretamente em cada comando. Consulte os comandos RDE abaixo para obter mais informações.
Configuração interativa installing-the-rde-command-line-tools-interactive
O comando setup pergunta se a configuração fornecida deve ser armazenada local ou globalmente.
Setup the CLI configuration necessary to use the RDE commands.
? Do you want to store the information you enter in this setup procedure locally? (y/N)
Escolha no
para
- armazene a organização, o programa e o ambiente globalmente na configuração do aio.
- trabalhar apenas com um único RDE.
Escolha yes
para fazer o seguinte:
- Armazene a organização, o programa e o ambiente localmente no diretório atual, em um arquivo
.aio
. Essa abordagem é conveniente se você quiser confirmar o arquivo no controle de versão para que outras pessoas que clonarem o repositório Git possam usá-lo. - Ser capaz de trabalhar com muitos RDEs, de modo que a alternância para outro diretório use essa configuração.
- Use a configuração em um contexto programático como um script, que pode fazer referência a ela.
Depois que a configuração local ou global for selecionada, o comando de configuração tentará ler a ID da organização no logon atual e, em seguida, ler os programas da organização. Caso a organização não possa ser encontrada, você poderá inseri-la manualmente junto com algumas orientações.
Selected only organization: XYXYXYXYXYXYXYXXYY
retrieving programs of your organization ...
Depois que os programas forem recuperados, o usuário poderá selecionar na lista e também digitar para filtrar. Quando o programa é selecionado, uma lista de ambientes RDE é listada para escolher. Se houver apenas um programa, ou apenas um ambiente RDE disponível, ou ambos, ele será selecionado automaticamente.
Para ver o contexto do ambiente atual, execute o seguinte:
aio aem rde setup --show
O comando responde com um resultado semelhante ao seguinte:
Current configuration: cm-p1-e1: programName - environmentName (organization: ...@AdobeOrg)
Procedimento de configuração manual em um ambiente não interativo manual-setup
Em ambientes em que nenhum usuário pode executar interativamente o comando de configuração (como CI/CD ou scripts), a configuração manual é necessária. Você pode definir os parâmetros de organização, programa e ambiente usando as etapas abaixo.
-
Configure a ID da organização e substitua a sequência alfanumérica pela ID da própria organização.
aio config:set cloudmanager_orgid 4E03EQC05D34GL1A0B49421C@AdobeOrg
- Sua própria ID da organização pode ser pesquisada usando o método documentado em Exibir ID da organização.
-
Em seguida, configure a ID do programa:
aio config:set cloudmanager_programid 12345
-
Em seguida, configure a ID de ambiente à qual o RDE será anexado:
aio config:set cloudmanager_environmentid 123456
-
Depois de concluir a configuração do plug-in, faça logon executando
aio login
Essas etapas exigem que você seja membro do Perfil de Produto Cloud Manager Developer - Cloud Service. Consulte Atribuir membros da equipe a perfis de produto do Cloud Manager - Atribuir o perfil de produto do desenvolvedor para obter mais detalhes.
Para obter mais informações e demonstração, assista ao tutorial em vídeo como configurar um RDE (06:24).
Usar o RDE ao desenvolver um novo recurso using-rde-while-developing-a-new-feature
A Adobe recomenda o seguinte fluxo de trabalho para desenvolver um novo recurso:
-
Quando uma etapa intermediária for atingida e validada localmente com êxito com o AEM as a Cloud Service SDK, confirme o código em uma ramificação de recurso do Git. A ramificação ainda não deve fazer parte da linha principal, embora a confirmação no Git seja opcional. O que constitui um "marco intermediário" varia com base nos hábitos da equipe. Os exemplos incluem algumas novas linhas de código, meio dia de trabalho ou a conclusão de um sub-recurso.
-
Redefina o RDE se ele tiver sido usado por outro recurso e você quiser redefini-lo para um estado padrão. A redefinição leva alguns minutos e todo o conteúdo e código existentes é excluído. Você pode usar o comando RDE status para confirmar se o RDE está pronto. O RDE volta com a versão mais recente do AEM.
note important IMPORTANT Se seus ambientes de preparo e produção não estiverem recebendo atualizações automáticas de lançamento do AEM e estiverem atrás da versão mais recente, o RDE poderá executar uma versão diferente do AEM. Como resultado, o comportamento do código no RDE pode não corresponder ao funcionamento no preparo e na produção. Nesse caso, é importante executar testes completos do código no preparo antes de implantá-lo na produção. -
Usando a interface de linha de comando do RDE, sincronize o código local com o RDE. É possível instalar vários tipos de arquivos, incluindo os seguintes:
- Pacotes de conteúdo
- Pacotes específicos
- Arquivos de configuração do OSGi
- Arquivos de conteúdo
- Arquivos ZIP contendo configurações do Apache/Dispatcher
Também é possível fazer referência a um pacote de conteúdo remoto. Consulte Ferramentas de Linha de Comando RDE para obter mais informações. Você pode usar o comando status para validar se a implantação foi bem-sucedida. Opcionalmente, use o Gerenciador de pacotes para instalar pacotes de conteúdo.
-
Teste o código no RDE. Os URLs do Author e do Publish estão disponíveis no Cloud Manager.
-
Se o código não se comportar conforme esperado, use técnicas de depuração padrão para entender o problema e fazer as alterações apropriadas. Sem confirmar as modificações de código no Git (já que não foram validadas), use a CLI local para sincronizar o código ao RDE. Continue iterando até que o problema seja resolvido.
-
Depois que o código se comportar conforme esperado, confirme-o na ramificação do recurso Git.
-
O código sincronizado com o RDE não usa um pipeline do Cloud Manager, portanto, agora você deve usar um pipeline de não produção do Cloud Manager para implantar a ramificação do recurso Git no ambiente de desenvolvimento da nuvem. Esse processo valida se o código passa pelos quality gates (portais de qualidade) do Cloud Manager e permite que você tenha certeza de que ele será implantado posteriormente com êxito usando o pipeline de produção do Cloud Manager.
-
Repita as etapas acima para cada marco intermediário até que todo o código do recurso esteja pronto e seja executado bem no RDE e no ambiente de desenvolvimento da nuvem.
-
Implante o código para produção por meio do pipeline de produção do Cloud Manager.
Usar RDE para depurar um recurso existente use-rde-to-debug-an-existing-feature
O fluxo de trabalho é semelhante ao desenvolvimento de um novo recurso. A diferença é que o código sincronizado com o RDE reflete o rótulo do Git do que foi enviado para o ambiente em que o problema ocorreu. Esse fluxo de trabalho ajuda a garantir a consistência ao investigar ou reproduzir o problema. Além disso, pode ser útil implantar o conteúdo correspondente ao ambiente de upstream. Essa abordagem pode ser alcançada por meio da exportação e importação de pacotes de conteúdo.
Vários desenvolvedores colaborando no mesmo RDE multiple-developers-collaborating-on-the-same-rde
Um RDE suporta um único projeto por vez. Como o código é sincronizado de um ambiente de desenvolvimento local para o ambiente RDE, é mais natural que um desenvolvedor o use sozinho em um determinado momento.
No entanto, com uma coordenação cuidadosa, é possível que mais de um desenvolvedor valide um recurso específico ou depure um problema específico. A chave é que cada desenvolvedor mantém seus projetos locais sincronizados para que as alterações de código feitas por um determinado desenvolvedor sejam absorvidas pelos outros desenvolvedores. Caso contrário, um desenvolvedor pode, inadvertidamente, substituir o código do outro. A estratégia recomendada é que cada desenvolvedor confirme suas alterações em uma ramificação Git compartilhada antes de sincronizar com o RDE, para que os outros desenvolvedores extraiam as alterações antes de fazer suas próprias alterações.
Comandos das ferramentas de linha de comando do RDE rde-cli-commands
Ajuda/Informações gerais help
-
Para obter uma lista de comandos, digite:
aio aem:rde
-
Para obter ajuda detalhada sobre um comando, digite:
aio aem rde <command> --help
Sinalizadores globais global-flags
-
Para uma saída menos detalhada, use o sinalizador silencioso:
aio aem rde <command> --quiet
Esse sinalizador remove determinados elementos, como giradores e barras de progresso, e limita a necessidade de entrada do usuário.
-
Para JSON em vez da saída de log do console, use o sinalizador json:
aio aem rde <command> --json
Esse sinalizador retorna um JSON válido ao suprimir qualquer saída de console. Consulte exemplos de JSON mais abaixo.
-
Para evitar a configuração das informações de conexão do RDE usando o comando de configuração ou qualquer criação de configuração de aio, use os três sinalizadores para organização, programa e ambiente:
aio aem rde <command> --organizationId=<value> --programId=<value> --environmentId=<value>
Requer que um
aio login
seja executado.
Implantar no RDE deploying-to-rde
Esta seção explica como usar a CLI do RDE para implantar, instalar ou atualizar vários recursos. Esses recursos incluem o seguinte:
- Pacotes de conteúdo
- Configurações do OSGi
- Pacotes
- Arquivos de conteúdo
- Configurações do Apache ou Dispatcher
O padrão de uso geral é aio aem:rde:install <artifact>
.
Você pode encontrar alguns exemplos abaixo:
Implantar um pacote de conteúdo deploy-content-package
aio aem:rde:install sample.demo.ui.apps.all-1.0.0-SNAPSHOT.zip
A resposta para uma implantação bem-sucedida se assemelha ao seguinte:
...
#1: deploy completed for content-package sample.demo.ui.apps.all-1.0.0-SNAPSHOT.zip on author,publish - done by 9E072FC75D54FE1A2B49431C@AdobeID at 2022-09-13T11:32:06.229Z
Como opção, você pode fazer referência a um repositório remoto:
aio aem:rde:install -t content-package "https://repo1.maven.org/maven2/com/adobe/aem/guides/aem-guides-wknd.all/2.1.0/aem-guides-wknd.all-2.1.0.zip"
Por padrão, os artefatos são implantados nos níveis de criação e publicação, mas o sinalizador -s
pode ser usado para direcionar uma camada específica.
Qualquer pacote do AEM pode ser implantado, como pacotes com código, conteúdo ou um pacote de contêiner (também chamado de pacote "all").
Implantar uma configuração OSGI deploy-OSGI-config
aio aem:rde:install com.adobe.granite.demo.MyServlet.cfg.json
Onde a resposta para uma implantação bem-sucedida se assemelha ao seguinte:
...
#2: deploy completed for osgi-config com.adobe.granite.demo.MyServlet.cfg.json on author,publish - done by 9E0725C05D54FE1A0B49431C@AdobeID at 2022-09-13T11:54:36.390Z
Implantar um pacote deploy-bundle
Para implantar um pacote, use:
aio aem:rde:install ~/.m2/repository/org/apache/felix/org.apache.felix.gogo.jline/1.1.8/org.apache.felix.gogo.jline-1.1.8.jar
Onde a resposta para uma implantação bem-sucedida se assemelha ao seguinte:
...
#3: deploy staged for osgi-bundle org.apache.felix.gogo.jline-1.1.8.jar on author,publish - done by 9E0725C05D53BE1A0B49431C@AdobeID at 2022-09-14T07:54:28.882Z
Implantar um arquivo de conteúdo deploy-content-file
Para implantar um arquivo de conteúdo, use:
aio aem:rde:install world.txt -p /apps/hello.txt
Onde a resposta para uma implantação bem-sucedida se assemelha ao seguinte:
..
#4: deploy completed for content-file world.txt on author,publish - done by 9E0729C05C54FE1A0B49431C@AdobeID at 2022-09-14T07:49:30.644Z
Implantar uma configuração do Apache/Dispatcher deploy-apache-config
A estrutura de pastas inteira deve estar no formato de um arquivo zip para esse tipo de configuração.
No módulo dispatcher
de um projeto do AEM, você pode compactar a configuração do Dispatcher executando o comando maven abaixo:
mvn clean package
Ou usando o comando zip abaixo do diretório src
do módulo dispatcher
:
zip -y -r dispatcher.zip .
Em seguida, implante a configuração com este comando:
aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-X.X.X-SNAPSHOT.zip
X.X.X
pelo número de versão do projeto WKND correspondente ou pelo número de versão específico do seu projeto ao implantar a configuração do Dispatcher do seu projeto.Uma implantação bem-sucedida gera uma resposta que se assemelha ao seguinte:
..
#5 deploy completed for dispatcher-config dispatcher.zip on author,publish - done by 9E0735C05T54FE1A0B49431C@AdobeID at 2022-10-03T10:26:31.286Z
Logs:
Cloud manager validator 2.0.49
2022/10/03 10:26:37 No issues found
Syntax OK
O código implantado no RDE não é submetido a um pipeline de Cloud Manager e seus quality gates (portais de qualidade) associados. No entanto, o código passa por alguma análise, que relata os erros, conforme ilustrado na amostra de código abaixo:
$ aio aem:rde:install ~/.m2/repository/org/apache/felix/org.apache.felix.gogo.jline/1.1.8/org.apache.felix.gogo.jline-1.1.8.jar
...
#19: deploy staged for osgi-bundle org.apache.felix.gogo.jline-1.1.8.jar on author,publish - done by 9E0725C05D74FR1A0B49431C@AdobeID at 2022-09-14T07:54:28.882Z
Logs:
The analyser found the following errors for author :
[requirements-capabilities] com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8: Artifact com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8 requires [org.apache.felix.gogo.jline/1.1.8] org.apache.felix.gogo; filter:="(&(org.apache.felix.gogo=command.implementation)(version>=1.0.0)(!(version>=2.0.0)))"; effective:=active in start level 20 but no artifact is providing a matching capability in this start level.
[api-regions-exportsimports] com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8: Bundle org.apache.felix.gogo.jline:1.1.8 is importing package(s) [org.jline.builtins, org.jline.utils, org.apache.felix.service.command, org.apache.felix.service.threadio, org.jline.terminal, org.jline.reader, org.apache.felix.gogo.runtime, org.jline.reader.impl] in start level 20 but no bundle is exporting these for that start level.
The analyser found the following errors for publish :
[requirements-capabilities] com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8: Artifact com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8 requires [org.apache.felix.gogo.jline/1.1.8] org.apache.felix.gogo; filter:="(&(org.apache.felix.gogo=command.implementation)(version>=1.0.0)(!(version>=2.0.0)))"; effective:=active in start level 20 but no artifact is providing a matching capability in this start level.
[api-regions-exportsimports] com.adobe.aem.temp:org.apache.felix.gogo.jline:1.1.8: Bundle org.apache.felix.gogo.jline:1.1.8 is importing package(s) [org.jline.builtins, org.jline.utils, org.apache.felix.service.command, org.apache.felix.service.threadio, org.jline.terminal, org.jline.reader, org.apache.felix.gogo.runtime, org.jline.reader.impl] in start level 20 but no bundle is exporting these for that start level.
A amostra de código acima ilustra o comportamento se um pacote não resolver. Nesse caso, ele é "preparado" e só será instalado se seus requisitos (nesse caso, importações ausentes) forem atendidos por meio da instalação de outro código.
Implantar configuração relacionada ao pipeline de configuração (configurações yaml) deploy-config-pipeline
As configurações específicas do ambiente (um ou mais arquivos yaml) descritas no artigo Uso dos Pipelines de Configuração podem ser implantadas da seguinte maneira:
aio aem:rde:install -t env-config ./my-config-folder
Onde my-config-folder
é a pasta pai que contém as configurações yaml.
Como alternativa, também é possível instalar um arquivo zip contendo a árvore de pastas de configuração:
aio aem:rde:install -t env-config config.zip
Observe que a matriz envTypes do arquivo yaml inclui o valor rde
, como no exemplo abaixo:
kind: "CDN"
version: "1"
metadata:
envTypes: ["rde"]
Implantar código front-end com base em temas de site e modelos de site deploying-themes-to-rde
Os RDEs oferecem suporte para código front-end criado com temas de site e modelos de site. Em vez de usar o Pipeline de front-end do Cloud Manager como outros tipos de ambiente, os RDEs implantam pacotes de front-end usando uma diretiva de linha de comando.
Como de costume, crie seu pacote de front-end usando npm:
npm run build
Ele gera uma pasta dist/
, de modo que a pasta do pacote front-end contém um arquivo package.json
e uma pasta dist
:
ls ./path-to-frontend-pkg-folder/
...
dist
package.json
Agora, você está pronto para implantar o pacote de front-end no RDE apontando para a pasta do pacote de front-end da seguinte maneira:
aio aem:rde:install -t frontend ./path-to-frontend-pkg-folder/
...
#1: deploy completed for frontend frontend-pipeline.zip on author,publish - done by ... at 2024-01-18T15:33:22.898Z
Logs:
> Deployed artifact wknd-1.0.0-1705592008-26e7ec1a
> with workspace hash 692021864642a20d6d298044a927d66c0d9cf2adf42d4cca0c800a378ac3f8d3
Como alternativa, você pode compactar o arquivo package.json
e a pasta dist
e implantar esse arquivo zip:
zip -r frontend-pkg.zip ./path-to-frontend-pkg-folder/dist ./path-to-frontend-pkg-folder/package.json
aio aem:rde:install -t frontend frontend-pkg.zip
...
#1: deploy completed for frontend frontend-pipeline.zip on author,publish - done by ... at 2024-01-18T15:33:22.898Z
Logs:
> Deployed artifact wknd-1.0.0-1705592008-26e7ec1a
> with workspace hash 692021864642a20d6d298044a927d66c0d9cf2adf42d4cca0c800a378ac3f8d3
- pasta
dist
, para a pasta do pacote de saída da compilação npm package.json
arquivo, para o pacote de dependências npm
UNEXPECTED_API_ERROR
ao usar o recurso de front-end pela primeira vez, isso pode ser devido a uma configuração desatualizada. Para resolver esse problema, exclua o ambiente e crie um novo.Verificar o status do RDE checking-rde-status
Você pode usar a CLI do RDE para verificar se o ambiente está pronto para ser implantado para, como quais implantações foram feitas por meio do plug-in RDE.
Executando o seguinte:
aio aem:rde:status
Retorna com o seguinte:
Info for cm-p12345-e987654
Environment: Ready
- Bundles Author:
com.adobe.granite.sample.demo-1.0.0.SNAPSHOT
- Bundles Publish:
com.adobe.granite.sample.demo-1.0.0.SNAPSHOT
- Configurations Author:
com.adobe.granite.demo.MyServlet
- Configurations Publish:
com.adobe.granite.demo.MyServlet
Se o comando retornar uma observação sobre a implantação de instâncias, ainda será possível prosseguir e executar a próxima atualização, mas a última talvez ainda não esteja visível na instância.
Mostrar histórico de implantação show-deployment-history
Você pode verificar o histórico de implantações feitas no RDE executando:
aio aem:rde:history
Que retorna uma resposta na forma de:
#1: deploy completed for content-package aem-guides-wknd.all-2.1.0.zip on author,publish - done by 029039A55D4DE16A0A494025@AdobeID at 2022-09-12T14:41:55.393Z
Excluir do RDE deleting-from-rde
Você pode usar as ferramentas da CLI para excluir configurações e pacotes implantados anteriormente no RDE. Use o comando status
para obter uma lista do que pode ser excluído, que inclui bsn
para pacotes e pid
para configurações a serem referenciadas no comando delete.
Por exemplo, se com.adobe.granite.demo.MyServlet.cfg.json
foi instalado, o bsn
é apenas com.adobe.granite.demo.MyServlet
, sem o sufixo cfg.json.
Não há suporte para a exclusão de pacotes de conteúdo ou arquivos de conteúdo. Para removê-los, redefina o RDE, que o retorna ao estado padrão.
Consulte o exemplo abaixo para obter mais detalhes:
aio aem:rde:delete com.adobe.granite.csrf.impl.CSRFFilter
#13: delete completed for osgi-config com.adobe.granite.csrf.impl.CSRFFilter on author - done by karl at 2022-09-12T22:01:01.955Z
#14: delete completed for osgi-config com.adobe.granite.csrf.impl.CSRFFilter on publish - done by karl at 2022-09-12T22:01:12.979Z
Para obter mais informações e demonstração, consulte o tutorial em vídeo como usar comandos RDE (10:01).
Implantar em um RDE a partir de provedores Git externos deploy-to-rde
A Cloud Manager oferece suporte à implantação de código em um RDE diretamente de provedores Git externos ao usar a configuração BYOG (Bring Your Own Git).
A implantação em RDEs de um repositório Git externo requer o seguinte:
- O uso de um repositório Git externo integrado com o Cloud Manager (configuração BYOG).
- Seu projeto deve ter um ou mais ambientes RDE provisionados.
- Se você usa o
github.com
, deve revisar e aceitar a instalação atualizada do aplicativo GitHub para conceder as novas permissões necessárias.
Notas de uso
- Atualmente, a implantação no RDE é compatível apenas com pacotes de conteúdo e Dispatcher do AEM.
- A implantação de outros tipos de pacotes (por exemplo, pacotes de aplicativos completos do AEM) ainda não é suportada.
- Atualmente, a redefinição de um ambiente RDE usando um comentário não é compatível. Em vez disso, você deve usar o comando redefinir AIO CLI existente, como descrito aqui.
Como funciona
-
Mensagem de validação de qualidade do código.
Quando uma solicitação de pull (PR) aciona uma execução de pipeline de qualidade de código, os resultados da validação indicam se a implantação pode prosseguir para um ambiente RDE.
Como se parece no GitHub Enterprise:
Como ele aparece no GitLab:
Como se parece no Bitbucket:
-
Acione a implantação usando um comentário.
Para iniciar a implantação, adicione um comentário à PR no seguinte formato:
deploy on rde-environment-<envName>
O
<envName>
deve corresponder ao nome de um ambiente RDE existente. Se o nome não for encontrado, um comentário será retornado indicando que o ambiente é inválido.Se o status do ambiente não estiver pronto, você receberá o seguinte comentário:
-
Verificação de ambiente e implantação de artefato.
Se o RDE estiver pronto, o Cloud Manager publica uma nova verificação na PR.
Como se parece no GitHub Enterprise:
Como ele aparece no GitLab:
Como se parece no Bitbucket:
-
Mensagem de implantação bem-sucedida.
Quando a implantação for concluída, o Cloud Manager publicará uma mensagem de sucesso resumindo os artefatos implantados no ambiente de destino.
Como se parece no GitHub Enterprise:
Como ele aparece no GitLab:
Como se parece no Bitbucket:
Logs rde-logging
Semelhante a outros tipos de ambiente, os níveis de log podem ser definidos modificando as configurações do OSGi, embora, conforme descrito acima, o modelo de implantação para RDEs envolva uma linha de comando em vez de uma implantação do Cloud Manager. Consulte a documentação de log para obter mais informações sobre como exibir, baixar e interpretar logs.
A CLI do RDE também tem seu próprio comando log, usado para configurar rapidamente quais classes e pacotes são registrados e em que nível de log. Essas configurações podem ser visualizadas como efêmeras, pois não modificam as propriedades OSGI no controle de versão. Esse recurso tem como foco rastrear logs em tempo real, em vez de pesquisar logs de um passado distante.
O exemplo a seguir ilustra como rastrear a camada do autor, com um pacote definido para um nível de log de depuração e dois pacotes (separados por espaços) definidos para um nível de depuração de informações. A saída que inclui um pacote auth está realçada.
aio aem:rde:logs --target=author --debug=org.apache.sling --info=org.apache.sling.commons.threads.impl org.apache.sling.jcr.resource.internal.helper.jcr -H .auth.
RDECLI:UNEXPECTED_API_ERROR
ao reproduzir os comandos de logs do serviço de autor, redefina seu ambiente e tente novamente. Esse erro será lançado se a última operação de redefinição for anterior ao final de maio de 2024.code language-none |
---|
|
Consulte aio aem:rde:logs --help
para obter o conjunto completo de opções de linha de comando.
Os recursos incluem o seguinte:
- declaração de níveis de log em um nível por pacote ou classe
- personalização do formato de saída de log
- reduzindo até quatro configurações de registro atuais, cada uma em seu próprio terminal
- realce de logs específicos
Observe que os registros são armazenados na memória no RDE e esses registros são reciclados e, portanto, descartados se não forem descartados ou se a rede for muito lenta.
Redefinir o RDE reset-rde
A redefinição do RDE remove todos os códigos personalizados, configurações e conteúdo das instâncias do autor e de publicação. A redefinição do RDE é útil quando você conclui o teste de um recurso e deseja retornar o ambiente para um estado padrão antes de testar outro.
Uma redefinição define o RDE para a versão mais recente do AEM disponível.
Você pode redefinir o RDE usando Cloud Manager ou a linha de comando. A redefinição leva alguns minutos e todo o conteúdo e código existente é excluído do RDE.
Redefina o RDE usando a linha de comando reset-the-rde-command-line
Você pode redefinir o RDE e retorná-lo a um estado padrão executando o seguinte:
aio aem:rde:reset
Esse processo geralmente leva alguns minutos e relata Environment reset.
quando bem-sucedido ou Failed to reset the environment.
sobre erros. Para uma saída estruturada, consulte o capítulo sobre a saída --json
abaixo.
Use o comando de status para verificar quando o ambiente está pronto novamente.
Redefina o RDE no Cloud Manager reset-the-rde-cloud-manager
Você pode usar o Cloud Manager para redefinir seu RDE seguindo as etapas abaixo:
-
Faça logon no Cloud Manager, em my.cloudmanager.adobe.com, e selecione a organização apropriada.
-
Clique no programa para o qual deseja redefinir o RDE.
-
Na página Visão Geral, clique na guia Ambientes na parte superior da tela.
-
Como alternativa, clique no botão Mostrar Tudo no cartão Ambientes para ir diretamente para a guia Ambientes.
-
-
A janela Ambientes é aberta e lista todos os ambientes do programa.
-
Clique no botão de reticências do RDE que você deseja redefinir e selecione Redefinir.
-
Confirme se deseja redefinir o RDE clicando em Redefinir na caixa de diálogo.
-
A Cloud Manager confirma por meio de uma notificação de banner que o processo de redefinição foi iniciado.
Depois que a redefinição do RDE é iniciada, geralmente leva alguns minutos para ser concluída e restaurar o ambiente ao seu estado padrão. Você pode exibir o status de redefinição a qualquer momento na coluna Status do cartão ou janela Ambientes.
Você também pode redefinir o RDE usando o botão de reticências diretamente do cartão Ambientes na página Visão geral.
Para obter mais informações sobre como usar o Cloud Manager para gerenciar seus ambientes, consulte a documentação do Cloud Manager.
Comandos que oferecem suporte à saída JSON json-commands
A maioria dos comandos dá suporte ao sinalizador global --json
que suprime a saída do console e retorna um json válido para ser processado em scripts. Abaixo estão alguns comandos compatíveis, com exemplos da saída json.
Status status
Um RDE limpo clean-rde
$ aio aem rde status --json
code language-json |
---|
|
Um RDE com alguns pacotes instalados rde-installed-bundles
$ aio aem rde status --json
code language-json |
---|
|
Instalar install
$ aio aem rde install ~/Downloads/hotdev.demo.ui.apps.all-1.0.0-SNAPSHOT.zip --json
code language-json |
---|
|
Excluir delete
$ aio aem rde delete com.adobe.granite.hotdev.demo-1.0.0.SNAPSHOT --json
code language-json |
---|
|
Histórico history
$ aio aem rde history --json
code language-json |
---|
|
Redefinir reset
Fogo e esqueça, sem espera fire-no-wait
$ aio aem rde reset --no-wait --json
code language-json |
---|
|
Aguardar a conclusão, redefinir com êxito wait-success
$ aio aem rde reset --json
code language-json |
---|
|
Aguardar a conclusão, falha na redefinição wait-failed
$ aio aem rde reset --json
code language-json |
---|
|
Reiniciar restart
$ aio aem rde restart --json
code language-json |
---|
|
Modos de execução runmodes
A configuração OSGI específica para RDE pode ser aplicada usando sufixos no nome da pasta, como nos exemplos abaixo:
config.rde
config.author.rde
config.publish.rde
Consulte a documentação do modo de execução para obter informações gerais sobre modos de execução.
dev
do pacote.Os RDEs são distintos de outros ambientes, pois o conteúdo pode ser instalado em uma pasta install.rde
(ou install.author.rde
ou install.publish.rde
) em /apps
. Essa capacidade permite confirmar o conteúdo no Git e entregá-lo ao RDE usando a ferramenta de linha de comando.
Preencher com conteúdo populating-content
Quando um RDE é redefinido, todo o conteúdo é removido e, portanto, se desejado, uma ação explícita deve ser tomada para adicionar conteúdo. Como prática recomendada, considere montar um conjunto de conteúdo a ser usado como conteúdo de teste para validar ou depurar recursos no RDE. Há várias estratégias possíveis para preencher o RDE com esse conteúdo:
-
Sincronizar o pacote de conteúdo explicitamente no RDE usando a ferramenta de linha de comando
-
Coloque e confirme o conteúdo de amostra no Git dentro de uma pasta
install.rde
em/apps
e sincronize o pacote de conteúdo abrangente no RDE usando a ferramenta de linha de comando. -
Use a ferramenta de cópia de conteúdo para copiar um conjunto de conteúdo definido de ambientes de produção, preparo ou desenvolvimento, ou de outro RDE.
-
Usar gerenciador de pacotes
Você está limitado a 1 GB ao sincronizar pacotes de conteúdo.
Em que os RDEs são diferentes dos ambientes de desenvolvimento em nuvem? how-are-rds-different-from-cloud-development-environments
Embora o RDE seja, de muitas maneiras, semelhante a um ambiente de desenvolvimento na nuvem, há algumas pequenas diferenças arquitetônicas para permitir a sincronização rápida do código. O mecanismo para obter o código para o RDE é diferente — para RDEs, um sincroniza o código de um ambiente de desenvolvimento local, enquanto para ambientes de desenvolvimento em nuvem, um implanta o código por meio do Cloud Manager.
Por esses motivos, recomenda-se que, após validar o código em um ambiente RDE, você implante o código em um ambiente de desenvolvimento na nuvem usando o pipeline de não produção. Por fim, teste o código antes de implantar com o pipeline de produção.
Observe também as seguintes considerações:
- Os RDEs não incluem um nível de visualização
- Atualmente, os RDEs não oferecem suporte ao canal de pré-lançamento.
De quantos RDEs preciso? how-many-rds-do-i-need
Uma RDE está disponível para cada solução licenciada e a Adobe também oferece RDEs adicionais, que podem ser licenciados para programas de produção (que não sejam de sandbox).
O número de RDEs necessários depende da composição e dos processos de uma organização. O modelo mais flexível é quando uma organização compra uma RDE dedicada para cada um de seus desenvolvedores do AEM Cloud Service. Neste modelo, cada desenvolvedor pode testar seu código no RDE sem coordenar com outros membros da equipe sobre se um ambiente RDE está disponível.
No outro extremo, uma equipe com apenas uma RDE pode contar com a coordenação interna para decidir qual desenvolvedor utiliza o ambiente num determinado momento. Essa abordagem funciona bem quando um desenvolvedor atinge um marco de recursos e precisa validar seu trabalho em um ambiente de nuvem com a flexibilidade para fazer alterações rápidas.
Um modelo intermediário é aquele em que uma organização compra vários RDEs, de modo que há uma maior probabilidade de um RDE não utilizado estar disponível. Uma estratégia poderia ser alocar um RDE por equipe de scrum ou recurso principal. Processos internos podem ser usados para coordenar o uso dos ambientes.
Como um RDE do AEM Forms Cloud Service é diferente de outros ambientes? how-are-forms-rds-different-from-cloud-development-environments
Os desenvolvedores da Forms podem usar o AEM Forms Cloud Service Rapid Development Environment para desenvolver rapidamente o Forms adaptável, workflows e personalizações, como a personalização de componentes principais, integrações com sistemas de terceiros e muito mais. O AEM Forms Cloud Service Rapid Development Environment (RDE) não é compatível com APIs de comunicação. Ele também não tem suporte para recursos e funcionalidades que exigem o Documento de registro, como gerar um Documento de registro no envio de um Formulário adaptável. Os recursos do AEM Forms listados abaixo não estão disponíveis em um Ambiente de desenvolvimento rápido (RDE):
- Configuração de um documento de registro para um formulário adaptável
- Gerar um documento de registro no envio de um formulário adaptável ou com uma etapa do fluxo de trabalho
- Enviar documento de registro como um anexo com a ação enviar de email ou com a etapa Email em um fluxo de trabalho
- Uso do Adobe Sign em um formulário adaptável ou em uma etapa de fluxo de trabalho
- APIs de comunicação
Tutorial RDE
Para saber mais sobre o RDE no AEM as a Cloud Service, veja o tutorial em vídeo que demonstra como configurá-lo, como usá-lo e o ciclo de vida do desenvolvimento (01:25).
Solução de problemas troubleshooting
Solução de problemas de RDE (#rde-troublehooting)
Como obter a versão mais recente do AEM para um RDE existente get-latest-aem-version
Após a criação, os RDEs são definidos para a versão mais recente do Adobe Experience Manager (AEM). Uma redefinição de RDE, que pode ser executada usando o Cloud Manager ou o comando aio aem:rde:reset
, circula o RDE e o define para a versão do AEM mais recente disponível.
Solução de problemas do plug-in aio RDE aio-rde-plugin-troubleshooting
Erros relacionados a permissões insuficientes insufficient-permissions
Para usar o plug-in RDE, é necessário que você seja membro do Perfil de Produto Desenvolvedor - Cloud Service do Cloud Manager. Consulte Atribuir membros da equipe a perfis de produto do Cloud Manager - Atribuir o perfil de produto do desenvolvedor para obter mais detalhes.
Como alternativa, você pode confirmar que tem essa função de desenvolvedor se fizer logon no console do desenvolvedor executando o seguinte comando:
aio cloudmanager:environment:open-developer-console
Warning: cloudmanager:* is not a aio command.
, instale o aio-cli-plugin-cloudmanager executando o seguinte comando:code language-none |
---|
|
Verifique se o logon foi concluído com êxito executando o seguinte:
aio cloudmanager:list-programs
Esse processo lista todos os programas na organização configurada e confirma que a função correta foi atribuída a você.
Usar contexto obsoleto aio-cli-plugin-cloudmanager
aio-rde-plugin-troubleshooting-deprecatedcontext
Devido ao histórico do aio-cli-plugin-aem-rde
, o nome de contexto aio-cli-plugin-cloudmanager
foi usado por algum tempo. O plug-in RDE agora usa o método IMS para gerenciar informações de contexto, permitindo que você armazene contexto global ou localmente. Você também pode configurar um contexto padrão para aplicar a todas as chamadas AIO automaticamente. O contexto padrão configurado é armazenado localmente e permite que os desenvolvedores rastreiem e usem contextos individuais e suas informações dentro de uma pasta. Para obter mais detalhes, leia o exemplo para configurar um contexto local acima.
Os desenvolvedores que usam ambos os plug-ins, o aio-cli-plugin-cloudmanager
e o aio-cli-plugin-aem-rde
e que gostariam de manter todas as informações no mesmo contexto, têm duas opções agora:
Continuar usando o contexto aio-cli-plugin-cloudmanager
O contexto ainda pode ser usado. Um aviso de desativação é mostrado no plug-in RDE. Este aviso pode ser omitido usando o modo --quiet
. As versões mais recentes do plug-in RDE não oferecem mais o fallback para ler o contexto aio-cli-plugin-cloudmanager
. Para continuar a usá-lo, basta configurar o contexto padrão para aio-cli-plugin-cloudmanager
. Consulte o exemplo para configurar um contexto local acima.
Use qualquer outro nome de contexto também para o plug-in do Cloud Manager
Os plug-ins do Cloud Manager oferecem um parâmetro para definir um contexto a ser usado. Ainda não há suporte para a configuração de contexto padrão IMS. Para fazer isso, configure o plug-in RDE usando o exemplo para definir um contexto local e instruir o plug-in Cloud Manager a usar myContext
como --imsContextName=myContext
em cada chamada para ele.