mcpField
T
temporal-ops

temporal-ops

github.com/temporalio云与 DevOps258 次安装6 周前更新
代码仓库

关于 temporal-ops

temporal-ops 是用于管理和诊断运行中 Temporal 环境的技能,面向运维人员。它区分 Cloud 与自托管操作,并通过分层检查排查故障;不涵盖工作流代码开发。

主要功能

  1. 01执行 Temporal 环境运维任务
  2. 02分层诊断运行故障
  3. 03区分 Cloud 与自托管后端
  4. 04破坏性操作前征求确认
  5. 05诊断结论附置信度
  6. 06按意图路由到操作指南

适用场景

  1. 01管理命名空间、密钥和证书
  2. 02查找卡住或异常的工作流
  3. 03按网络至工作流层排查故障
  4. 04评估批量操作影响并验证结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/temporalio/skill-temporal-ops --skill temporal-ops

安装后在 Claude Code 中输入/temporal-ops确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
.gitignore
AGENT-PERMISSIONS.md
README.md
.github/
CODEOWNERS
references/ops/
cli-conventions.md
cloud-audit-logs.md
cloud-capacity.md
cloud-billing.md
cloud-certs.md
cloud-migration.md
cloud-connectivity.md
cloud-iam.md
cloud-notifications.md
cloud-namespace-admin.md
cloud-ops-api.md
cloud-terraform.md
recipes.md
self-hosted-admin.md
cloud-saml-scim.md
workflow-health.md
references/triage/
authentication.md
blob-size-limits.md
connectivity.md
ha-failover.md
non-determinism.md
performance-bottlenecks.md
rate-limits.md
certificates.md
diagnostic-ladder.md

详细介绍

技能:temporal-ops

概述

此技能用于操作和诊断 Temporal 环境。它有两种模式:

  • **运维:**用户想要执行某项操作——创建命名空间、轮换密钥、检查容量、查找不健康的工作流、取消一批工作流、设置导出。此技能会执行合适的命令并解读输出。
  • **诊断:**用户遇到了某种症状——工作流卡住、证书错误、连接超时、非确定性恐慌。此技能会通过自底向上的分层诊断来引导调查,直到找到根本原因,并给出置信度评分。

此技能不讲解如何编写工作流或活动(请使用 skill-temporal-developer),也不会列出详尽的 CLI 标志表——请运行 temporal <cmd> --help 查看相关内容,并参阅 cli-conventions.md 了解跨命令的 CLI 约定。适用范围是:用户需要管理或排查正在运行的 Temporal 环境时,使用此技能。

不在适用范围内

  • 编写工作流、活动或 SDK 代码 → skill-temporal-developer。
  • 详尽的 CLI 标志/命令参考 → 运行 temporal <cmd> --help;跨命令的 CLI 约定 → cli-conventions.md。
  • Worker 性能调优、规格配置、容量规划 → skill-temporal-workertuning。
  • 可自托管环境的 Helm、Kubernetes、数据库管理、监控栈配置——超出 CLI 的适用范围。

如果对话转向上述某个领域,应交由相关的同级技能处理,而不是临场发挥。

原则

运维规范

当用户想要执行运维任务时:

  1. **确认意图和后端。**这是 Cloud 操作(tcld)还是自托管操作(temporal operator)?数据平面操作(temporal workflow、temporal batch 等)两者均适用。如果后端不明确,先询问再继续——不要假定是 Cloud 或自托管,也不要在确认前输出特定环境的命令。
  2. **执行命令并解读输出。**运行文档中指定的命令,读取结果并说明其含义;如果用户要求执行操作,则据此采取行动。只读命令(get、list、describe、count、show)可直接运行。凡是列在破坏性操作下的操作,都应先向用户提出。
  3. **验证结果。**执行更改操作后,确认新状态符合用户意图。
破坏性操作

