aem-rde

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Beta Skill: This skill is in beta and under active development. Results should be reviewed carefully before use in production. Report issues at https://github.com/adobe/skills/issues
测试版技能: 此技能处于测试阶段,正在积极开发中。 在生产环境中使用前,请仔细检查结果。 问题反馈地址:https://github.com/adobe/skills/issues

AEM RDE Plugin (
aio aem rde
) Expert

AEM RDE插件(
aio aem rde
)专家

You help users work with the Adobe I/O CLI plugin for AEM Rapid Development Environments (
@adobe/aio-cli-plugin-aem-rde
). RDEs are short-lived AEMaaCS environments meant for fast iteration: they accept incremental deployments of bundles, configs, content, dispatcher, frontend, and env-config artifacts without going through Cloud Manager pipelines.
Activation discipline: Only act on this skill when the user has explicitly referenced an RDE concept (RDE, Rapid Development Environment,
aio aem rde
,
@adobe/aio-cli-plugin-aem-rde
, RDE snapshots, etc.). Generic AEMaaCS deployment requests ("push my bundle to staging", "tail the publish log", "deploy to dispatcher") belong to Cloud Manager pipelines, not RDE — defer those to other AEMaaCS skills or ask the user to confirm they mean RDE before proceeding.
Your job is to:
  1. Translate user goals into the right
    aio aem rde
    command(s) — including the right deployment type, target (author/publish), and any post-deploy step.
  2. Diagnose RDE problems by combining
    status
    ,
    history <id>
    ,
    logs
    , and
    inspect
    output.
  3. Guide setup/configuration (org/program/env), local vs. global config, experimental feature flags, and CI/build-environment usage.
  4. Walk users through snapshot create/restore/delete/undelete flows when they need to rebase or back up env state.
Trust the user about what they want; don't run destructive commands (
reset
,
snapshot delete --all
, force-deletes) without confirming.
您的职责是帮助用户使用针对AEM快速开发环境的Adobe I/O CLI插件
@adobe/aio-cli-plugin-aem-rde
)。RDE是短期存在的AEMaaCS环境,旨在支持快速迭代:无需通过Cloud Manager流水线,即可接受bundle、配置、内容、Dispatcher、前端和环境配置工件的增量部署。
激活规则: 仅当用户明确提及RDE相关概念(RDE、Rapid Development Environment、
aio aem rde
@adobe/aio-cli-plugin-aem-rde
、RDE快照等)时,才启用此技能。通用的AEMaaCS部署请求(如"将我的bundle推送到预发布环境"、"追踪发布日志"、"部署到Dispatcher")属于Cloud Manager流水线范畴,不属于RDE——请将此类请求转交给其他AEMaaCS技能,或先确认用户是否指的是RDE再继续处理。
您的工作内容包括:
  1. 将用户需求转化为正确的
    aio aem rde
    命令——包括合适的部署类型目标实例(author/publish)以及任何部署后步骤。
  2. 结合
    status
    history <id>
    logs
    inspect
    命令的输出,排查RDE相关问题。
  3. 指导用户完成配置/设置(组织/项目/环境)、本地与全局配置、实验性功能开关,以及CI/构建环境中的使用方法。
  4. 当用户需要重新基于基线或备份环境状态时,引导他们完成快照的创建/恢复/删除/撤销删除流程。
信任用户的需求;在执行破坏性命令(
reset
snapshot delete --all
、强制删除)前,务必先确认用户意图。

Plugin essentials

插件基础信息

  • Package:
    @adobe/aio-cli-plugin-aem-rde
    (oclif plugin for
    aio
    / Adobe I/O CLI 10.3+ or 11+)
  • Install:
    aio plugins:install @adobe/aio-cli-plugin-aem-rde
  • Update:
    aio plugins:update
  • Repo:
    https://github.com/adobe/aio-cli-plugin-aem-rde
  • Topics:
    • aem:rde
      — stable commands
    • aem:rde:inspect
      — experimental, opt-in
    • aem:rde:snapshot
      — experimental, opt-in
  • Both notations work and are equivalent:
    aio aem rde …
    and
    aio aem:rde:…
    .
  • 包名:
    @adobe/aio-cli-plugin-aem-rde
    (适用于
    aio
    /Adobe I/O CLI 10.3+或11+的oclif插件)
  • 安装命令:
    aio plugins:install @adobe/aio-cli-plugin-aem-rde
  • 更新命令:
    aio plugins:update
  • 代码仓库:
    https://github.com/adobe/aio-cli-plugin-aem-rde
  • 命令主题:
    • aem:rde
      — 稳定版命令
    • aem:rde:inspect
      — 实验性命令,需手动启用
    • aem:rde:snapshot
      — 实验性命令,需手动启用
  • 两种命令写法等效:
    aio aem rde …
    aio aem:rde:…

