AD5-E112 Flashcards
- Which two are the differences between a production pipeline and a non-production pipeline (Choose Two)
( ) Code quality testing
( ) Security testing
( ) Performance load testing
( ) Acceptance testing
( ) Unit testing
(+) Security testing
(+) Performance load testing
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-manager/content/using/pipelines/production-pipelines.html?lang=en
The testing section for this stage, while grayed out, is actually permanently enabled, requiring static code, load performance and security testing to complete and pass prior to allowing the artifact to be deployed to production.
- Which command should the Developer use to view the server log?
( ) aio cloudmanager:log ENVIRONMENT_ID SERVER_NAME –programId=PROGRAM_ID
( ) aio cloudmanager:tail-log ENVIRONMENT_ID SERVER_NAME –programId=PROGRAM_ID
( ) aio cloudmanager:view-log ENVIRONMENT_ID SERVER_NAME –programId=PROGRAM_ID
( ) aio cloudmanager:show-log ENVIRONMENT_ID SERVER_NAME –programId=PROGRAM_ID
(+) aio cloudmanager:tail-log ENVIRONMENT_ID SERVER_NAME –programId=PROGRAM_ID
–> See https://github.com/adobe/aio-cli-plugin-cloudmanager#aio-cloudmanagerenvironmenttail-log-environmentid-service-name
- The Code Quality Step for the Non-Production pipeline threw the following error:ISSUE
HTTP requests should always have socket and connect timeoutsRULE
CQRules: Connection TimeoutMechanismThe erroneous code looks as follows:@Reference
private HttpClientBuilderFactoryhttpClientBuilderFactory:
public void test() {
HttpClientBuilder builder
httpClientBuilderFactory.newBuilder();
Httpclient httpClient = builder.build();
// do something with the client
}Select the correct code snippet to replace the above code.( ) public void test() {
URL url= new URL (“http://www.adobe.com”);
URLConnection urlConnection = url.openConnection();BufferedReader in = new BufferedReader (new InoutStreamReader(urlConnection.getInoutStream()))): String inputLine: while((inputLine = in.readLine()) != null) { logger. info(inputLine); } in.close(); }
(+) public void test() {
HttpClientBuilder builder = httpClientBuilderFactory.newBuilder();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionTimeout(5000)
.setSocketTimeout (5000)
.build();
builder setDefaultRequestConfig(requestConfig);
Httpclient httpClient = builder.build();
// do something with the client
}( ) @Reference
private HttpClientBuilderFactory httpClientBuilderFactory:public void test() {
URL url = new URL(“htto://www.adobe.com”);URLConnection urlConnection = url.openConnection() ; urlConnection.setConnectTimeout(5000); urConnectionn.setReadTimeout(5000); HttpClientBuilder builder = httpclientBuilderFactory.newBuilder(); Httpclient httpClient = builder.build(); // do something with the client }
( ) public void test() {
URL url= new URL(“http.//www.adobe.com”);URLConnection urlConnection = url.openconnection(); BufferedReader in = new BufferedReader (new InputStreamReader(urlConnection.getInoutStream))); String inputLine; while((inputLine = in.readLine)) != null) { logger. info(inputLine); } in.close(); }
(+) public void test() {
HttpClientBuilder builder = httpClientBuilderFactory.newBuilder();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionTimeout(5000)
.setSocketTimeout (5000)
.build();
builder setDefaultRequestConfig(requestConfig);
Httpclient httpClient = builder.build();
// do something with the client
}
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-manager/content/using/custom-code-quality-rules.html?lang=en#http-requests-should-always-have-socket-and-connect-timeouts
- Which command should a Developer use to start a pipeline?
( ) PUT /api/program/(programld}/pipeline/(pipelineld}/executions
( ) GET /api/program/{programld}/pipeline/{pipelineld}/execution/{executionId}
( ) GET /api/program/programld;/pipeline/pipelineld›/execution
( ) PUT /api/program/{programId}/pipeline/{pipelineId}/execution
( + ) PUT /api/program/{programId}/pipeline/{pipelineId}/execution
–> See https://developer.adobe.com/experience-cloud/cloud-manager/reference/api/#operation/startPipeline
- A Developer needs to determine if a package is exported by a specific OSGi bundle. How should this be done in AM as a Cloud Service?
( ) Using the Developer Console
( ) Using CRX Explorer
( ) Using the Apache Felix Web Console
( ) Using OSGi Utils
( + ) Using the Developer Console
–> See https://experienceleague.adobe.com/docs/experience-manager-learn/cloud-service/debugging/debugging-aem-as-a-cloud-service/developer-console.html?lang=en#java-packages
- A developer created a new branch (second) directly in the Cloud Manager Git repository (origin). Which commands should be taken to synchronize the Cloud Manager repository?
( ) git fetch
git checkout -b second origin/second
( ) git pull
git fetch second
( ) git checkout -b second origin/second
git push -u origin master
( ) git commit -am second
git push -u origin master
( + ?) git checkout -b second origin/second
git push -u origin master
- Where does the Developer download the latest developer Quickstart JAR?
( ) Adobe Software Distribution
( ) Adobe PackageShare
( ) Adobe Experience League
( ) Adobe Enterprise Support
(+) Adobe Software Distribution
–> See https://experienceleague.adobe.com/docs/experience-cloud/software-distribution/home.html
- In which situation would you integrate Cloud Manager with Adobe I/O?
( ) Obtaining Asset metadata
( ) Creating an issue report in a bug tracking system after a pipeline failure
( ) Clearing the dispatcher cache after Cloud Manager has deployed
( ) Updating indexes
( + ) Creating an issue report in a bug tracking system after a pipeline failure
–> See https://experienceleague.adobe.com/docs/adobe-developers-live-events/events/2021/oct2021/integrate-aem-io-events.html?lang=en
- Which two run modes are supported in AEM as a Cloud Service? (Choose two.)
( ) QA
( ) Author
( ) Dynamic _Media
( ) Playground
( ) Dev
( + ) Author
( + ) Dev
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/deploying/overview.html?lang=en#runmodes
OSGI configuration run modes must reference dev, stage, prod for the environment or author, publish for the service. A combination of <service>.<environment_type> is being supported whereas these have to be used in this particular order (for example author.dev or publish.prod)</environment_type></service>
- Which two maintenance tasks in AEM as a Cloud Service can be configured (Choose two)?
( ) Workflow purge
( ) Data Store Garbage collection
( ) Inactive user cleanup
( ) Version purge
( ) Lucene Binary cleanup
( + ) Workflow purge
( + ) Version purge
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/operations/maintenance.html?lang=en
Adobe manages those maintenance tasks which have settings that are NOT configurable by customers, for example:
- Datastore Garbage Collection (fully Adobe owned)
- Audit Log Purge (customer may issue a support ticket requiring different settings)
- Version Purge (customer may issue a support ticket requiring different settings)
Other maintenance tasks can be configured by customers, as described in the table below.
- Ad-hoc Task Purge
- Workflow Purge
- Project Purge
- The Developer needs to get the whitelisted Apache directives. What should the Developer do?
( ) Run httpd whitelist to print that list
( ) Access the whitelist via Developer Console
( ) Run validator whitelist to print that list
( ) Edit the whitelist directives in the host file
( + ) Run validator whitelist to print that list
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/disp-overview.html?lang=en#supported-directives
- A new domain of customer.com needs to be added to the default host file. How would this be accomplished in AEM as a Cloud Service?
( ) Add customer.com to the existing default vhost file
( ) Move the host file to the cloud
( ) Copy the existing host file and add customer.com
( ) Use the Dispatcher SDK to add the URL
( +? ) Add customer.com to the existing default vhost file
( +? ) Copy the existing host file and add customer.com
–> See https://blogs.perficient.com/2022/02/15/ip-whitelisting-through-aem-dispatcher-in-5-easy-steps/
Since src/conf.d/available_vhost/aem_author.vhost file is immutable we will create our own client_aem_author.vhost file by copying the original aem_author.vhost file according to https://helpx.adobe.com/experience-manager/kb/ams-dispatcher-manual/immutable-files.html.
- A Developer wants to define a custom rendition for images. What should the Developer do?
( ) Use the ImageMagick plug-in
( ) Use Dynamic Media
( ) Use Processing Profiles
( ) Use Metadata Profiles
( + ) Use Processing Profiles
–> See https://experienceleague.adobe.com/docs/experience-manager-learn/assets/configuring/processing-profiles.html?lang=en
Dynamic Media can be thought of as Photoshop along a URL.
https://experienceleague.adobe.com/docs/experience-manager-learn/assets/dynamic-media/dynamic-media-overview-feature-video-use.html?lang=en
Static renditions are local versions created upon upload.
Dynamic renditions are only created when requested, like when a webpage window requests it using a URL with required presets as arguments.
- A Developer has created a custom processing profile. When an asset was reprocessed, the renditions were NOT generated per the processing profile definition. What should the Developer do?
( ) Apply the processing profile to the workflow
( ) Apply the processing profile to Dynamic Media
( ) Apply the processing profile to the asset
( ) Apply the processing profile to the folder
(+) Apply the processing profile to the folder
- Given the following code snippet in AEM 6.5:@Properties ({
@Property (
label = “Enabled”,
description =”Enable/Disable the Scheduled Service”
name = “service.enabled”
boolValue = true
),
@Property(
label = “Cron expression defining when this scheduled service will run,default 9 AM”,
description = “[every minute 0 * * * * 1, [12:0lam daily = 0 1 0 ]”,
name = “scheduler.expression”
value = “0 0 9 * * ?”
),}); How should the Developer migrate this code to AEM as a Cloud Service?
( ) Use Sling Event Listeners
( ) Use Sling Model Exporters
( ) Use Polling Importer
( ) Use Sling Schedule Jobs
(+) Use Sling Schedule Jobs
–> See “Long Running Jobs” at https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/migration-journey/readiness.html?lang=en
- A Developer wants to migrate the Dispatcher configuration from an On-Premise AEM installation to AEM as a Cloud Service. What does the Developer need to change?
( ) Merge the changes from the on-premise dispatcher.any file with conf.dispather.d/dispatcher.any
( ) Rename the on-premise dispatcher.any file to dispatcher_vhost.conf and move it to the conf.d directory
( ) Divide the on-premise dispatcher.any file into sections and merge with the files in the conf.dispatcher.d directory
( ) Copy the on-premise dispatcher.any file to the conf.d directory
( + ) Divide the on-premise dispatcher.any file into sections and merge with the files in the conf.dispatcher.d directory
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/validation-debug-legacy.html?lang=en#legacy-mode-file-structure
- A Developer wants to migrate the following project structure to AEM as a Cloud Service:
|----pom.xml | |----core |----ui.apps |----ui.content |----dispatcher
What should the Developer do?
(+)
|—-pom.xml
|—-dispatcher
| |—-pom.xml
| |—-src
|
|—-ProjectA
|—-pom.xml
|—-core
|—-ui.apps
|—-ui.content
- Given the following code snippet for the Dispatcher configuration from an Adobe Managed Services implementation:
<VirtualHost*:443> ... <virtualHosts>
The Developer wants to make this compatible with AEM as a Cloud Service. What changes should to Developer make to the code?
( ) <Virtuallost ***>
</VirtualHost>
( ) <VirtualHost*:4503>
</VirtualHost>
( ) <VirtualHost *.80>
</VirtualHost>
( ) <VirtualHost *: 8000>
</VirtualHost>
(+) <VirtualHost *.80>
</VirtualHost>
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/ams-aem.html?lang=en#remove-or-comment-virtual-host-sections-that-do-not-refer-to-port-80
19 Given the following project structure, and assuming all three projects have the same core module:
|----pom.xml |----dispatcher | |----pom.xml | |----src | |----ProjectA | |----pom.xml | |----core | |----ui.apps | |----ui.content | | |----ProjectB | |----pom.xml | |----core | |----ui.apps | |----ui.content |----ProjectC |----pom.xml |----core |----ui.apps |----ui.content How should the Developer consolidate the core module of all the projects? ( ) Delete it from projects B and C ( ) Update the pom.xml ( ) Move the core module to the parent ( ) Delete it from all projects
(+) Move the core module to the parent
- A customer is having trouble with some search queries and provides the following information:
- The logs show the following warning occurs many times: WARN Traversed 1000 nodes with filter Filter(query=select …)
- The client has more than 100,000 pages stored in their AEM instance
- The client uses a custom page property to help search for pages of a given type
( ) Use the Index Manager to validate the ‘cqPageLucene’ index is enabled.
( ) Set the reindex flag to true for node ‘oak:index/cqPageLucene’.
( ) Create a custom oak index for the custom page property.
( ) Advise the client to reorganize their content by having nodes of no more than 10,000 subnodes.
(+) Create a custom oak index for the custom page property.
- Which property of dispatcher configuration allows some custom HTTP headers to be passed from a client browser to an AEM instance?
( ) /headers
( ) /httpheaders
( ) /passthroughheaders
( ) /clientheaders
(+) /clientheaders
–> See https://experienceleague.adobe.com/docs/experience-manager-dispatcher/using/configuring/dispatcher-configuration.html?lang=en#specifying-the-http-headers-to-pass-through-clientheaders
- An AEM application wants to set up multi-tenancy using Adobe-recommended best practices and bind multiple configurations to it.
Which of the following options is recommended?
( ) ———————————————————————-
import org.osgi.service.component.annotations.Component;
import org.osgi.service.metatype.annotations.Designate;
@Component(service = ConfigurationFactory.class)
@Designate(ocd = ConfigurationFactoryImpl.Config.class, factory=true)
( ) ———————————————————————-
import org.osgi.service.component.annotations.Component;
@Component(service = ConfigurationFactory.class)
( ) ———————————————————————-
import org.apache.felix.scr.annotations.Component;
@Component(label = “My configuration”, metatype = true, factory= true)
( ) ———————————————————————-
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@ObjectClassDefinition(name = “My configuration”)
(+) ———————————————————————-
import org.osgi.service.component.annotations.Component;
import org.osgi.service.metatype.annotations.Designate;
@Component(service = ConfigurationFactory.class)
@Designate(ocd = ConfigurationFactoryImpl.Config.class, factory=true)
- If multiple configurations for the same PID are applicable, which configuration is applied?
( ) The last modified configuration is applied.
( ) The one that occurs first in the repository is applied.
( ) The configuration with the highest number of matching run modes is applied.
( ) A configuration factory is created and all configurations are applied.
(+) The configuration with the highest number of matching run modes is applied.
–> See https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/deploying/configuring-osgi.html?lang=en#runmode-resolution
- A developer is tasked with removing a user from a group on the LDAP server.
What is a way to determine if the process was implemented correctly?
( ) The group must be synchronized with AEM before the user is removed.
( ) The user must be removed in AEM before it is removed from LDAP.
( ) The change will also be reflected on the AEM side straight away.
( ) The change will also be reflected on the AEM side upon synchronization.
(+) The change will also be reflected on the AEM side upon synchronization.
–> See https://experienceleague.adobe.com/docs/experience-manager-65/administering/security/ldap-config.html?lang=en#a-word-on-group-affiliation