如果某项操作不可逆(tcld namespace delete)、会撤销某个有效身份的访问权限(tcld apikey delete)、会转移生产流量(tcld namespace failover),或会扩展到所有匹配项(任何形式的 --query),则属于此级别。对当前操作应用此判断——这是一条规则,而不是一份清单;某条命令未出现在此技能的任何清单中,并不意味着它不属于此级别。

对于此级别内的任何操作:收集证据并提出建议。不要主动执行,也不要为了了解其效果而执行。每条命令的参考文件都说明了其具体影响范围;提出建议前先阅读,而不是之后再读。

  1. 用数字说明影响范围,而非描述。 对于任何形式的 --query,先运行 temporal workflow count --query '<query>',并确保查询内容逐字节一致,然后将结果纳入建议。如果筛选条件除了 ExecutionStatus="Running" 外没有进一步缩小范围的谓词,则会匹配该 Namespace 中所有未关闭的 Execution。
  2. 说清目标。 明确说明准确的命令、目标以及该命令解析到的 Namespace。连接设置可能来自 TEMPORAL_* 环境变量或配置文件中的配置,因此目标通常无法从命令文本中看出。如果后端或 Namespace 是根据上下文推断出来的,而非用户明确说明的,请指出这一点——误将破坏性命令指向错误 Namespace,是最常见的出错原因。
  3. 明确询问,然后执行至完成。 将命令、目标以及(对于任何形式的 --query)第 1 步得到的数量作为直接问题交给用户,并等待答复。用户批准后,对于 --query 批量操作,使用 --yes 运行;该标志可让已获批准的批量操作完成,因为交互式提示需要终端,而没有终端时命令会报告 user denied confirmation 并且不执行任何操作。--yes 只能用于用户已批准的命令,绝不能用于重试因提示确认失败的命令。不要改用循环逐个执行 workflow terminate --workflow-id。批准仅适用于针对单一目标的一条命令;不能沿用到下一条命令、更宽泛的查询或第二个 Namespace。
  4. 验证,并了解中止方法。 重新运行相应的 get、describe 或 count。批量作业会异步处理:temporal batch describe --job-id <id> 会显示处理进度;temporal batch terminate --job-id <id> 可在作业处理完所有匹配项之前将其停止。

如果存在能达到相同目标的可逆替代操作,也一并提出:cancel 会让 Workflow 清理代码运行,而 terminate 不会;apikey disable 可撤销,而 delete 不可撤销;accepted-client-ca add 会追加,而 set 会替换。

不要假设环境会替你拦截破坏性命令。凭据权限范围、命令拒绝名单和确认提示可能已配置,也可能没有;即便可能存在,也不能因此跳过上述任何步骤——用户所依赖的安全保障就是你。

诊断规范

当用户遇到故障或异常时:

  1. 自底向上诊断。 先验证底层,再判断上层是否有问题。各层从底到顶依次为:

    1. DNS / 网络路径
    2. TCP / 端口连通性
    3. TLS 握手
    4. 身份验证(API 密钥或 mTLS 客户端证书)
    5. gRPC 健康状态和 Temporal 前端连通性
    6. Temporal 命名空间、任务队列、工作器
    7. 工作流代码(确定性、信号、计时器、子工作流)

    完整的诊断阶梯见 diagnostic-ladder.md。

  2. 始终验证上一层,不要给出臆测的修复方案。如果 TLS 正常,先证明身份验证正常,再判断工作流是否有问题。如果轮询器存在,先确认工作流的最后一个事件,再判断工作器是否有问题。

  3. 为每项诊断建议附上置信度分数(1-10):

    • 9-10:症状、操作和确认信号清晰吻合。
    • 6-8:证据充分,但至少还有一种可能的解释。
    • 1-5:问题仍不明确;此时的“修复”应是下一项有助于区分原因的检查,而非根本原因。
  4. 明确指出模糊之处。 context deadline exceeded 之类的错误无法说明具体原因;而 RESOURCE_EXHAUSTED 这样的单一代码可能表示多种情况(账户限额导致的限流,或每个 Workflow 的锁争用)。应指出这一点、收集更多上下文,并将下一步范围限定清楚。

