部署和验证

IMPORTANT
AEM Edge函数当前为测试版。 功能和文档可能会更改。 如需反馈,请联系aemcs-edgecompute-feedback@adobe.com

我们的目标是生成动态Edge Delivery Services块,该块调用AEM Edge函数以从第三方API获取动态数据。

第四步,也是最后一步,是将这两个项目部署到您的开发站点,并确认整个流程是端到端的,而不仅仅是本地的。 Edge Delivery Services块和AEM Edge函数位于两个不同的存储库中,因此它们通过两个不同的PR进行提升。 首先查看Edge Delivery Services🔗上的AEM Edge功能部署策略。 它介绍了AEM Edge函数如何绑定到站点和分支,以及每个站点的密码范围设定方式。 此页面是本教程的两个分支的具体顺序。

提升并合并两个PR

  1. 在您的AEM Edge Functions项目中,将PR从estimated-delivery(或您创建的分支)提升到dev分支。 以我为例,请参阅myfrescopa-edge-functions项目PR
  2. 在您的Edge Delivery Services站点项目中,将PR从estimated-delivery(或您创建的分支)提升到您的dev分支。 以我为例,请参阅Frescopa站点项目PR
  3. 查看并合并两者。

这两个公关(PR)是独立的。 合并顺序并不重要,但需要先部署AEM Edge函数,才能在部署的网站上成功调用Edge Delivery Services块,因为该块只是调用路径并依赖于已指向工作代码的CDN路由。

发布页面以使其处于活动状态

发布到预览(返回推送代码并创作块)可使aem up和预览CDN主机可以使用所创作的内容。 开发网站域上的实时流量需要发布到实时的相同页面。 在AEM Sites中,打开页面并以与之前发布到预览相同的方式发布到实时。

将密钥添加到配置管道

模拟的上游调用通过SecretStoreManager.getSecret()读取了CATALOG_API_TOKENDELIVERY_API_TOKEN,即使教程尚未使用实际调用的值。 在config/edgeFunctions.yaml中将两者声明为密钥,引用将配置和密钥与Cloud Manager函数结合使用后,每个站点均带有前缀的Edge管道变量。 在下一步运行管道之前,在Cloud Manager中添加相应的变量。

将密码添加到配置管道

部署CDN配置和AEM Edge功能

在AEM Edge Functions项目的dev分支进行了合并更改后,请首先部署CDN配置,然后部署AEM Edge函数本身。

运行配置管道

查看和部署CDN配置之后,在Cloud Manager中运行Edge Delivery配置管道(确认管道的​ Source代码 ​步骤点位于dev分支而不是main,因此它会提取您刚刚合并的配置)。 由于cdn.yamledgeFunctions.yaml都发生了更改,这将推动新的原点选择器规则并解析您在上一步中添加的机密引用。

在Cloud Manager中运行Edge Delivery配置管道

构建和部署AEM Edge功能

管道成功后,在生成和部署AEM Edge函数项目之后生成和部署函数本身:

$ cd myfrescopa-edge-functions
$ git checkout dev && git pull

# Confirm the CLI context targets the Dev site
$ aio aem edge-functions info

aio aem edge-functions信息确认开发站点域

在生成和部署之前,确认Site Domain与您的开发站点匹配,例如dev-myfrescopa.enablementadobe.com

$ aio aem edge-functions build
$ aio aem edge-functions deploy my-edge-function
NOTE
本教程将从CLI进行部署,以便这些步骤始终可见。 对于实际项目,请改为通过CI/CD部署,这样每次部署都可以以相同的方式运行,而不管是由谁触发的。

验证端点

首先确认AEM Edge函数直接响应:

$ curl "https://dev-myfrescopa.enablementadobe.com/api/frescopa/estimated-delivery?sku=house-blend-medium-roast&postcode=90210"

然后,打开站点并实施Edge Delivery Services块本身:

https://dev-myfrescopa.enablementadobe.com/dev/branches/estimated-delivery

提交表单,并确认结果呈现为来自已部署的AEM Edge函数的实时数据,而不是您在将块连接到AEM Edge函数中看到的本地响应。

打开浏览器的DevTools的“网络”选项卡,并确认请求URL是您网站自己的域,而不是AEM Edge函数的原始调试域。 这确认CDN原点选择器正在路由相对路径相同原点,与为所描述的环境选择正确的URL完全相同。

网络选项卡,显示通过CDN 以相同来源路由的预计投放请求

如果请求在此处失败但在本地工作,请首先检查CDN源选择器规则(路径originName,并且管道实际运行了),然后检查AEM Edge函数的生成和部署输出是否存在错误。

进一步提升

若要将此功能从dev移动到stagemain,请按照通过站点提升代码对每个站点重复合并、部署和验证顺序。

摘要

您实施了AEM Edge函数处理程序,该处理程序可合并两个上游调用;构建了一个用于调用它的Edge Delivery Services块;使用环境感知型URL切换和CORS将这两个调用连接在一起;并将这两个调用部署到了实时站点。

其他资源

recommendation-more-help
experience-manager-learn-help-cloud-service