Environnements de développement rapide rapid-development-environments
Pour déployer des modifications, les environnements de développement cloud actuels nécessitent l’utilisation d’un processus qui utilise des règles de sécurité et de qualité de code étendues appelées pipeline CI/CD. Dans les cas où des modifications rapides et itératives sont nécessaires, Adobe a introduit des environnements de développement rapide (RDE).
Les RDE permettent aux développeurs de déployer et d’examiner rapidement les modifications, afin de réduire la durée des tests des fonctionnalités éprouvées dans un environnement de développement local.
Une fois les modifications testées dans un RDE, elles peuvent être déployées dans un environnement de développement cloud standard via le pipeline Cloud Manager.
Vous pouvez visionner d’autres vidéos présentant comment le configurer, comment l’utiliser, et montrant le cycle de vie du développement à l’aide du RDE.
Présentation introduction
Les RDE peuvent être utilisés pour les configurations de code, de contenu et Apache ou Dispatcher. Contrairement aux environnements de développement cloud standard, les développeurs peuvent utiliser des outils de ligne de commande locaux pour synchroniser le code créé localement avec un RDE.
Chaque programme est configuré avec un RDE. S’il existe des comptes Sandbox, ils sont mis en veille après quelques heures d’inutilisation.
Lors de leur création, les RDE sont définis sur la dernière version de Adobe Experience Manager disponible (AEM). Une réinitialisation du RDE, qui peut être effectuée à l’aide de Cloud Manager, enchaîne le RDE et le définit sur la dernière version d’AEM disponible.
En règle générale, un RDE est utilisé par un seul développeur à la fois, à des fins de test et de débogage d’une fonctionnalité spécifique. Une fois la session de développement terminée, le RDE peut être réinitialisé à son état par défaut pour une utilisation ultérieure.
D’autres RDE peuvent être mis sous licence pour des programmes de production (hors sandbox).
Activation du RDE dans un programme enabling-rde-in-a-program
Pour créer un RDE pour votre programme à l’aide de Cloud Manager, procédez comme suit.
-
Connectez-vous à Cloud Manager à l’adresse my.cloudmanager.adobe.com et sélectionnez l’organisation appropriée.
-
Cliquez sur le programme auquel vous souhaitez ajouter un RDE pour en afficher les détails.
- Les RDE peuvent être ajoutés aux programmes sandbox et aux programmes de production.
-
Dans la page Aperçu du programme, cliquez sur Ajouter un environnement dans la carte Environnements pour ajouter un environnement.
-
L’option Ajouter un environnement est également disponible dans l’onglet Environnements.
-
L’option Ajouter un environnement peut être désactivée en raison d’un niveau d’autorisation insuffisant ou de ressources sous licence.
-
-
Dans la boîte de dialogue Ajouter un environnement qui s’affiche :
- Sélectionnez Développement rapide sous l’en-tête Sélectionner le type d’environnement.
- Le nombre d’environnements disponibles/utilisés est indiqué entre parenthèses derrière le type d’environnement.
- Attribuez un Nom à l’environnement.
- Ajoutez une Description de l’environnement (facultatif).
- Sélectionnez une Région Cloud.
- Sélectionnez Développement rapide sous l’en-tête Sélectionner le type d’environnement.
-
Cliquez sur Enregistrer pour ajouter l’environnement spécifié.
L’écran Aperçu affiche désormais votre nouvel environnement dans la carte Environnements.
Lors de la création, les RDE sont définis sur la dernière version d’AEM disponible. Une réinitialisation du RDE, qui peut également être effectuée à l’aide de Cloud Manager, enchaîne le RDE et le définit sur la dernière version d’AEM disponible.
Pour plus d’informations sur l’utilisation de Cloud Manager pour créer des environnements, gérer leur accès et attribuer des domaines personnalisés, consultez la documentation de Cloud Manager.
Installation des outils de ligne de commande RDE installing-the-rde-command-line-tools
Après avoir ajouté un RDE pour votre programme à l’aide de Cloud Manager, vous pouvez interagir avec celui-ci en configurant les outils de ligne de commande comme indiqué ci-dessous :
-
Installez les outils de l’interface de ligne de commande d’Adobe I/O conformément à cette procédure.
-
Installez le plug-in AEM RDE pour les outils de l’interface de ligne de commande d’Adobe I/O :
code language-none aio plugins:install @adobe/aio-cli-plugin-aem-rde aio plugins:update
-
Connectez-vous à l’aide du client aio.
code language-none aio login
Les informations de connexion (jeton) sont stockées dans la configuration d’API globale et ne prennent donc en charge qu’une seule connexion et organisation. Si vous souhaitez utiliser plusieurs RDE nécessitant des connexions ou des organisations différentes, suivez l’exemple ci-dessous pour introduire des contextes.
accordion Suivez cet exemple pour configurer un contexte local pour l’une de vos connexions RDE Créons un contexte appelé « mycontext » que nous définirons ensuite comme contexte par défaut à l’aide du plug-in d’authentification avant d’appeler la commande de connexion.
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 La commande de connexion avec l’option --no-open
génère une URL dans le terminal au lieu d’ouvrir votre navigateur par défaut. Vous pouvez ainsi le copier et l’ouvrir dans une fenêtre incognito de votre navigateur. Ainsi, votre session actuellement connectée dans la fenêtre normale du navigateur ne sera pas touchée et vous pourrez vous assurer d’utiliser la connexion et l’organisation spécifiques nécessaires à votre contexte.La première commande crée une configuration de contexte de connexion, appelée
mycontext
, dans votre fichier de configuration de.aio
local (le fichier est créé si nécessaire). La deuxième commande définit lemycontext
de contexte sur le contexte « courant », c'est-à-dire la valeur par défaut.Une fois cette configuration en place, la commande login stocke automatiquement les jetons de connexion dans le
mycontext
contextuel, le maintenant ainsi en local.Plusieurs contextes peuvent être gérés en conservant les configurations locales dans plusieurs dossiers. Il est également possible de configurer plusieurs contextes dans un seul fichier de configuration et de basculer entre eux en modifiant le contexte « actuel ».
-
Configurez le plug-in RDE pour utiliser votre organisation, votre programme et votre environnement. La commande de configuration ci-dessous fournit de manière interactive à l’utilisateur une liste des programmes de son organisation et affiche les environnements RDE de ce programme parmi lesquels choisir.
code language-none aio aem:rde:setup
L’étape de configuration peut être ignorée si l’intention est d’utiliser un environnement scripté, auquel cas les valeurs d’organisation, de programme et d’environnement peuvent être incluses dans chaque commande. Pour plus d’informations, consultez la section Commandes RDE ci-dessous.
Configuration interactive installing-the-rde-command-line-tools-interactive
La commande setup demande si la configuration fournie doit être stockée localement ou globalement.
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)
Choisir no
à
- stockez l’organisation, le programme et l’environnement globalement dans votre configuration aio.
- utilisez un seul RDE uniquement.
Choisir yes
à
- stocke l'organisation, le programme et l'environnement localement dans le répertoire courant, dans un fichier
.aio
. Cela s’avère pratique si vous souhaitez valider le fichier dans le contrôle de version afin que d’autres personnes clonant le référentiel Git puissent l’utiliser. - utilisez de nombreux RDE afin que le passage à un autre répertoire utilise cette configuration à la place.
- utilisez la configuration dans un contexte de programmation comme un script, qui peut la référencer.
Une fois la configuration locale ou globale sélectionnée, la commande de configuration essaiera de lire votre identifiant d’organisation à partir de votre identifiant de connexion actuel, puis de lire les programmes de l’organisation. Si l’organisation est introuvable, vous pouvez la saisir manuellement avec quelques conseils.
Selected only organization: XYXYXYXYXYXYXYXXYY
retrieving programs of your organization ...
Une fois les programmes récupérés, l’utilisateur peut effectuer une sélection dans la liste et également saisir du texte à filtrer.
Lorsque le programme a été sélectionné, une liste d’environnements RDE s’affiche.
Si un seul programme et/ou environnement de RDE est disponible, il est sélectionné automatiquement.
Pour afficher le contexte d’environnement actuel, exécutez :
aio aem rde setup --show
La commande répond avec un résultat similaire à :
Current configuration: cm-p1-e1: programName - environmentName (organization: ...@AdobeOrg)
Procédure de paramétrage manuel dans un environnement non interactif manual-setup
Pour les environnements dans lesquels aucun utilisateur ne peut exécuter de manière interactive la commande de configuration comme décrit ci-dessus (tels que CI/CD ou scripts), les trois paramètres d’organisation, de programme et d’environnement peuvent être configurés manuellement comme suit.
-
Configurez votre ID d’organisation et remplacez la chaîne alphanumérique par votre propre ID d’organisation.
aio config:set cloudmanager_orgid 4E03EQC05D34GL1A0B49421C@AdobeOrg
- Vous pouvez rechercher votre propre ID d’organisation à l’aide de la méthode décrite dans la section Afficher votre ID d’organisation.
-
Configurez ensuite votre ID de programme :
aio config:set cloudmanager_programid 12345
-
Configurez ensuite l’identifiant d’environnement auquel le RDE va être associé :
aio config:set cloudmanager_environmentid 123456
-
Après avoir configuré le plug-in, connectez-vous en procédant comme suit :
aio login
Ces étapes nécessitent que vous soyez membre du profil de produit Cloud Manager Développeur - Cloud Service. Voir Affecter des membres de l’équipe à des profils de produit Cloud Manager - Attribuer le profil de produit Développeurpour plus d’informations.
Pour plus d’informations et des démonstrations, regardez le tutoriel vidéo comment configurer un RDE (06:24).
Utilisation du RDE lors du développement d’une nouvelle fonctionnalité using-rde-while-developing-a-new-feature
Pour développer une nouvelle fonctionnalité, Adobe recommande le workflow suivant :
-
Lorsqu’un jalon intermédiaire est atteint et validé localement avec AEM as a Cloud Service SDK, validez le code dans une branche de fonctionnalité Git. La branche ne doit pas encore faire partie de la ligne principale, bien que la validation de Git soit facultative. Ce qui constitue un « jalon intermédiaire » varie en fonction des habitudes de l’équipe. Par exemple, quelques nouvelles lignes de code, une demi-journée de travail ou l’achèvement d’une sous-fonctionnalité.
-
Réinitialisez le RDE s’il a été utilisé par une autre fonctionnalité et si vous souhaitez le réinitialiser à un état par défaut. La réinitialisation prend quelques minutes et supprime tout le contenu et le code existants. Vous pouvez utiliser la commande de statut RDE pour confirmer que le RDE est prêt. Le RDE revient avec la version la plus récente d’AEM.
note important IMPORTANT Si vos environnements d’évaluation et de production ne reçoivent pas les mises à jour de version automatique d’AEM et sont derrière la version d’AEM la plus récente, le code s’exécutant sur le RDE peut ne pas correspondre à la manière dont le code fonctionne sur l’évaluation et la production. Dans ce cas, il est particulièrement important d’effectuer des tests approfondis du code lors de l’évaluation avant de le déployer en production. -
À l’aide de l’interface de ligne de commande RDE, synchronisez le code local avec le RDE. Les options incluent l’installation d’un package de contenu, d’une offre groupée spécifique, d’un fichier de configuration OSGI, d’un fichier de contenu et d’un fichier zip d’une configuration Apache/Dispatcher. Il est également possible de référencer un package de contenu distant. Voir Outils de ligne de commande RDE pour plus d’informations. Vous pouvez utiliser la commande Statut pour vérifier que le déploiement a réussi. Vous pouvez éventuellement utiliser le gestionnaire de modules pour installer des packages de contenu.
-
Testez le code dans l’outil RDE. Les URL de création et de publication sont disponibles dans Cloud Manager.
-
Si le code ne se comporte pas comme prévu, utilisez des techniques de débogage standard pour comprendre le problème et effectuez les modifications nécessaires. Sans valider les modifications du code dans Git (puisqu’elles n’ont pas été validées), utilisez l’interface de ligne de commande locale pour synchroniser le code avec l’outil RDE. Continuez ainsi jusqu’à ce que le problème soit résolu.
-
Une fois que le code se comporte comme prévu, validez le code sur la branche de la fonctionnalité Git.
-
Le code synchronisé avec l’outil RDE n’utilise pas de pipeline Cloud Manager. Vous devez donc maintenant utiliser un pipeline Cloud Manager hors production pour déployer la branche de fonctionnalité Git dans l’environnement de développement cloud. Cela permet de confirmer que le code passe les points de contrôle qualité de Cloud Manager et vous permet d’être sûr que le code est déployé ultérieurement à l’aide du pipeline de production Cloud Manager.
-
Répétez les étapes ci-dessus pour chaque jalon intermédiaire jusqu’à ce que tout le code de la fonctionnalité soit prêt et s’exécute correctement dans l’environnement de l’outil RDE et l’environnement de développement cloud.
-
Déployez le code en production au moyen du pipeline de production Cloud Manager.
Utilisation de l’outil RDE pour déboguer une fonctionnalité existante use-rde-to-debug-an-existing-feature
Le workflow est similaire au développement d’une nouvelle fonctionnalité. La différence est que le code synchronisé avec l’outil RDE reflète le libellé Git avec tout ce qui a été envoyé à l’environnement où le problème a été détecté. En outre, il peut s’avérer utile de déployer du contenu correspondant à l’environnement en amont. Pour ce faire, vous pouvez exporter et importer des packages de contenu.
Collaboration de plusieurs développeurs sur le même outil RDE multiple-developers-collaborating-on-the-same-rde
Un outil RDE prend en charge un seul projet à la fois. Comme le code est synchronisé entre un environnement de développement local et l’environnement du RDE, il est plus naturel pour un développeur de l’utiliser seul à un moment donné.
Cependant, avec une coordination étroite, il est possible pour plusieurs développeurs de valider une fonctionnalité spécifique ou de déboguer un problème spécifique. La solution est que chaque développeur conserve ses projets locaux synchronisés de sorte que les modifications de code effectuées par un développeur particulier soient absorbées par les autres développeurs, sinon un développeur risque de remplacer par inadvertance le code de l’autre. La stratégie recommandée est que chaque développeur valide ses modifications dans une branche Git partagée avant la synchronisation avec l’outil RDE, de sorte que les autres développeurs extraient les modifications avant d’apporter les leurs.
Commandes des outils de ligne de commande de l’outil RDE rde-cli-commands
Aide/Informations générales help
-
Pour obtenir une liste des commandes, saisissez :
aio aem:rde
-
Pour obtenir une aide détaillée sur une commande, saisissez :
aio aem rde <command> --help
Indicateurs globaux global-flags
-
Pour une sortie moins détaillée, utilisez l’indicateur calme :
aio aem rde <command> --quiet
Cela supprime certains éléments tels que les éléments à 360° et les barres de progression et limite le besoin de saisie de la part de l’utilisateur.
-
Pour JSON au lieu de la sortie du journal de la console, utilisez l’indicateur json :
aio aem rde <command> --json
Cela renvoie un fichier JSON valide lors de la suppression de toute sortie de console. Voir les exemples JSON plus bas.
-
Pour éviter de configurer les informations de connexion au RDE à l’aide de la commande de configuration ou de toute création de configuration aio, utilisez les trois indicateurs pour l’organisation, le programme et l’environnement :
aio aem rde <command> --organizationId=<value> --programId=<value> --environmentId=<value>
Cela nécessite toujours l’exécution d’une
aio login
.
Déploiement sur l’outil RDE deploying-to-rde
Cette section décrit l’utilisation de l’interface de ligne de commande de l’outil RDE pour le déploiement, l’installation ou la mise à jour de lots, de configurations OSGI, de packages de contenu, de fichiers de contenu individuels et de configurations Apache ou Dispatcher.
Le modèle d’utilisation général est le suivant : aio aem:rde:install <artifact>
.
Vous trouverez quelques exemples ci-dessous :
Déploiement d’un package de contenu deploy-content-package
aio aem:rde:install sample.demo.ui.apps.all-1.0.0-SNAPSHOT.zip
La réponse pour un déploiement réussi ressemble à ce qui suit :
...
#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
Vous pouvez éventuellement référencer un référentiel distant :
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"
Par défaut, les artefacts sont déployés sur les deux niveaux Création et Publication, mais l’indicateur « -s » peut être utilisé pour cibler un niveau spécifique.
Tout package AEM peut être déployé, par exemple des packages comportant du code, du contenu ou un package conteneur (également appelé package « all »).
Déploiement d’une configuration OSGI deploy-OSGI-config
aio aem:rde:install com.adobe.granite.demo.MyServlet.cfg.json
Où la réponse pour un déploiement réussi ressemble à ce qui suit :
...
#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
Déploiement d’un lot deploy-bundle
Pour déployer un lot, utilisez :
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
Où la réponse pour un déploiement réussi ressemble à ce qui suit :
...
#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
Déployer un fichier de contenu deploy-content-file
Pour déployer un fichier de contenu, saisissez la commande suivante :
aio aem:rde:install world.txt -p /apps/hello.txt
Où la réponse pour un déploiement réussi ressemble à ce qui suit :
..
#4: deploy completed for content-file world.txt on author,publish - done by 9E0729C05C54FE1A0B49431C@AdobeID at 2022-09-14T07:49:30.644Z
Déploiement d’une configuration Apache/Dispatcher deploy-apache-config
Pour ce type de configuration, l’ensemble de la structure de dossiers doit se présenter sous la forme d’un fichier zip.
Dans le module dispatcher
d’un projet AEM, vous pouvez compresser la configuration Dispatcher en exécutant la commande maven suivante :
mvn clean package
Ou à l’aide de la commande de compression ci-dessous à partir du répertoire src
du module dispatcher
:
zip -y -r dispatcher.zip .
Déployez ensuite la configuration à l’aide de la commande suivante :
aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-X.X.X-SNAPSHOT.zip
X.X.X
par le numéro de version du projet WKND correspondant ou votre numéro de version spécifique au projet lors du déploiement de la configuration Dispatcher de votre projet.Un déploiement réussi génère une réponse qui ressemble à ce qui suit :
..
#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
Le code déployé sur le RDE n’entre pas dans le cadre d’un pipeline Cloud Manager et de ses points de contrôle qualité associés. Cependant, le code fait l’objet d’une analyse qui signale les erreurs, comme illustré dans l’exemple de code ci-dessous :
$ 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.
L’exemple de code ci-dessus illustre le comportement si un lot n’est pas résolu. Dans ce cas, il est « intermédiaire » et n’est installé que si ses exigences (importations manquantes, dans ce cas) sont satisfaites par l’installation d’un autre code.
Déploiement de la configuration liée au pipeline de configuration (configurations yaml) deploy-config-pipeline
Les configurations spécifiques à un environnement (un ou plusieurs fichiers yaml) décrites dans l’article Utilisation de pipelines de configuration peuvent être déployées comme suit :
aio aem:rde:install -t env-config ./my-config-folder
où my-config-folder est le dossier parent contenant vos configurations yaml.
Il est également possible d’installer un fichier zip contenant l’arborescence de dossiers de configuration :
aio aem:rde:install -t env-config config.zip
Notez que le tableau envTypes du fichier yaml doit inclure la valeur rde, comme dans l’exemple ci-dessous :
kind: "CDN"
version: "1"
metadata:
envTypes: ["rde"]
Déploiement du code front-end en fonction des thèmes du site et des modèles de site deploying-themes-to-rde
Les RDE prennent en charge le code front-end basé sur thèmes du site et modèles de site. Avec les RDE, cette opération s’effectue à l’aide d’une directive de ligne de commande pour déployer des packages front-end, plutôt que le Cloud Manager Pipeline front-end utilisé pour d’autres types d’environnements.
Comme d’habitude, créez votre package front-end à l’aide de npm :
npm run build
Il doit générer un dossier dist/
. De ce fait, votre dossier de packages front-end doit contenir un fichier package.json
et dist
dossier :
ls ./path-to-frontend-pkg-folder/
...
dist
package.json
Vous êtes maintenant prêt à déployer le package front-end sur le RDE en pointant vers le dossier du package front-end :
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
Vous pouvez également compresser le fichier package.json
et dist
dossier , puis déployer ce fichier compressé :
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
- dossier « dist », pour le dossier du package de sortie de génération npm
- fichier « package.json », pour le package de dépendances npm
Vérification du statut du RDE checking-rde-status
Vous pouvez utiliser l’interface de ligne de commande du RDE pour vérifier si l’environnement est prêt à être déployé et pour consulter les déploiements effectués à l’aide du plug-in du RDE.
En cours :
aio aem:rde:status
Renvoie les éléments suivants :
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
Si la commande renvoie une note sur le déploiement des instances, vous pouvez continuer et effectuer la prochaine mise à jour, mais la dernière ne sera peut-être pas encore visible sur l’instance.
Afficher l’historique de déploiement show-deployment-history
Vous pouvez vérifier l’historique des déploiements effectués sur le RDE en exécutant la commande suivante :
aio aem:rde:history
Qui renvoie une réponse sous la forme :
#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
Suppression du RDE deleting-from-rde
Vous pouvez supprimer des configurations et des lots déployés précédemment sur le RDE au moyen de l’outil d’interface de ligne de commande. Utilisez la commande status
pour obtenir une liste des éléments pouvant être supprimés, qui comprend bsn
pour les lots et pid
pour les configurations à référencer dans la commande de suppression.
Par exemple, si com.adobe.granite.demo.MyServlet.cfg.json
a été installé, la référence bsn
est juste com.adobe.granite.demo.MyServlet
, sans le suffixe cfg.json.
La suppression des packages ou fichiers de contenu n’est pas prise en charge. Pour les supprimer, le RDE doit être réinitialisé, ce qui le ramène à un état par défaut.
Consultez l’exemple ci-dessous pour plus de détails :
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
Pour plus d’informations et des démonstrations, consultez le tutoriel vidéo Utilisation des commandes RDE (10:01).
Journaux rde-logging
Comme pour les autres types d’environnements, les niveaux de journal peuvent être définis en modifiant les configurations OSGi. Toutefois, comme décrit ci-dessus, le modèle de déploiement des RDE implique une ligne de commande plutôt qu’un déploiement Cloud Manager. Consultez la documentation de journalisation pour plus d’informations sur l’affichage, le téléchargement et l’interprétation des journaux.
L’interface de ligne de commande du RDE possède également sa propre commande de journal qui peut être utilisée pour configurer rapidement les classes et les packages à consigner et à quel niveau de journal. Ces configurations peuvent être considérées comme éphémères, car elles ne modifient pas les propriétés OSGI dans le contrôle de version. Cette fonctionnalité se concentre sur l’affichage des dernières lignes en temps réel, plutôt que sur la recherche de journaux provenant d’un passé lointain.
L’exemple suivant illustre comment suivre le niveau de création, avec un package défini sur un niveau de journalisation de débogage et deux packages (séparés par des espaces) définis sur un niveau de débogage d’informations. La sortie qui comprend un package auth est mise en surbrillance.
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
d’erreur s’affiche lors de la lecture des commandes de journaux pour le service de création, réinitialisez votre environnement et réessayez. Cette erreur sera générée si votre dernière opération de réinitialisation a eu lieu avant la fin du mois de mai 2024.code language-none |
---|
|
Voir aio aem:rde:logs --help
pour l’ensemble des options de ligne de commande.
Les fonctionnalités incluent les suivantes :
- Déclarer des niveaux de journal par niveau de package ou de classe
- Personnaliser le format de sortie du journal
- jusqu’à quatre configurations de journal actuelles, chacune dans son propre terminal
- mise en surbrillance de journaux spécifiques
Notez que les journaux sont stockés en mémoire sur le RDE et que ces journaux sont recyclés et donc ignorés s’ils ne sont pas en échec ou si le réseau est trop lent.
Réinitialiser reset-rde
La réinitialisation du RDE supprime tout le code personnalisé, les configurations et le contenu des instances de création et de publication. Cette réinitialisation peut s’avérer utile, par exemple, si le RDE a été utilisé pour tester une fonctionnalité spécifique et que vous souhaitez réinitialiser l’environnement à son état par défaut afin de tester une autre fonctionnalité.
Une réinitialisation définit le RDE sur la dernière version d’AEM disponible.
La réinitialisation peut être effectuée au moyen de Cloud Manager ou au moyen de la ligne de commande. La réinitialisation prend quelques minutes et tout le contenu et le code existants sont supprimés du RDE.
[ATTENTION !]
Le rôle de développeur Cloud Manager doit vous être affecté pour utiliser la fonction de réinitialisation. Dans le cas contraire, une action de réinitialisation génère une erreur.
Réinitialiser le RDE par le biais de la ligne de commande reset-the-rde-command-line
Vous pouvez réinitialiser le RDE et le rétablir à son état par défaut en exécutant :
aio aem:rde:reset
Cette opération prend généralement quelques minutes et signale les Environment reset.
en cas de réussite ou les Failed to reset the environment.
en cas d’erreur. Pour une sortie structurée, consultez le chapitre sur --json
sortie ci-dessous.
Utilisez la commande status pour vérifier quand l’environnement est à nouveau prêt.
Réinitialiser le RDE dans Cloud Manager reset-the-rde-cloud-manager
Vous pouvez utiliser Cloud Manager pour réinitialiser votre RDE en procédant comme suit :
-
Connectez-vous à Cloud Manager à l’adresse my.cloudmanager.adobe.com et sélectionnez l’organisation appropriée.
-
Cliquez sur le programme pour lequel vous souhaitez réinitialiser le RDE.
-
Dans la page Aperçu, cliquez sur l’onglet Environnements dans la partie supérieure de l’écran.
-
Vous pouvez également cliquer sur le bouton Tout afficher dans la vignette Environnements pour accéder directement à l’onglet Environnements.
-
-
La fenêtre Environnements s’affiche et répertorie tous les environnements du programme.
-
Cliquez sur le bouton représentant des points de suspension du RDE à réinitialiser, puis sélectionnez Réinitialiser.
-
Confirmez votre choix en cliquant sur Réinitialiser dans la boîte de dialogue.
-
Cloud Manager confirme par une notification de bannière que le processus de réinitialisation a démarré.
Le processus de réinitialisation du RDE dure généralement quelques minutes avant que l’environnement ne retrouve son état par défaut. Vous pouvez consulter le statut de la réinitialisation à tout moment dans la colonne Statut de la vignette Environnements ou dans la fenêtre Environnements.
Vous pouvez également réinitialiser le RDE à l’aide du bouton représentant des points de suspension directement à partir de la vignette Environnements de la page Aperçu.
Pour plus d’informations sur la gestion de vos environnements à l’aide de Cloud Manager, consultez la documentation de Cloud Manager.
Commandes qui prennent en charge la sortie JSON json-commands
La plupart des commandes prennent en charge l’indicateur de --json
global qui supprime la sortie de console et renvoie un fichier json valide à traiter dans les scripts. Vous trouverez ci-dessous quelques commandes prises en charge, avec des exemples de sortie json.
Statut status
Un RDE épuré clean-rde
$ aio aem rde status --json
code language-json |
---|
|
Un RDE avec des lots installés rde-installed-bundles
$ aio aem rde status --json
code language-json |
---|
|
Installer install
$ aio aem rde install ~/Downloads/hotdev.demo.ui.apps.all-1.0.0-SNAPSHOT.zip --json
code language-json |
---|
|
Supprimer delete
$ aio aem rde delete com.adobe.granite.hotdev.demo-1.0.0.SNAPSHOT --json
code language-json |
---|
|
Historique history
$ aio aem rde history --json
code language-json |
---|
|
Réinitialiser reset
Au feu et à l'oubli, pas d'attente fire-no-wait
$ aio aem rde reset --no-wait --json
code language-json |
---|
|
Attente d’achèvement, réinitialisation réussie wait-success
$ aio aem rde reset --json
code language-json |
---|
|
Attente de l’achèvement, échec de la réinitialisation wait-failed
$ aio aem rde reset --json
code language-json |
---|
|
Redémarrer restart
$ aio aem rde restart --json
code language-json |
---|
|
Modes d’exécution runmodes
La configuration OSGI spécifique au RDE peut être appliquée en utilisant des suffixes sur le nom du dossier, comme dans les exemples ci-dessous :
config.rde
config.author.rde
config.publish.rde
Consultez la documentation sur le mode d’exécution pour obtenir des informations générales sur les modes d’exécution.
dev
du bundle.Les RDE sont différents des autres environnements dans lesquels le contenu peut être installé dans un dossier install.rde (ou install.author.rde ou install.publish.rde) sous /apps. Vous pouvez ainsi valider le contenu sur Git et le diffuser dans le RDE à l’aide de l’outil de ligne de commande.
Ajout de contenu populating-content
Lorsqu’un RDE est réinitialisé, tout le contenu est supprimé. Par conséquent, si vous le souhaitez, une action explicite doit être entreprise pour ajouter du contenu. Une bonne pratique consiste à assembler un ensemble de contenu à utiliser comme contenu de test pour valider ou déboguer des fonctionnalités dans le RDE. Il existe plusieurs stratégies possibles pour renseigner le RDE avec ce contenu :
-
Synchronisez explicitement le package de contenu avec le RDE à l’aide de l’outil de ligne de commande
-
Placez et validez l’exemple de contenu dans git dans un dossier install.rde sous /apps, puis synchronisez le package de contenu global avec le RDE à l’aide de l’outil de ligne de commande.
-
Utilisez l’outil de copie de contenu pour copier un jeu de contenu défini à partir d’environnements de production, d’évaluation ou de développement, ou encore d’un autre RDE.
-
Utiliser le gestionnaire de modules
La taille maximale autorisée est de 1 Go lors de la synchronisation de packages de contenu.
En quoi les RDE diffèrent-ils des environnements de développement cloud ? how-are-rds-different-from-cloud-development-environments
Bien que le RDE et l’environnement de développement cloud partagent de nombreuses similitudes, ils diffèrent légèrement au niveau de leur architecture afin de permettre une synchronisation rapide du code. Le mécanisme de transfert du code vers le RDE est différent : pour les RDE, le code est synchronisé à partir d’un environnement de développement local, tandis que pour les environnements de développement cloud, le code est déployé au moyen de Cloud Manager.
Pour ces raisons, il est recommandé, après la validation du code dans un environnement RDE, de déployer le code dans un environnement de développement cloud à l’aide du pipeline hors production. La dernière étape consiste à tester le code avant de le déployer avec le pipeline de production.
Notez également les points suivants :
- Les RDE n’incluent pas de niveau d’aperçu
- Les RDE ne prennent actuellement pas en charge le canal de version préliminaire.
De combien de RDE ai-je besoin ? how-many-rds-do-i-need
Un RDE est disponible pour chaque solution sous licence et Adobe propose également des RDE supplémentaires pouvant être mis sous licence pour les programmes de production (hors sandbox).
Le nombre de RDE requis dépend de la composition et des processus d’une organisation. Le modèle le plus flexible est celui où une entreprise achète un RDE dédié pour chacun de ses développeurs et développeuses AEM Cloud Service. Dans ce modèle, chaque développeur ou développeuse peut tester son code sur le RDE sans se coordonner avec les autres membres de l’équipe pour déterminer si un environnement de RDE est disponible.
À l’inverse, une équipe disposant d’un seul RDE peut utiliser des processus internes pour coordonner les développeurs et développeuses qui peuvent utiliser l’environnement à un moment donné. Ceci peut se produire chaque fois qu’un développeur ou une développeuse atteint un jalon de fonctionnalité intermédiaire et est prêt à effectuer une validation dans un environnement Cloud où il ou elle peut rapidement apporter les modifications dont il a besoin.
Un modèle intermédiaire est un modèle où une organisation achète plusieurs RDE, de sorte qu’il y a une plus grande probabilité qu’un RDE inutilisé soit disponible. Une stratégie pourrait consister à allouer un RDE par équipe Scrum ou fonction majeure. Des processus internes peuvent être utilisés pour coordonner l’utilisation des environnements.
En quoi un environnement de développement rapide (RDE) de Cloud Service d’AEM Forms diffère-t-il des autres environnements ? how-are-forms-rds-different-from-cloud-development-environments
Les développeurs et développeuses Forms peuvent utiliser un environnement de développement rapide de Cloud Service d’AEM Forms pour développer rapidement des personnalisations, des workflows et des formulaires adaptatifs tels que la personnalisation des composants principaux, les intégrations à des systèmes tiers, etc. L’environnement de développement rapide (RDE) de Cloud Service d’AEM Forms ne prend pas en charge les API de communication. Il ne prend pas non plus en charge les fonctionnalités qui nécessitent un document d’enregistrement, comme la génération d’un document d’enregistrement lors de l’envoi d’un formulaire adaptatif. Les fonctionnalités d’AEM Forms répertoriées ci-dessous ne sont pas disponibles dans un environnement de développement rapide (RDE) :
- Configuration d’un document d’enregistrement pour un formulaire adaptatif
- Génération d’un document d’enregistrement lors de l’envoi d’un formulaire adaptatif ou avec une étape de workflow
- Envoyer un document d’enregistrement en tant que pièce jointe avec l’action Envoyer par e-mail ou l’étape E-mail dans un workflow
- Utilisation d’Adobe Sign dans un formulaire adaptatif ou dans une étape de workflow
- API de communication
Tutoriel sur le RDE
Pour en savoir plus sur le RDE dans AEM as a Cloud Service, consultez le tutoriel vidéo qui explique comment le configurer et l’utiliser, ainsi que le cycle de vie du développement (01:25).
# Résolution des problèmes
Dépannage du RDE (#rde-troublehooting)
Comment obtenir la dernière version d’AEM pour un RDE existant get-latest-aem-version
Lors de leur création, les RDE sont définis sur la dernière version de Adobe Experience Manager disponible (AEM). Une réinitialisation du RDE, qui peut être effectuée à l’aide de Cloud Manager ou de la commande aio aem:rde:reset
, enchaîne le RDE et le définit sur la version AEM la plus récente disponible.
Dépannage du plug-in RDE aio aio-rde-plugin-troubleshooting
Erreurs concernant les autorisations insuffisantes insufficient-permissions
Pour utiliser le plug-in RDE, vous devez être membre du profil de produit Cloud Manager Développeur - Cloud Service. Voir Affecter des membres de l’équipe à des profils de produit Cloud Manager - Attribuer le profil de produit Développeurpour plus d’informations.
Vous pouvez également confirmer que vous disposez de ce rôle de développeur si vous pouvez vous connecter à Developer Console à l’aide de la commande suivante :
aio cloudmanager:environment:open-developer-console
Warning: cloudmanager:* is not a aio command.
s’affiche, vous devez installer le aio-cli-plugin-cloudmanager en exécutant la commande ci-dessous :code language-none |
---|
|
Vérifiez que la connexion a bien été établie en exécutant
aio cloudmanager:list-programs
Cela devrait répertorier tous les programmes sous votre organisation configurée et confirmer que le rôle approprié vous a été attribué.
Utilisation du contexte obsolète « aio-cli-plugin-cloudmanager » aio-rde-plugin-troubleshooting-deprecatedcontext
En raison de l’historique de « aio-cli-plugin-aem-rde », le nom de contexte « aio-cli-plugin-cloudmanager » a été utilisé pendant un certain temps. Le plug-in RDE utilise désormais la méthode IMS pour traiter les informations contextuelles, ce qui signifie qu’il existe des options pour stocker les informations contextuelles globalement ou localement, ainsi que pour définir par défaut tous les appels AIO sur une valeur par défaut configurée si vous le souhaitez. Le contexte par défaut configuré est stocké localement et permet aux développeurs de suivre et d’utiliser des contextes individuels et leurs informations dans un dossier. Pour plus d’informations, lisez l’exemple de configuration d’un contexte local ci-dessus.
Les développeurs et développeuses qui utilisent les deux plug-ins, aio-cli-plugin-cloudmanager et aio-cli-plugin-aem-rde et qui souhaitent conserver toutes les informations dans le même contexte ont deux options à leur disposition pour le moment :
Continuer à utiliser le contexte 'aio-cli-plugin-cloudmanager'
Le contexte peut toujours être utilisé. Un avertissement d’obsolescence s’affiche dans le plug-in du RDE. Cet avertissement peut être ignoré en utilisant le mode --quiet
. Les versions plus récentes du plug-in RDE n’offrent plus la possibilité de lire le contexte « aio-cli-plugin-cloudmanager ». Pour continuer à l’utiliser, configurez simplement le contexte par défaut sur « aio-cli-plugin-cloudmanager », voir l’exemple de configuration d’un contexte local ci-dessus.
Utilisez un autre nom de contexte pour le plug-in Cloud Manager.
Les modules externes de Cloud Manager offrent un paramètre pour définir un contexte à utiliser. Il ne prend pas encore en charge la configuration du contexte par défaut IMS. Pour ce faire, configurez le plug-in RDE à l’aide de l’exemple pour configurer un contexte local et indiquez au plug-in Cloud Manager d’utiliser « myContext » comme --imsContextName=myContext
à chaque appel vers celui-ci.