这些是技能规范,并非从文档中得出的事实。

意图路由

运维

找到与用户意图相符的行。参考文件中包含相关命令和操作步骤。

意图类别参考
创建、获取、列出、删除 Cloud 命名空间Cloud 命名空间管理cloud-namespace-admin.md
添加/移除区域、故障转移、HA 配置Cloud 命名空间管理cloud-namespace-admin.md
设置保留期限、标签、codec-server、连接规则Cloud 命名空间管理cloud-namespace-admin.md
添加或重命名 Cloud 搜索属性Cloud 命名空间管理cloud-namespace-admin.md
检查当前 APS / 容量模式Cloud 容量cloud-capacity.md
切换 On-Demand ↔ Provisioned、设置 TRUCloud 容量cloud-capacity.md
了解 APS / RPS / OPS 限制和限流Cloud 容量cloud-capacity.md
创建、禁用、启用、删除 API 密钥Cloud IAMcloud-iam.md
邀请、列出、移除用户;设置角色/权限Cloud IAMcloud-iam.md
管理用户组和服务账户Cloud IAMcloud-iam.md
生成 mTLS 证书、上传 CA、设置证书筛选器Cloud 证书cloud-certs.md
轮换 mTLS 证书Cloud 证书cloud-certs.md
设置 Workflow History Export(S3 / GCS)Cloud 命名空间管理cloud-namespace-admin.md
设置 PrivateLink / PSC、管理连接规则Cloud 连接cloud-connectivity.md
自托管集群健康状况、描述、命名空间 CRUD自托管管理self-hosted-admin.md
自托管搜索属性、Nexus 端点自托管管理self-hosted-admin.md
检查或管理 Cloud Nexus Endpoint 的调用方命名空间允许列表;1,000 个调用方的默认值Cloud 命名空间管理cloud-namespace-admin.md#tcld-nexus-endpoint-allowed-namespace
通过列表查询查找卡住/挂起/不健康的工作流工作流健康状况workflow-health.md
任务队列轮询器状态、工作流计数工作流健康状况workflow-health.md
取消、终止或重置工作流工作流恢复workflow-stuck.md#recovery-commands
对工作流执行批量操作(--query)CLI 约定cli-conventions.md
Schedule CRUD、时间规范和操作CLI 约定cli-conventions.md
在外部完成或使活动失败CLI 约定cli-conventions.md
Cloud Ops API 访问、速率限制、Go SDKCloud Ops APIcloud-ops-api.md
查看账单、生成账单报告、成本归属Cloud 账单cloud-billing.md
审计日志:查看、通过 API 查询、配置接收端(AWS/GCP)Cloud 审计日志cloud-audit-logs.md
Terraform provider:Namespace/User/SA/API Key/Nexus CRUDCloud Terraformcloud-terraform.md
到期提醒(证书、API 密钥、额度)、状态页面Cloud 通知cloud-notifications.md
SAML SSO、SCIM 配置、IdP 集成Cloud SAML/SCIMcloud-saml-scim.md
将自托管迁移到 Cloud(自动或手动)、在 Cloud 区域之间迁移Cloud 迁移cloud-migration.md
端到端运维手册(设置、轮换、审计、账单、Terraform)运维方案ops/recipes.md
诊断

找到与用户症状相符的行。从第一项检查开始调查,然后阅读链接的参考资料。