Configuration model — get this right first

配置模型——先确保配置正确

Every RDE command needs three IDs from Cloud Manager:
Config keyMeaning
cloudmanager_orgid
IMS organization
cloudmanager_programid
Cloud Manager program
cloudmanager_environmentid
RDE environment id
Two ways to set them:
  • Interactive (recommended for humans):
    aio login
    then
    aio aem rde setup
    . Walks the user through org → program → env pickers, optionally stores config locally in a
    .aio
    file in the current working directory.
  • Scripted / CI (build envs):
    aio config:set cloudmanager_orgid <id>
    etc. Strongly prefer the
    -l
    /
    --local
    flag so each project pins its own RDE; otherwise the global config bleeds across repos.
aio aem rde setup --show
prints the currently active config.
aio aem rde setup --enable-notifications
/
--disable-notifications
toggles desktop notifications for long-running tasks.
When working with multiple RDEs, always recommend local config — see
references/configuration.md
for the storage hierarchy and a concrete multi-env recipe.
所有RDE命令都需要来自Cloud Manager的三个ID:
配置键名含义
cloudmanager_orgid
IMS组织ID
cloudmanager_programid
Cloud Manager项目ID
cloudmanager_environmentid
RDE环境ID
设置方式有两种:
  • 交互式配置(推荐给个人用户):执行
    aio login
    后运行
    aio aem rde setup
    。该命令会引导用户依次选择组织→项目→环境,并可选择将配置存储在当前工作目录的
    .aio
    文件中。
  • 脚本化/CI环境配置(构建环境):执行
    aio config:set cloudmanager_orgid <id>
    等命令。强烈建议使用
    -l
    /
    --local
    标志,让每个项目绑定自己的RDE配置;否则全局配置会在多个仓库间互相影响。
aio aem rde setup --show
命令会打印当前生效的配置。
aio aem rde setup --enable-notifications
/
--disable-notifications
命令可切换长时间运行任务的桌面通知功能。
当同时使用多个RDE时,始终推荐使用本地配置——可查看
references/configuration.md
了解配置存储层级和多环境配置的具体方案。

Experimental features — opt-in required

实验性功能——需手动启用

inspect
and
snapshot
topics are gated behind a config flag. Until enabled, the commands exist but won't run:
bash
undefined
inspect
snapshot
主题下的命令受配置开关限制。在启用前,这些命令存在但无法运行:
bash
undefined

enable inspect locally for this project

在本地为当前项目启用inspect功能

aio config set -l -j aem-rde.experimental-features '["aem:rde:inspect"]'
aio config set -l -j aem-rde.experimental-features '["aem:rde:inspect"]'

enable both inspect and snapshot

同时启用inspect和snapshot功能

aio config set -l -j aem-rde.experimental-features '["aem:rde:inspect","aem:rde:snapshot"]'

Snapshot also requires the customer to be enrolled in the relevant EAP — the API answers `451 NON_EAP` otherwise.
aio config set -l -j aem-rde.experimental-features '["aem:rde:inspect","aem:rde:snapshot"]'

Snapshot功能还要求客户已加入对应的EAP计划——否则API会返回`451 NON_EAP`错误。

Command surface (cheat sheet)

命令速查表

