用途:诊断阿里云 OSS 事件通知未触发与上传回调失败类问题,例如事件通知规则已配置但消息不到达、上传返回 203 CallbackFailed 且 Error status 为 502、回调服务器收不到请求、确认桶是否配置了通知规则。
主要能力:以只读方式校验调用者身份,用 GetBucketInfo 确认桶存在并获取真实地域,用 GetBucketNotification 读取事件通知规则、用 GetBucketCallbackPolicy 读取桶级回调策略,将用户期望的事件类型与已配置规则比对,并把 CallbackFailed 类错误归因到具体原因(5 秒响应限制、返回体非 JSON、502 或回调服务不可达、HTTPS/SNI 证书、回调参数格式错误)。仅输出有证据的结论,不创建或修改任何规则与策略。
使用方式:所有诊断必须通过 scripts/ 下脚本执行,入口为 oss_event_notification_diagnosis.py,sts_token.py 用于身份检查。先校验调用者身份:python3 scripts/sts_token.py;再运行:cd $SKILL_DIR && python3 scripts/oss_event_notification_diagnosis.py --bucket <name> [--region <region>] [--expected-event <event-type>] [--callback-error "<observed error>"] [--callback-url <url>]。参数中桶名必填;地域可选,脚本会从 GetBucketInfo 重新推导;UID 可省略,由 aliyun sts get-caller-identity 推导并仅作追溯标签,自动填充的参数需在回答中声明。配置或用法类问题需以 --question 调用入口脚本并引用其返回的文档 URL。
适用场景:客户描述匹配「事件通知不触发」「上传回调失败」「CallbackFailed 错误」「callback 502」「回调 5 秒超时」「OSS 事件到 MNS」「x-oss-event-status」等症状时。访问日志追踪、错误码、接入点、计费类问题不属本技能范围,应交给对应兄弟技能。
限制:严格只读,禁止生成或执行任何变更类 OSS API(如 PutBucketNotification、PutBucketCallbackPolicy、DeleteBucketCallbackPolicy、PutObject*、DeleteBucket* 等),也不得为复现或验证问题做上传、带 x-oss-callback 请求或用例桶、用例对象。禁止读取、打印或显式传入 AK/SK/STS,凭证仅由默认凭证链从环境变量解析。无法直接查询 SMQ/MNS 或 EventBridge 的开启状态,只能说明该限制并给出控制台检查路径。不得编造文档 URL 或规则、事件类型、回调状态;查询失败或为空须如实记录。依赖 aliyun CLI 3.3.3 及以上版本,可用 aliyun version 查看、aliyun upgrade --yes 升级。退出码:0 表示结论可用(OK 或部分证据缺失的 DEGRADED),1 表示无可用结论,2 仅表示参数用法错误。