症状类别首要检查参考
connection refused,无法访问前端连接问题nc -zvw10 <host> 7233connectivity.md#connection-refused
no such host,DNS 解析失败连接问题dig +short <host> 或 nslookup <host>connectivity.md#dns
tls: handshake failure,服务端拒绝握手证书openssl s_client -connect <host>:7233 -servername <host> </dev/nullcertificates.md#handshake-failure
x509: certificate has expired 或 not yet valid证书openssl x509 -enddate -noout -in cert.pemcertificates.md#expired-or-not-yet-valid
x509: certificate signed by unknown authority证书openssl verify -CAfile ca.pem client.pemcertificates.md#unknown-authority
tcld 会话/身份验证失败,Cloud 角色不明确身份验证tcld account getauthentication.md#cloud-role-and-permission-model
UNAUTHENTICATED,API 密钥被拒绝身份验证env | grep -i TEMPORAL_API_KEY,然后运行 tcld apikey get --id <apikey_id>authentication.md#things-to-check-when-unauthenticated-is-returned-with-an-api-key
使用 API 密钥时出现 namespace not found/命名空间字符串错误身份验证确认区域端点格式为 <region>.<cloud_provider>.api.temporal.io:7233authentication.md#address-form-for-api-key-connections
gRPC 状态为 RESOURCE_EXHAUSTED速率限制确认触发了哪项限制:Cloud v1 检查节流指标,v0/自托管环境检查 resource_exhausted_cause 标签rate-limits.md#identifying-which-limit-was-hit
任务队列未显示轮询器Worker 健康状况temporal task-queue describe --task-queue <q>worker-health.md#what-no-pollers-looks-like
工作流卡在待处理的活动/计时器/子工作流/信号上工作流卡住temporal workflow describe --workflow-id <id>workflow-stuck.md#the-primary-inspection-command-temporal-workflow-describe
NondeterminismError,WorkflowTaskFailed 反复出现非确定性在事件历史记录中找出最后一次 WorkflowTaskFailed 的原因non-determinism.md#the-wft-failure-signature-of-non-determinism
本地重放失败,但生产工作流曾在运行非确定性获取历史记录,并在一次测试中运行 SDK 重放器replay.md#step-2--run-the-sdk-replayer-all-supported-sdks
HA 故障转移未将流量路由到故障转移区域HA 故障转移比较 tcld namespace get --namespace <ns>.<acct> 的结果与 DNS CNAMEha-failover.md#start-here-establish-ground-truth
Namespace 故障转移后,Serverless Worker(AWS Lambda)停止处理任务HA 故障转移确认存在 FailoverNamespace 审计事件,然后将新的活动区域与 Worker Deployment Version 上的 Lambda ARN 进行比较ha-failover.md#symptom-serverless-workers-kept-running-in-the-old-region-after-failover
context deadline exceeded(未知层级)运行时错误确定发出该错误的操作和 SDKruntime-errors.md#deadline-exceeded
向单个 Workflow 发送信号/更新/查询时出现 Workflow is busy/ResourceExhausted(BusyWorkflow)运行时错误先排除账号级限制导致的节流,再按 operation 拆分 temporal_cloud_v1_resource_exhausted_error_countruntime-errors.md#workflow-lock-contention-busyworkflow
PAYLOADS_TOO_LARGE、exceeds size limit、载荷/gRPC Blob 大小错误Blob 大小限制检查问题涉及载荷(2 MB)还是 gRPC 消息(4 MB)blob-size-limits.md
工作流卡在不可见的重试循环中(gRPC 消息过大)Blob 大小限制检查 Worker 日志中是否有 ResourceExhausted,并减小批次大小blob-size-limits.md
调度到启动延迟高、任务槽位耗尽、Workflow Task 缓慢性能瓶颈检查 temporal_workflow_task_schedule_to_start_latency 的 P95performance-bottlenecks.md
重放延迟高、缓存逐出、检测到死锁性能瓶颈检查 workflow_task_replay_latency 和粘性缓存指标performance-bottlenecks.md
Schedule 未触发,错过补偿执行窗口Schedule 操作遗漏针对 temporal_cloud_v1_schedule_missed_catchup_window_count 设置警报schedule-missed.md
如果某个症状无法对应表格中的任何一行,请从 diagnostic-ladder.md 开始,并从最后一个已确认正常的层级向上排查。

