Perguntas frequentes sobre o Cloud Manager

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?

Sim. Será necessário adicionar maven-toolchains-plugin com as configurações apropriadas para o 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 maven-scr-plugin após alternar do Java 8 para o Java 11. O que posso fazer?

A compilação do AEM Cloud Manager pode falhar ao tentar alternar a compilação do Java 8 para o 11. Se você encontrar o erro a seguir, será necessário remover maven-scr-plugin e converter todas as anotações OSGi para 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, veja aqui.

Minha compilação falha com um erro sobre RequireJavaVersion após alternar do Java 8 para o Java 11. O que posso fazer?

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 é um problema conhecido, uma vez que o Cloud Manager usa uma versão diferente do Java para executar o comando maven versus o código de compilação. Basta omitir requireJavaVersion nas configurações maven-enforcer-plugin.

Ocorreu uma falha na verificação de qualidade do código e nossa implantação travou. Existe uma maneira de ignorar essa verificação?

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?

Sim. Para implantações de desenvolvedores, os arquivos pom.xml da ramificação Git devem conter -SNAPSHOT no final do valor <version>.

Isso permite que a implantação subsequente ainda seja instalada, mesmo que a versão não seja 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. Essa tag pode ser consultada posteriormente, se necessário.

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?

Em implantações de preparo e produção, uma versão automática é gerada como 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 maven conforme descrito anteriormente, a implantação ainda terá sucesso 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?

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?

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. Isso 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, as permissões de sling-distribution-importer nesses caminhos são necessárias.

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?

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 usando a imagem do Docker incluída no SDK.
    • Consulte Dispatcher na nuvem sobre como configurar o contêiner 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 autoria e publicação.

    • Siga estas etapas para simular o problema em uma configuração local.
      1. Instale uma instância de autoria e publicação localmente usando os jars mais recentes do SDK do AEM.
      2. Faça logon na instância de autoria.
      3. Acesse Ferramentas -> Implantação -> Distribuição.
      4. 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?

Você pode receber o erro 403 como 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.

Nesta página