Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Automating Page Migration from On-Prem to Cloud AEM

Avatar

Level 1

Hi,

We are in the process of migrating from an on-prem AEM environment to AEM Cloud and are exploring a solution to automate this migration. Our goal is to build a dynamic system that:

  1. Retrieves Data from On-Prem AEM: An external application running on a separate server will either scrape or fetch data via the AEM API from a specific page in the on-prem instance. This includes metadata, components, images, text, and other page content.

  2. Replicates the Page on AEM Cloud: The same application would then programmatically create a new page on AEM Cloud, using a predefined template. It would map the on-prem components (e.g., the hero component on-prem goes into the corresponding hero component on the cloud) and populate the page with the retrieved content.

  3. Manual Review & Publishing: A human author will review the created page in AEM Cloud before publishing.

Questions:

  1. Is this type of automated page migration feasible? If so, are there any resources, documentation, or tutorials available on how to create pages and populate components in AEM Cloud via an external app using AEM’s API?

  2. Is there an alternative or more efficient approach we should consider for this migration process?

Any guidance or references would be greatly appreciated.

Thanks in advance!

1 Accepted Solution

Avatar

Correct answer by
Level 5

Hi @NickMe3,

you can push any type of content in AEM (on-prem or Cloud) using the OOTB POST servlet, see https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-po...

I've used it the JSON option mostly to create large amounts of test content on AEMaaCS for performance testing purposes:

curl -F":operation=import" -F":contentType=json"
   -F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }' \    
   http://host/content

 

Hope this helps,

Daniel

View solution in original post

4 Replies

Avatar

Level 1

Thank you for your reply.

 

The components we plan on using on the cloud are not identical to those on prem. That is why I was asking about using an API to add the components and content on the cloud.

 

Let me ask this question a different way:

 

Can we use our own app to create pages on cloud AEM using the AEM API, whereby we programmatically add the components to a template and add content to each component?

Avatar

Correct answer by
Level 5

Hi @NickMe3,

you can push any type of content in AEM (on-prem or Cloud) using the OOTB POST servlet, see https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-po...

I've used it the JSON option mostly to create large amounts of test content on AEMaaCS for performance testing purposes:

curl -F":operation=import" -F":contentType=json"
   -F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }' \    
   http://host/content

 

Hope this helps,

Daniel

Avatar

Community Advisor

Regarding your Q2, I would suggest to take a look at https://opensource.adobe.com/aem-modernize-tools/ It has features which will help you with the migration steps which you are looking at such as https://opensource.adobe.com/aem-modernize-tools/pages/all-in-one/about.html. And once you have migrated the content, then you can essentially use content transfer tool to tranfer your content from on-prem to cloud.
We have used it in past, and it works well for normal conversions, we did face some issues with cases such as old multifield migration which we handled separately but other than that, this could definitely save your effort of creating something custom.
Hope this helps.