Perguntas frequentes sobre o Cloud Manager cloud-manager-faqs
Este documento fornece respostas para as perguntas mais frequentes sobre o Cloud Manager no AEM as a Cloud Service.
É possível usar o Java™ 11 com compilações do Cloud Manager? java-11-cloud-manager
Sim. Adicione o maven-toolchains-plugin
com configurações adequadas para Java™ 11.
O processo está documentado aqui.
Por exemplo, consulte o código do projeto de amostra do wknd.
Minha compilação falha com um erro sobre o maven-scr-plugin após alternar do Java™ 8 para o Java™ 11. O que posso fazer? build-fails-maven-scr-plugin
Sua compilação do AEM Cloud Manager pode falhar ao tentar alternar a compilação do Java™ 8 para o 11. Se você encontrar o seguinte erro, deverá remover o maven-scr-plugin
e converter todas as anotações OSGi em anotações OSGi R6.
[main] [ERROR] Failed to execute goal org.apache.felix:maven-scr-plugin:1.26.4:scr (generate-scr-scrdescriptor) on project helloworld.core: /build_root/build/testsite/src/main/java/com/adobe/HelloWorldServiceImpl.java : Unable to load compiled class: com.adobe.HelloWorldServiceImpl: com/adobe/HelloWorldServiceImpl has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 > [Help 1]
Para obter instruções sobre como remover esse plug-in, consulte esta página.
Minha compilação falha com um erro sobre RequireJavaVersion após mudar do Java™ 8 para o Java™ 11. O que posso fazer? build-fails-requirejavaversion
Para compilações do Cloud Manager, maven-enforcer-plugin
pode falhar com esse erro.
"[main] [WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion".
Esse erro é um problema conhecido devido ao fato de o Cloud Manager usar uma versão do Java™ diferente da utilizada para compilar o código ao executar o comando maven. Basta omitir requireJavaVersion
nas configurações do maven-enforcer-plugin
.
A verificação da qualidade do código falhou e a implantação está travada. Existe uma maneira de ignorar essa verificação? deployment-stuck
Sim. Todas as falhas de verificação de qualidade do código, exceto a classificação de segurança, são métricas não críticas; portanto, podem ser ignoradas como parte de um pipeline de implantação, expandindo os itens na interface do usuário de resultados.
Um usuário com a função Gerente de implantação, Gerente de projeto ou Proprietário da empresa pode substituir os problemas, caso em que o pipeline continua, ou pode aceitar os problemas, caso em que o pipeline é interrompido com uma falha.
Veja os documentos Testes de qualidade do código e Configuração de pipelines de não produção para obter mais detalhes.
Posso usar o SNAPSHOT para a versão do projeto Maven? use-snapshot
Sim. Para implantações de desenvolvedores, os arquivos pom.xml
da ramificação Git devem conter -SNAPSHOT
no final do valor <version>
.
Esse valor permite que a implantação subsequente ainda seja instalada quando a versão não for alterada. Em implantações de desenvolvedores, nenhuma versão automática é adicionada ou gerada para a compilação maven.
Você também pode definir a versão como -SNAPSHOT
para compilações ou implantações de preparo ou de produção. O Cloud Manager define automaticamente um número de versão adequado e cria uma tag para você no Git. Se necessário, essa tag pode ser consultada posteriormente.
Mais detalhes sobre o manuseio de versão estão documentados aqui.
Como funciona o controle de versão dos pacotes para implantações de preparo e produção? snapshot-version
Em implantações de preparo e produção, uma versão automática é gerada conforme documentado aqui.
Para o controle de versão personalizado em implantações de preparo e produção, defina uma versão maven adequada com três partes como 1.0.0
. Aumente a versão sempre que implantar na produção.
O Cloud Manager adicionará automaticamente a versão às compilações de preparo e produção e criará uma ramificação Git. Nenhuma configuração adicional é necessária. Se você não definir uma versão do Maven conforme descrito anteriormente, a implantação ainda será bem-sucedida e uma versão será definida automaticamente.
Minha compilação maven falha para implantações do Cloud Manager, mas é criada localmente sem erros. O que há de errado? maven-build-fail
Consulte este recurso do Git para obter mais detalhes.
O que devo fazer se uma implantação do Cloud Manager falhar na etapa de implantação do AEM as a Cloud Service? cloud-manager-deployment-cloud-service
O motivo mais comum para uma implantação falhar é devido a permissões insuficientes para o usuário sling-distribution-importer
. Nesse caso, a etapa de implantação falha durante uma implantação do Cloud Manager e erros como os mostrados a seguir são gerados.
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.jackrabbit.vault.fs.io.Importer Error while committing changes. Retrying import from checkpoint at /. Retries 4/10
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.sling.distribution.journal.impl.subscriber DistributionSubscriber Error processing queue item
org.apache.sling.distribution.common.DistributionException: Error processing distribution package
dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 162/infinite.
Caused by: org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied [EventAdminAsyncThread #7] org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [null] Error processing distribution package` `dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 344/infinite. Message: Error trying to extract package at path /etc/packages/com.myapp/myapp-base.ui.content-5.1.0-SNAPSHOT.
O usuário sling-distribution-importer
precisa de permissões adicionais para os caminhos de conteúdo definidos em ui.content package
. Esta regra geralmente significa que você precisa adicionar permissões para /conf
e /var
.
A solução é adicionar um script de Configuração OSGi de RepositoryInitializer ao pacote de implantação de aplicativos para adicionar ACLs para o usuário sling-distribution-importer
.
No erro do exemplo anterior, o pacote myapp-base.ui.content-*.zip
inclui conteúdo em /conf
e /var/workflow
. Para que a implantação seja bem-sucedida, são necessárias permissões para sling-distribution-importer
nesses caminhos.
Veja este exemplo de uma configuração OSGi org.apache.sling.jcr.repoinit.RepositoryInitializer-DistributionService.config
que adiciona mais permissões ao usuário sling-distribution-importer
. A configuração adiciona permissões em /var
. Essa configuração deve ser adicionada ao pacote do aplicativo em /apps/myapp/config
(onde myapp é a pasta em que o código do aplicativo está armazenado).
A implantação do My Cloud Manager falha na etapa de implantação do AEM as a Cloud Service e já adicionei uma configuração OSGi de RepositoryInitializer. O que mais posso fazer? build-failures
Se adicionar uma configuração OSGi de RepositoryInitializer não resolver o erro, talvez seja devido a um destes outros problemas.
-
A implantação pode falhar devido a uma configuração OSGi incorreta que interrompe um serviço predefinido.
- Verifique os logs durante a implantação para ver se há erros óbvios.
-
A implantação pode falhar devido a configurações incorretas do Dispatcher ou Apache.
- Teste as configurações do Apache e do Dispatcher localmente utilizando a imagem do Docker incluída no SDK.
- Consulte Dispatcher na nuvem para descobrir como configurar o container Docker do Dispatcher para facilitar o teste local.
-
A implantação pode falhar devido a alguma outra falha durante a replicação dos pacotes de conteúdo (distribuição Sling) entre as instâncias de criação e publicação.
-
Siga estas etapas para simular o problema em uma configuração local.
- Instale uma instância de criação e publicação localmente usando os jars mais recentes do SDK do AEM.
- Faça logon na instância de criação.
- Ir para Ferramentas > Implantação > Distribuição.
- Distribua os pacotes de conteúdo que fazem parte da base de código e veja se a fila é bloqueada com um erro.
-
Não consigo definir uma variável usando um comando aio. O que posso fazer? set-variable
Você pode receber o erro 403
(como mostrado a seguir) ao tentar listar ou definir variáveis de pipeline por meio de comandos aio
.
$ aio cloudmanager:list-pipeline-variables 222
Cannot get variables: https://cloudmanager.adobe.io/api/program/111/pipeline/222/variables (403 Forbidden)
$ aio cloudmanager:set-pipeline-variables 222 --variable TEST 1
Cannot get variables: https://cloudmanager.adobe.io/api/program/111/pipeline/222/variables (403 Forbidden)
$ aio cloudmanager:set-environment-variables 1755 --variable TEST 1
setting variables... !
Cannot set variables: https://cloudmanager.adobe.io/api/program/111/environment/222/variables (403 Forbidden)
Nesse caso, o usuário que executa esses comandos precisa ser adicionado à função Gerente de implantação no Admin Console.
Consulte Permissões da API para obter mais detalhes.