流程

运维路径
第 1 步:确定意图和后端

确定用户想要执行的操作,以及目标是:

  • Temporal Cloud → 使用 tcld 命令(需要 tcld login)
  • 自托管集群 → 使用 temporal operator 命令
  • 数据平面(任一后端) → 使用 temporal workflow、temporal batch、temporal schedule 等命令

如果上下文已明确后端——.tmprl.cloud 地址、tcld 命令、Cloud 命名空间格式 ns.account → Cloud;Kubernetes/Helm、docker-compose、自托管配置文件 → 自托管——则直接继续,无需询问。**否则,请先停止并询问:“你使用的是 Temporal Cloud 还是自托管?”然后再输出任何特定于环境的命令。**不要默认选择任一环境。确认后,将答案保存到记忆中,以便今后的对话中不再询问。

第 2 步:执行并解读

在上方的运维表格中查找对应意图。阅读链接的参考文件,了解准确的命令、标志和预期输出。运行命令,并为用户解读结果。

第 3 步:验证

执行变更操作(创建、更新、删除、轮换)后,确认新状态:

  • 重新运行相应的 get 或 describe 命令
  • 确认输出符合用户意图
  • 报告结果
诊断路径
第 1 步:确定症状

请用户提供准确复制粘贴的错误文本。不要接受转述——准确的字符串通常能指明故障层级(例如,x509: 前缀表示 TLS/证书层,RESOURCE_EXHAUSTED: 前缀表示 gRPC 速率限制,NondeterminismError 表示工作流重放层)。请注意,仅凭 RESOURCE_EXHAUSTED 无法判断触发了哪种情况——账户限额节流和单个 Workflow 锁竞争(Workflow is busy,即 BusyWorkflow)共用同一代码。请按标签拆分资源耗尽指标(Cloud v1 系列使用 operation,v0 和自托管使用 resource_exhausted_cause),不要解析自由文本消息。

继续之前,请确认以下三点:

  • 运行了什么命令,或者哪个 SDK 调用产生了错误?
  • 错误来自什么环境(本地开发服务器、自托管集群、Temporal Cloud)?如果上下文已明确(地址、命令、命名空间格式),则无需询问——**但如果不确定,请现在询问,然后再继续诊断。**将答案保存到记忆中,以便今后的对话使用。
  • 最近有什么变更(新部署、新证书、新命名空间、新区域)?
第 2 步:收集上下文

调查所需的上下文取决于问题类别。至少需要:

  • **对于任何 Cloud 身份验证 / 连接问题:**身份验证方法(API 密钥或 mTLS)、准确地址、准确命名空间、SDK 及其版本。端点系列因身份验证方法而异——请参阅 connectivity.md#endpoint-formats。对于私有连接(PrivateLink / PSC),TLS 服务器名称覆盖项也因身份验证方法而异——请参阅 cloud-connectivity.md。
  • **对于卡住的工作流:**命名空间、工作流 ID、运行 ID,以及 temporal workflow describe --workflow-id <id> 的输出(待处理操作状态位于此处,而不只是在事件历史中)。通过 temporal workflow show 查看事件历史,可作为补充视图。
  • **对于 Worker 健康问题:**Worker 日志(注册错误、身份验证错误、panic)、temporal task-queue describe --task-queue <q> 的输出,以及用于查看各 Worker 详细信息的 temporal worker describe --task-queue <q>。
  • **对于非确定性错误:**包含错误的 Worker 日志行、工作流类型名称,以及访问历史记录 JSON 的权限。
步骤 3:验证粘贴的 SDK 配置(如有)