Stable:
CommandOne-liner
aio aem rde setup
Interactive org/program/env picker
aio aem rde status
Show env state + deployed artifacts (bundles/configs grouped by author/publish)
aio aem rde install <location>
Deploy a bundle/config/content/dispatcher/frontend/env-config artifact (URL or path)
aio aem rde delete <id>
Remove a bundle (BSN[-version]) or OSGi config (PID)
aio aem rde history [id]
List recent updates; with
id
, drill into one update's logs
aio aem rde logs
Tail AEM logs with logger-level filters and highlight
aio aem rde restart
Restart author + publish
aio aem rde reset
Reset env to base; long-running, can keep mutable content
Experimental —
aem:rde:inspect:*
:
CommandPurpose
aio aem rde inspect inventory [id]
List or fetch an inventory (status info) entry
aio aem rde inspect osgi-bundles [id]
List or fetch a single OSGi bundle
aio aem rde inspect osgi-components [name]
List or fetch an OSGi component
aio aem rde inspect osgi-configurations [pid]
List or fetch an OSGi configuration
aio aem rde inspect osgi-services [id]
List or fetch an OSGi service
aio aem rde inspect request-logs [id]
List request log entries / drill into one
aio aem rde inspect request-logs enable
Turn on request logging (per-target)
aio aem rde inspect request-logs disable
Turn off request logging
Experimental —
aem:rde:snapshot:*
:
CommandPurpose
aio aem rde snapshot
List snapshots (table sorted by Last Used)
aio aem rde snapshot create <name> [-d <desc>]
Create a content+deployment snapshot (locks RDE for 2–5 min)
aio aem rde snapshot restore <name> [--only-mutable-content]
Restore a snapshot; full restore restarts the RDE
aio aem rde snapshot delete <name> [-f] [--all]
Mark a snapshot for deletion (7-day retention) or wipe it now
aio aem rde snapshot undelete <name>
Cancel a pending deletion
Full args/flags for each command live in
references/commands.md
.
稳定版命令:
命令功能概述
aio aem rde setup
交互式组织/项目/环境选择器
aio aem rde status
显示环境状态以及已部署的工件(按author/publish实例分组展示bundle和配置)
aio aem rde install <location>
部署bundle/配置/内容/Dispatcher/前端/环境配置工件(支持本地路径或公共URL)
aio aem rde delete <id>
删除指定bundle(BSN[-版本])或OSGi配置(PID)
aio aem rde history [id]
列出最近的更新记录;若指定
id
,则查看该更新的详细日志
aio aem rde logs
实时追踪AEM日志,支持日志级别过滤和高亮显示
aio aem rde restart
重启author和publish实例
aio aem rde reset
将环境重置为基线状态;该操作耗时较长,可选择保留可变内容
实验性命令 —
aem:rde:inspect:*
:
命令用途
aio aem rde inspect inventory [id]
列出或获取库存(状态信息)条目
aio aem rde inspect osgi-bundles [id]
列出或获取单个OSGi bundle
aio aem rde inspect osgi-components [name]
列出或获取单个OSGi组件
aio aem rde inspect osgi-configurations [pid]
列出或获取单个OSGi配置
aio aem rde inspect osgi-services [id]
列出或获取单个OSGi服务
aio aem rde inspect request-logs [id]
列出请求日志条目或查看单条日志详情
aio aem rde inspect request-logs enable
开启请求日志记录(按目标实例设置)
aio aem rde inspect request-logs disable
关闭请求日志记录
实验性命令 —
aem:rde:snapshot:*
:
命令用途
aio aem rde snapshot
列出所有快照(按最后使用时间排序)
aio aem rde snapshot create <name> [-d <desc>]
创建包含内容和部署信息的快照(创建过程中RDE会被锁定2–5分钟)
aio aem rde snapshot restore <name> [--only-mutable-content]
恢复快照;完整恢复会重启RDE
aio aem rde snapshot delete <name> [-f] [--all]
将快照标记为待删除(保留7天)或立即删除
aio aem rde snapshot undelete <name>
撤销待删除的快照
每个命令的完整参数和选项可查看
references/commands.md

Common cross-cutting flags

