Introduction đ
Dans cet article, jâaborderai trois conseils que les dĂ©veloppeurs devraient prendre en compte lors du dĂ©ploiement dâun nouveau site sans tĂȘte sur XM Cloud. Ayant rĂ©cemment ajoutĂ© un nouveau site sans tĂȘte Ă une solution existante, jâai rencontrĂ© quelques problĂšmes. JâespĂšre sauver dâautres personnes de maux de tĂȘte similaires Ă lâavenir (principalement moi-mĂȘme đ). Si vous avez rĂ©cemment ajoutĂ© un nouveau site sans tĂȘte Ă votre solution XM Cloud et que vous rencontrez des difficultĂ©s pour que le site apparaisse et fonctionne correctement, veuillez continuer Ă lire đ.
1. VĂ©rifiez lâĂ©lĂ©ment de dĂ©marrage du nouveau site đ©
AprĂšs avoir dĂ©ployĂ© votre nouveau site, si vous remarquez que le site nâapparaĂźt pas sur le Sites page de destination dans XM Cloud (https://xmapps.sitecorecloud.io/?tab=tools&tenantName=&organization=), vĂ©rifiez que le site ĂlĂ©ment de dĂ©part le champ est dĂ©fini. Ce champ se trouve sur le site Regroupement de sites Ă©lĂ©ment dont le chemin est (gĂ©nĂ©ralement) le suivant :
/sitecore/content/<site_collection>/<site>/Settings/Site Grouping/<site>
De plus, assurez-vous que lâĂ©lĂ©ment rĂ©fĂ©rencĂ© est physiquement prĂ©sent dans lâarborescence du contenu. Si le ĂlĂ©ment de dĂ©part nâest pas prĂ©sent, le site nâapparaĂźtra pas dans XM Cloud.
VĂ©rifiez que lâĂ©lĂ©ment de dĂ©marrage est dĂ©fini et pointe vers une page rĂ©elle.
Dans mon cas particulier, jâavais initialement mal configurĂ© la sĂ©rialisation pour le nouveau site et exclu par inadvertance le nom du nouveau site. Maison article. Le ĂlĂ©ment de dĂ©part Le champ Ă©tait dĂ©fini, mais il ne pointait vers rien dans lâenvironnement cible, donc mon nouveau site nâapparaissait pas dans XM Cloud đ€Šââïž.
2. VĂ©rifiez les Ă©lĂ©ments de lâhĂŽte de rendu đ€
Si votre nouveau site apparaĂźt dans XM Cloud mais que vous ne pouvez ouvrir aucune page dans Experience Editor ou Preview, il se peut que quelque chose ne fonctionne pas avec les Ă©lĂ©ments de lâhĂŽte de rendu.
Chaque solution XM Cloud comprend un xmcloud.build.json
fichier dans le rĂ©pertoire racine. Il sâagit du fichier de configuration de build XM Cloud ; il contrĂŽle la maniĂšre dont XM Cloud crĂ©e et dĂ©ploie la solution. Ce fichier contient une liste des hĂŽtes de rendu que XM Cloud doit provisionner et dĂ©marrer dans le cadre dâun dĂ©ploiement. Les hĂŽtes de rendu (Ă©galement parfois appelĂ©s « hĂŽtes dâĂ©dition » dans le contexte dâun CM) sont nĂ©cessaires pour piloter les fonctionnalitĂ©s dâĂ©diteur dâexpĂ©rience et dâaperçu de Sitecore. Le xmcloud.build.json
le fichier est assez important et utile ; pour plus dâinformations sur ce fichier et ce quâil peut faire, veuillez vous rĂ©fĂ©rer Ă la documentation officielle ici : https://doc.sitecore.com/xmc/en/developers/xm-cloud/the-xm-cloud-build-configuration.html.
Il devrait y avoir une entrée dans le renderingHosts
propriété du xmcloud.build.json
fichier pour chaque application sans tĂȘte distincte de votre solution. Notez cependant quâil est possible dâexĂ©cuter multiple sites sans tĂȘte avec une seule application principale utilisant le module complĂ©mentaire multisite JSS. Pour plus dâinformations sur les avantages et les inconvĂ©nients de lâune ou lâautre approche, consultez cet article du dĂ©veloppeur Sitecore : https://developers.sitecore.com/learn/accelerate/xm-cloud/pre-development/project-architecture/multisite#web-application.
Pour les besoins de cette astuce, supposons quâil existe deux sites sans tĂȘte, chacun avec sa propre application Next.js sans tĂȘte exĂ©cutant diffĂ©rentes versions de Node (ce qui implique Ă©galement la nĂ©cessitĂ© de deux hĂŽtes de rendu distincts : un hĂŽte de rendu ne peut pas exĂ©cuter plusieurs versions. de Node/Next.js). Disons que xmcloud.build.json
le fichier ressemble à ceci :
{ "renderingHosts": { "mysite1": { "path": "./src/rendering-mysite1", "nodeVersion": "16.15.1", "jssDeploymentSecret":"<redacted>", "enabled": true, "type": "sxa", "lintCommand": "lint", "startCommand": "start:production" }, "mysite2": { "path": "./src/rendering-mysite2", "nodeVersion": "20.14.0", "jssDeploymentSecret":"<redacted>", "enabled": true, "type": "sxa", "lintCommand": "lint", "startCommand": "start:production" } }, ...
Lorsque XM Cloud exécute un déploiement, il lit le xmcloud.build.json
fichier, parcourt le renderingHosts
propriĂ©tĂ© et approvisionne les conteneurs concernĂ©s en coulisses. Une fois le dĂ©ploiement terminĂ©, les Ă©lĂ©ments de lâhĂŽte de rendu dans lâarborescence de contenu sont créés et/ou mis Ă jour sous ce dossier :
/sitecore/system/Settings/Services/Rendering Hosts
Les Ă©lĂ©ments de lâhĂŽte de rendu dans ce dossier sont mappĂ©s aux hĂŽtes de rendu Ă©numĂ©rĂ©s dans le xmcloud.build.json
déposer.
Une chose intéressante à noter est que, quel que soit le nom du premier hÎte de rendu, le xmcloud.build.json
fichier (par exemple, monsite1 dans lâexemple ci-dessus), le dâabord hĂŽte de rendu dans le xmcloud.build.json
Le fichier sera toujours créé dans lâarborescence de contenu de Sitecore avec un nom de DĂ©faut. Les hĂŽtes de rendu N+1 auront les noms rĂ©pertoriĂ©s dans le xmcloud.build.json
déposer. Par exemple (encore une fois, en supposant que xmcloud.build.json
ci-dessus đ), les hĂŽtes de rendu post-dĂ©ploiement dans lâenvironnement XM Cloud cible ressembleraient Ă ceci :
ĂlĂ©ments hĂŽtes de rendu rĂ©sultants dâun dĂ©ploiement XM Cloud.
Une fois que XM Cloud crĂ©e ces Ă©lĂ©ments, il les dĂ©finit comme protĂ©gĂ©s dans lâarborescence de contenu : ces Ă©lĂ©ments ne devrait pas ĂȘtre modifiĂ© en dehors du processus de dĂ©ploiement de XM Cloud.
Si, pour une raison quelconque, vous avez sĂ©rialisĂ© ces Ă©lĂ©ments et les avez remplacĂ©s manuellement (soit en apportant des modifications manuelles, soit en installant un package de contenu), vous pouvez vous retrouver dans une situation oĂč les modifications et mises Ă jour lors des dĂ©ploiements XM Cloud sur ces Ă©lĂ©ments sont ignorĂ©s car Sitecore examine les Ă©lĂ©ments remplacĂ©s. Cela restera un problĂšme jusquâĂ ce que les Ă©lĂ©ments sĂ©rialisĂ©s remplacĂ©s soient nettoyĂ©s Ă lâaide de la CLI Sitecore. itemres cleanup
commande (rĂ©fĂ©rence : https://doc.sitecore.com/xmc/en/developers/xm-cloud/the-cli-itemres-command.html#the-cleanup-subcommand) ou les Ă©lĂ©ments remplacĂ©s sont simplement supprimĂ©s (pour ĂȘtre restaurĂ©s lors du prochain dĂ©ploiement).
Le TL;DR pour cette astuce: ne sĂ©rialisez pas les Ă©lĂ©ments de lâhĂŽte de rendu correspondant aux entrĂ©es dans le renderingHosts
propriété dans le xmcloud.build.json
fileâXM cloud gĂšre ces Ă©lĂ©ments, vous nâavez donc pas Ă le faire.
3. DĂ©finissez le nom et la description de la collection de sites đ
La page de destination des sites XM Cloud a été mise à jour récemment mais, dans le passé, le nom de la collection de sites à laquelle appartenait un site était parfois présenté comme « N/A » :
LâĂ©tiquette de collection dâun site indiquant « N/A ».
Il sâavĂšre quâil existe une section de champ sur les Ă©lĂ©ments de la collection de sites qui permet aux dĂ©veloppeurs de dĂ©finir le Nom et Description pour la collection du site. Certes, au dĂ©part, jâĂ©tais simplement ennuyĂ© par le « N/A » et je voulais un moyen de dĂ©finir le nom de la collection de sites. Cependant, câest gĂ©nĂ©ralement une bonne idĂ©e de nommer et de dĂ©crire vos collections de sites, surtout sâil y en a (ou sâil y en aura) beaucoup. Pour dĂ©finir le Nom et Description champs dâun Ă©lĂ©ment de collection de sites, accĂ©dez Ă lâĂ©lĂ©ment de collection de sites dans lâarborescence de contenu et accĂ©dez au MĂ©tadonnĂ©es section field pour fournir des valeurs pour ces champs :
DĂ©finition du nom et de la description dâune collection de sites.
đ„Ł Assurez-vous de sĂ©rialiser toutes les mises Ă jour de ces Ă©lĂ©ments Ă lâaide de la CLI Sitecore
ser pull
commande (rĂ©fĂ©rence : https://doc.sitecore.com/xmc/en/developers/xm-cloud/the-cli-serialization-command.html#the-pull-subcommand). Les Ă©lĂ©ments de la collection de sites sont contrĂŽlĂ©s par les dĂ©veloppeurs et doivent ĂȘtre cohĂ©rents entre les environnements.
DĂ©sormais, dans lâinterface XM Cloud Sites (et peut-ĂȘtre ailleurs dans le futur), il sera plus facile de diffĂ©rencier les collections de sites et de dĂ©terminer lâobjectif dâune collection de sites donnĂ©e. â
Merci pour la lecture! đ
Source link