如果用户粘贴了 SDK 连接代码——哪怕只有地址、命名空间或身份验证字段——也要在沿梯子向上排查之前,根据 sdk-snippet-review.md 进行检查。端点类型错误、命名空间过短或身份验证方式不匹配,都会让下面所有网络层探测看起来都出了问题,即使实际上更底层并没有问题。

如果用户已有经过验证、此前正常工作的配置,且症状是新出现的,则跳过此步骤——问题不在代码片段,而是环境发生了变化。其他情况下,将代码片段验证视为第 0 层。

步骤 4:沿梯子向上排查

使用 diagnostic-ladder.md 选择合适的起始层。一般来说:

  • 身份验证/连接/证书相关症状 → 从第 1 层(DNS)开始,逐层向上排查。
  • Worker/任务队列相关症状 → 从第 6 层(命名空间 + 轮询器)开始。
  • 工作流卡住/确定性相关症状 → 从第 7 层(工作流代码)开始,但要先确认第 6 层(Worker 确实在轮询)。

每一层都有一条用于确认其正常的命令,以及一种故障特征,可据此判断问题是在该层还是更高层。

步骤 5:修复并验证

针对根本原因提出修复方案。然后重新运行该层的健康检查命令,并在可能时重试用户最初的操作,以验证修复结果。为诊断附上置信度评分。

如果修复所在层的上一层仍然失败,请返回步骤 4,继续逐层向上排查——最先出现故障的层往往不是唯一的问题所在。

前提条件

  • Temporal CLI(temporal)——数据平面操作和可自托管管理所必需。安装:brew install temporal,或参阅 Temporal CLI 文档。
  • tcld——Cloud 操作所必需。安装:brew install temporal-cloud-cli,或参阅 tcld 文档。使用前请通过 tcld login 进行身份验证。

参考文件