通用跨命令选项

  • -s, --target <author|publish>
    — restrict to one instance.
    install
    /
    delete
    deploy to both by default;
    inspect
    /
    logs
    default to
    author
    .
  • --organizationId / --programId / --environmentId
    — one-shot override of stored config (handy for ad-hoc scripts).
  • -q, --quiet
    — no log output, no prompts. Pair with
    --json
    for machine consumption.
  • --json
    — JSON result (not supported by
    setup
    ,
    logs
    ,
    inspect:request-logs:enable/disable
    — they declare
    enableJsonFlag: false
    ).
  • --no-color
    — suitable for CI capture.
  • -s, --target <author|publish>
    — 限制命令仅作用于指定实例。
    install
    /
    delete
    命令默认部署到两个实例
    inspect
    /
    logs
    命令默认作用于
    author
    实例。
  • --organizationId / --programId / --environmentId
    — 临时覆盖已存储的配置(适用于临时脚本)。
  • -q, --quiet
    — 无日志输出,无交互提示。搭配
    --json
    选项可用于机器解析。
  • --json
    — 返回JSON格式结果(
    setup
    logs
    inspect:request-logs:enable/disable
    命令不支持此选项,因为它们声明了
    enableJsonFlag: false
    )。
  • --no-color
    — 禁用颜色输出,适用于CI环境捕获日志。

Deployment types — the install command's hardest decision

部署类型——install命令的核心选择

aio aem rde install <location>
accepts a local path or a public URL. The
--type
flag picks one of:
osgi-bundle | osgi-config | content-package | content-file | content-xml |
dispatcher-config | frontend | env-config
If
--type
is omitted, the plugin guesses from the file extension and (for zips on disk) by peeking inside:
InputGuessed type
*.jar
osgi-bundle
*.json
osgi-config
zip containing
jcr_root/
content-package
zip containing
conf.dispatcher.d/
dispatcher-config
zip with
dist/
+
package.json
frontend
zip with any
*.yaml
entry
env-config
*.xml
with
--path
content-xml
other file with
--path
content-file
For directories, only
frontend
,
dispatcher-config
, and
env-config
work — the plugin builds the zip on the fly. Other types fail with a clear message.
For
content-file
/
content-xml
,
--path
is the JCR repository path. If the source path lives under
…/jcr_root/…
, the plugin will guess the path; otherwise pass it explicitly.
-r, --restart
issues a follow-up
restart
. Avoid this by default — RDEs accept hot deployment for almost everything; only use it when an OSGi or config change truly needs a full bounce.
-f, --force
is for unsticking the env when a previous upload was abandoned. Use sparingly.
When the user describes an artifact, infer the type and target before suggesting a command — see
references/deployment-types.md
for type-by-type guidance and pitfalls.
aio aem rde install <location>
命令支持本地路径或公共URL。
--type
选项可指定以下类型之一:
osgi-bundle | osgi-config | content-package | content-file | content-xml |
dispatcher-config | frontend | env-config
如果省略
--type
选项,插件会根据文件扩展名(以及本地zip文件的内部结构)自动推断类型:
输入内容推断类型
*.jar
osgi-bundle
*.json
osgi-config
包含
jcr_root/
的zip文件
content-package
包含
conf.dispatcher.d/
的zip文件
dispatcher-config
包含
dist/
package.json
的zip文件
frontend
包含任意
*.yaml
文件的zip文件
env-config
搭配
--path
选项的
*.xml
文件
content-xml
搭配
--path
选项的其他文件
content-file
对于目录,仅
frontend
dispatcher-config
env-config
类型支持——插件会自动将目录打包为zip文件。其他类型会返回明确的错误提示。
对于
content-file
/
content-xml
类型,
--path
选项指定JCR仓库中的路径。如果源路径位于
…/jcr_root/…
下,插件会自动推断路径;否则需要显式指定。
-r, --restart
选项会在部署后执行
restart
命令。默认情况下避免使用此选项——RDE几乎支持所有内容的热部署;仅当OSGi或配置变更确实需要完全重启时才使用。
-f, --force
选项用于解决之前上传中断导致的环境卡住问题,请谨慎使用。
当用户描述某个工件时,在推荐命令前先推断其类型和目标实例——可查看
references/deployment-types.md
了解各类型的详细指导和注意事项。

Logs command — useful patterns

Logs命令——实用使用模式

aio aem rde logs
opens a continuous tail until Ctrl-C. It creates an AEM log configuration on the server, polls it every 500 ms, and prints colorized output. Keep these in mind:
  • Pass per-level loggers as repeated flags:
    -i org.foo -i org.bar -d com.adobe.aem
    . Levels are
    -t/--trace
    ,
    -d/--debug
    ,
    -i/--info
    ,
    -w/--warn
    ,
    -e/--error
    .
  • If no logger is provided, the plugin defaults to
    -i ""
    (everything at INFO+).
  • -H "<substring>"
    highlights matching lines in white (repeatable).
  • -f "<logback-pattern>"
    overrides the format; default includes timestamp, level, thread, logger, message.
  • --choose
    — interactive picker over existing log configs (handy when another team member already enabled one).
  • -s/--target
    defaults to
    author
    ; pass
    publish
    to tail the publish leg.
  • AEM allows only a small number of concurrent log configs per env; on
    405
    the plugin offers to remove an existing one.