操作
  • cloud-namespace-admin.md — 通过 tcld 管理 Cloud 命名空间生命周期:创建、获取、列出、删除、故障转移、添加区域、保留期、标签、codec-server、高可用配置、连接规则、搜索属性、accepted-client-ca、证书筛选器、导出,以及 tcld nexus endpoint allowed-namespace 调用方允许列表(Access Policy 上限为 1,000 个调用方)。
  • cloud-capacity.md — 容量模式(按需 / 预配置)、APS/RPS/OPS 定义、TRU、tcld namespace capacity update、默认限制、节流、APS 管理最佳实践。
  • cloud-iam.md — API 密钥生命周期(tcld apikey)、用户(tcld user)、用户组(tcld user-group)、服务账号、账号操作(tcld account)、角色、命名空间权限。
  • cloud-certs.md — mTLS 证书管理:使用 tcld generate-certificates 生成证书、上传 CA、证书筛选器、证书轮换、在 mTLS 与 API 密钥之间切换。
  • cloud-connectivity.md — 专用连接(AWS PrivateLink / GCP PSC)、连接规则:设置、规则参数、tcld 命令、将规则关联到命名空间。
  • cloud-migration.md — 迁移路径:自托管到 Cloud 的自动迁移(S2S 代理、tcld migration 命令、5 个阶段)、自托管到 Cloud 的手动迁移(客户端变更、工作流策略)、Cloud 内部区域到区域迁移(高可用添加区域 / 故障转移)。
  • cloud-ops-api.md — Cloud Ops API:HTTP 和 gRPC 端点(saas-api.tmprl.cloud)、Go SDK、protobuf 编译、速率限制(账号 160 RPS、用户 40、SA 80、并发异步请求 10)、API 版本标头、用例。
  • cloud-billing.md — Cloud 计费:Billing Center(发票、额度、计划、按命名空间统计的费用)、Usage Dashboards、Billing API:异步生成 CSV 报告、兼容 FOCUS 的格式、27 列报告架构、日期范围限制。
  • cloud-audit-logs.md — Cloud Audit Logs:支持的控制平面事件(Account、API Keys、Connectivity Rules、Namespace、Export、Nexus、Service Accounts、User、User Groups)、JSON 格式、API 访问(保留 30 天)、AWS Kinesis 和 GCP Pub/Sub 接收器配置。
  • cloud-terraform.md — Terraform 提供程序:设置(TEMPORAL_CLOUD_API_KEY)、temporalcloud_namespace/temporalcloud_user/temporalcloud_service_account/temporalcloud_apikey/temporalcloud_nexus_endpoint 的 CRUD、导入、数据源(区域、命名空间)、限制(API 密钥不可导入,无法管理 Account Owner)。
  • cloud-notifications.md — Cloud 通知:证书过期(提前 15/10/5 天)、API 密钥过期(提前 30/20/10 天)、额度消耗 / 过期提醒、计划变更、故障转移事件、接收者角色、发件人 [email protected]。
  • cloud-saml-scim.md — SAML SSO(Entra ID、Okta):实体标识符(urn:auth0:prod-tmprl:ACCOUNT_ID-saml)、回调 URL(login.tmprl.cloud)、IdP 配置步骤、支持工单流程。SCIM:支持的供应商、前提条件(先配置 SAML)、10 分钟同步窗口、组到角色的映射。
  • self-hosted-admin.md — 通过 temporal operator 管理自托管控制平面:集群运行状况 / 描述、命名空间 CRUD、搜索属性创建 / 列出 / 移除、Nexus 端点 CRUD。
  • workflow-health.md — 数据平面运行状况查询:使用 List Filters 执行 temporal workflow list,temporal workflow describe/show/count,使用 temporal task-queue describe 查看轮询器状态。
  • cli-conventions.md — 跨命令的 temporal CLI 约定:连接 / 身份(TEMPORAL_* 环境变量 ↔ --address/--namespace/--api-key、--identity)、输出 / 格式(--output、--time-format、payload 简写)、--query ⇒ 批处理作业桥接(结合 temporal batch describe/list/terminate),以及计划时间规格形式。最后附有操作→命令索引,将每项数据平面操作指向对应文件。详尽的标志说明请参阅 temporal <cmd> --help。
  • ops/recipes.md — 端到端运维手册:设置新命名空间、检查 APS、切换容量模式、查找卡住的工作流、轮换 API 密钥、审核访问权限、轮换 mTLS 证书、检查自托管运行状况、查看账单 / 生成账单报告、配置审计日志接收器、使用 Terraform 配置资源、设置 SAML SSO。