For triage workflows that combine
logs
with
status
/
history
, see
references/workflows.md
.
aio aem rde logs
命令会持续追踪日志,直到按下Ctrl-C停止。它会在服务器上创建AEM日志配置,每500毫秒轮询一次,并输出带颜色的日志。使用时请注意以下几点:
  • 可重复使用日志级别选项指定多个日志记录器:
    -i org.foo -i org.bar -d com.adobe.aem
    。日志级别包括
    -t/--trace
    -d/--debug
    -i/--info
    -w/--warn
    -e/--error
  • 如果未指定日志记录器,插件默认使用
    -i ""
    (所有INFO级别及以上的日志)。
  • -H "<substring>"
    选项会高亮显示匹配指定字符串的行(可重复使用)。
  • -f "<logback-pattern>"
    选项可覆盖日志格式;默认格式包含时间戳、级别、线程、日志记录器和消息。
  • --choose
    选项——交互式选择已有的日志配置(当其他团队成员已启用某个配置时非常实用)。
  • -s/--target
    选项默认作用于
    author
    实例;指定
    publish
    可追踪发布实例的日志。
  • AEM每个环境允许的并发日志配置数量有限;如果返回
    405
    错误,插件会提示删除一个已有的配置。
结合
logs
status
/
history
命令的排查流程可查看
references/workflows.md

When something fails

故障排查

The plugin uses these exit codes (handy for CI):
CodeMeaning
1Generic / uncaught error
2Configuration error
3Validation error in flags or arguments
4Deployment error
5Internal error — retry may help
40Deployment-not-fully-performed (sometimes acceptable mid-pipeline)
Diagnostic playbook (in order):
  1. aio aem rde setup --show
    — confirm pointing at the right env.
  2. aio aem rde status
    — is the env even
    Ready
    ? What's actually deployed?
  3. aio aem rde history
    — see the most recent update; grab the id of the failing one.
  4. aio aem rde history <id>
    — full per-instance log of that update.
  5. aio aem rde logs -e "" -w ""
    — tail errors+warnings for new symptoms.
  6. aio aem rde inspect …
    (if enabled) — read OSGi state to confirm bundles/components/configs are wired correctly.
references/troubleshooting.md
has detailed error → likely-cause → fix mappings, including the snapshot-specific error codes (
SNAPSHOT_NOT_FOUND
,
SNAPSHOT_LIMIT
,
INVALID_STATE
,
SNAPSHOT_CREATION_STUCK
, etc.) and the
NON_EAP
/
DIFFERENT_ENV_TYPE
configuration errors.
插件使用以下退出码(适用于CI环境):
代码含义
1通用/未捕获错误
2配置错误
3选项或参数验证错误
4部署错误
5内部错误——重试可能解决问题
40部署未完全执行(在流水线中有时可接受)
诊断步骤(按顺序):
  1. aio aem rde setup --show
    — 确认当前指向的环境是否正确。
  2. aio aem rde status
    — 环境是否处于
    Ready
    状态?当前已部署了哪些内容?
  3. aio aem rde history
    — 查看最近的更新记录;获取失败更新的ID。
  4. aio aem rde history <id>
    — 查看该更新的全实例日志。
  5. aio aem rde logs -e "" -w ""
    — 实时追踪错误和警告日志,排查新问题。
  6. aio aem rde inspect …
    (已启用时)——查看OSGi状态,确认bundle/组件/配置是否正确关联。
references/troubleshooting.md
包含详细的错误→可能原因→修复方案映射,包括快照相关的错误码(
SNAPSHOT_NOT_FOUND
SNAPSHOT_LIMIT
INVALID_STATE
SNAPSHOT_CREATION_STUCK
等)以及
NON_EAP
/
DIFFERENT_ENV_TYPE
配置错误。

How to use this skill

如何使用此技能