Diagnosis
  • sdk-snippet-review.md — 对粘贴的 SDK 连接代码片段进行第 0 层配置检查:各身份验证方法对应的端点形式、命名空间格式、身份验证 / TLS 要求、TEMPORAL_* 环境变量和常见配置错误。在诊断阶梯之前运行。
  • diagnostic-ladder.md — 自底向上的七层模型,每层包含一条规范命令,并交叉链接到相关主题页面。
  • connectivity.md — DNS、TCP、端点类型(mTLS 使用 Namespace Endpoint,API 密钥使用 Regional Endpoint)、防火墙 / 代理配置、PrivateLink / PSC 和快速诊断脚本。
  • certificates.md — x509 和 TLS 警报字符串、过期 / 未知颁发机构 / 主机名不匹配 / 密钥不匹配诊断、通过 tcld namespace accepted-client-ca 配置的 Cloud 接受的客户端 CA 集合、Cloud mTLS 证书要求、轮换和过期通知、openssl 操作示例。
  • authentication.md — UNAUTHENTICATED 与 PERMISSION_DENIED 的区别、API 密钥生命周期(tcld apikey 命令、环境变量传播、必需的 Regional Endpoint 形式)、TLS 后的 mTLS(证书筛选、身份到角色映射)、Cloud 账户级角色和命名空间级权限。
  • workflow-stuck.md — Workflow Execution Status 值、作为主要检查命令的 temporal workflow describe、通过 temporal workflow show 查看 Event History、待处理的活动 / 子工作流 / 信号 / Nexus 操作 / Workflow Tasks、WorkflowTaskFailed 重试循环、恢复命令(发送信号、终止、取消、重置、暂停 / 恢复)。
  • non-determinism.md — 确定性定义、WFT 失败特征、导致 ND 的代码模式、各 SDK 的错误形式、从 Event History 识别 ND、本地重放复现、通过 Worker Versioning / 修补 / 重置进行修复。
  • worker-health.md — 使用 temporal task-queue describe 处理无轮询器的操作手册、可达性和版本控制、Worker 级别的 describe、调度到启动延迟、Worker 任务槽、粘性执行和粘性缓存、Worker 心跳、Cloud 命名空间级轮询器限制、Worker 日志特征。
  • rate-limits.md — RESOURCE_EXHAUSTED 的含义(及其不代表的情况)、On-Demand 和 Provisioned 容量模式下的 Cloud APS / RPS / OPS、自托管环境中的 frontend.rps / frontend.namespaceRPS 动态配置、通过限流指标(Cloud v1)或 resource_exhausted_cause 标签(v0 / 自托管)识别触发的限制,以及区分账户限制导致的限流与单个资源耗尽。
  • ha-failover.md — 通过 Namespace Endpoint CNAME 进行 Cloud HA 路由、验证活动区域(控制平面 tcld namespace get 与 DNS 视图)、未跟随故障转移的客户端、故障转移后的 PrivateLink、故障转移未执行、切换窗口错误、平台限制、RPO / RTO 语义,以及因计算提供商配置按区域划分而未跟随故障转移的 Serverless Workers(AWS Lambda)。
  • runtime-errors.md — 按操作和调用位置区分 deadline-exceeded、将 Workflow 锁竞争(BusyWorkflow)与账户限制导致的限流区分开并通过 operation 明细确认,以及针对 no pollers / INVALID_ARGUMENT / 未指定原因的 UNAVAILABLE 进行路由。
  • replay.md — 使用 SDK 客户端获取 Event History(CLI 导出作为备用方式)、在所有受支持的 SDK(Go、Python、TypeScript、Java、.NET、Ruby、PHP)中运行 SDK 重放器、TEMPORAL_DEBUG 和死锁检测器、解读分歧和成功的重放,以及仅适用于 TypeScript 的 VS Code 扩展。
  • blob-size-limits.md — Payload 大小限制(2 MB)和 gRPC 消息大小限制(4 MB):错误消息、各 SDK 的行为(Python 1.23.0+ 与其他 SDK 的区别)、claim check 模式、External Storage(预发布)、减小批次大小。
  • performance-bottlenecks.md — 通过 SDK 指标诊断延迟和吞吐量:调度到启动延迟、工作流任务执行延迟、重放延迟、活动执行延迟、任务槽耗尽、网络请求指标、粘性缓存指标。
  • schedule-missed.md — Schedule Action 遗漏:通过 temporal_cloud_v1_schedule_missed_catchup_window_count / schedule_missed_catchup_window 发出警报,通过 temporal schedule list + temporal schedule describe 进行调查,DescribeSchedule 字段(missedCatchupWindow、overlapSkipped、bufferDropped)、默认补偿窗口(一年)、根本原因、重叠策略(6 个值)、回填修复。
  • recipes.md — 四个端到端问题排查演练:凌晨 3 点工作流卡住、证书过期导致 Worker 离线、任务队列积压原因不明、生产环境中发现非确定性问题。

报告此技能中的问题

如果你(AI)发现此技能的说明不清晰、存在误导性或缺少重要信息,请起草一份 GitHub 问题正文,描述遇到的问题以及哪些信息会有所帮助,然后请用户前往 https://github.com/temporalio/skill-temporal-ops/issues/new 提交。不要自行提交问题。

评论

支持 Markdown