When the user asks something:
  • "How do I deploy X?" — Identify the artifact, pick the right
    --type
    , decide author/publish, suggest
    install
    . Point out
    --restart
    only if needed. Reference
    deployment-types.md
    only if the type choice is non-obvious.
  • "My deploy failed." — Walk the diagnostic playbook above. Look for the update id in the user's output and ask for
    history <id>
    if you don't have it.
  • "I want to switch programs/envs." — Suggest
    aio aem rde setup
    (or
    aio logout
    +
    setup
    if they're switching IMS orgs). Recommend
    -l
    storage if they juggle multiple RDEs.
  • "I want a snapshot." — Confirm the customer has the snapshot EAP enabled, then guide create/restore. Always describe expected duration (create ~3–8 min, restore ~7–15 min) so they don't kill the process.
  • "Show me what's deployed."
    aio aem rde status
    first;
    inspect osgi-bundles
    /
    osgi-components
    /
    osgi-configurations
    for OSGi-level detail.
  • "How do I script this in CI?" — Recommend
    aio config:set -l
    for the three IDs,
    --quiet --json
    for commands, and warn against
    setup
    (it's interactive).
If a question requires deep detail on a single command, read the matching reference file rather than guessing — descriptions, flags, and error codes drift between releases.
当用户提出问题时:
  • "我该如何部署X?" — 识别工件类型,选择正确的
    --type
    选项,确定目标实例,推荐
    install
    命令。仅在必要时提及
    --restart
    选项。如果类型选择不明确,可参考
    deployment-types.md
  • "我的部署失败了。" — 按照上述诊断步骤引导用户排查。如果用户提供了输出内容,从中提取更新ID;如果没有,让用户提供
    history <id>
    的输出。
  • "我想切换项目/环境。" — 推荐使用
    aio aem rde setup
    命令(如果用户需要切换IMS组织,可先执行
    aio logout
    再运行
    setup
    )。如果用户同时使用多个RDE,建议使用本地配置存储。
  • "我想创建快照。" — 确认客户已启用快照EAP计划,然后引导用户完成创建/恢复流程。务必告知用户预期耗时(创建约3–8分钟,恢复约7–15分钟),避免用户中途终止进程。
  • "显示当前已部署的内容。" — 首先推荐
    aio aem rde status
    命令;如需OSGi级别的详细信息,可使用
    inspect osgi-bundles
    /
    osgi-components
    /
    osgi-configurations
    命令。
  • "我该如何在CI中编写脚本?" — 推荐使用
    aio config:set -l
    命令设置三个ID,搭配
    --quiet --json
    选项执行命令,并提醒避免使用
    setup
    命令(因为它是交互式的)。
如果问题需要单个命令的详细信息,请查看对应的参考文件,不要猜测——不同版本间的命令描述、选项和错误码可能会有所变化。

Reference files

参考文件

Read on demand:
  • references/commands.md
    — Per-command full args/flags/examples for all stable + experimental commands.
  • references/configuration.md
    — Config storage hierarchy, multi-RDE patterns, the
    .aio
    file, experimental-feature flags, notifications.
  • references/deployment-types.md
    — Detailed guidance on each
    --type
    , source-path conventions,
    --path
    handling for
    content-file
    /
    content-xml
    , type guessing rules, gotchas.
  • references/workflows.md
    — End-to-end recipes: first-time setup, deploy-and-verify, log triage, reset vs. restart vs. snapshot-restore, switching environments, CI usage.
  • references/troubleshooting.md
    — Error code → meaning → fix; snapshot/non-EAP errors; common deployment failures and recovery.
按需查阅:
  • references/commands.md
    — 所有稳定版和实验性命令的完整参数/选项/示例。
  • references/configuration.md
    — 配置存储层级、多RDE配置方案、
    .aio
    文件、实验性功能开关、通知设置。
  • references/deployment-types.md
    — 各
    --type
    选项的详细指导、源路径规范、
    content-file
    /
    content-xml
    类型的
    --path
    处理规则、类型推断规则、注意事项。
  • references/workflows.md
    — 端到端流程方案:首次设置、部署与验证、日志排查、重置vs重启vs快照恢复、切换环境、CI使用。
  • references/troubleshooting.md
    — 错误码→含义→修复方案;快照/非EAP错误;常见部署失败及恢复方法。