inngest-cli

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Inngest CLI

Inngest CLI

Master the Inngest CLI for local development, testing, and self-hosted production. The CLI provides the Dev Server — a fully-featured, open-source local version of the Inngest Platform.
These skills are focused on TypeScript. For Python or Go, refer to the Inngest documentation for language-specific guidance. Core concepts apply across all languages.
Use this skill for CLI setup, Dev Server workflows, local testing, Docker, MCP, and self-hosted server operations. For run/trace inspection through
inngest api
, use
inngest-api-cli
when available.
掌握用于本地开发、测试和自托管生产环境的Inngest CLI。CLI提供Dev Server——一个功能完备的开源本地版Inngest平台。
本技能聚焦于TypeScript。 若使用Python或Go,请参考Inngest文档获取语言特定指南。核心概念适用于所有语言。
本技能适用于CLI安装、Dev Server工作流、本地测试、Docker、MCP及自托管服务器操作。若需通过
inngest api
进行运行/追踪检查,请在可用时使用
inngest-api-cli

Installation

安装

bash
undefined
bash
undefined

npx (recommended — always latest)

npx(推荐——始终使用最新版本)

npx inngest-cli@latest dev
npx inngest-cli@latest dev

yarn

yarn

yarn dlx inngest-cli@latest dev
yarn dlx inngest-cli@latest dev

pnpm

pnpm

pnpm dlx inngest-cli@latest dev
pnpm dlx inngest-cli@latest dev

Global install

全局安装

npm install -g inngest-cli
npm install -g inngest-cli

Docker

Docker

docker pull inngest/inngest

If your npm configuration disables lifecycle scripts and the binary is missing, retry with `npx --ignore-scripts=false inngest-cli@latest dev`. Bun does not support lifecycle scripts by default, so prefer `npx` for the CLI even in Bun projects.
docker pull inngest/inngest

若你的npm配置禁用了生命周期脚本导致二进制文件缺失,请重试:`npx --ignore-scripts=false inngest-cli@latest dev`。Bun默认不支持生命周期脚本,因此即使在Bun项目中也优先使用`npx`运行CLI。

inngest dev
— Local Dev Server

inngest dev
—— 本地开发服务器

Starts an in-memory local version of Inngest with a browser UI at
http://localhost:8288
.
bash
undefined
启动内存版本地Inngest服务,并在
http://localhost:8288
提供浏览器UI。
bash
undefined

Auto-discover apps on common ports/endpoints

自动发现常见端口/端点上的应用

npx inngest-cli@latest dev
npx inngest-cli@latest dev

Specify your app URL

指定应用URL

npx inngest-cli@latest dev -u http://localhost:3000/api/inngest
npx inngest-cli@latest dev -u http://localhost:3000/api/inngest

Custom port

自定义端口

npx inngest-cli@latest dev -p 9999
npx inngest-cli@latest dev -p 9999

Multiple apps

多个应用

Disable auto-discovery (use with -u)

禁用自动发现(需配合-u使用)

npx inngest-cli@latest dev --no-discovery -u http://localhost:3000/api/inngest
undefined
npx inngest-cli@latest dev --no-discovery -u http://localhost:3000/api/inngest
undefined

CLI Flags

CLI标志

FlagShortDefaultDescription
--sdk-url
-u
http://localhost:3000/api/inngest
App serve endpoint URL(s)
--port
-p
8288
Dev Server port
--host
Dev Server host
--no-discovery
false
Disable auto-discovery of apps
--no-poll
false
Disable polling apps for changes
--config
Path to configuration file
--connect-gateway-port
8289
Connect gateway endpoint port
--persist
false
Persist data between restarts
--poll-interval
5
Seconds between app polling checks
--queue-workers
100
Number of executor workers
--retry-interval
0
Linear retry interval in seconds
--tick
150
Executor queue polling interval in milliseconds
标志缩写默认值描述
--sdk-url
-u
http://localhost:3000/api/inngest
应用服务端点URL(可多个)
--port
-p
8288
Dev Server端口
--host
Dev Server主机地址
--no-discovery
false
禁用应用自动发现
--no-poll
false
禁用应用变更轮询
--config
配置文件路径
--connect-gateway-port
8289
Connect网关端点端口
--persist
false
重启后保留数据
--poll-interval
5
应用轮询检查间隔(秒)
--queue-workers
100
执行器工作线程数量
--retry-interval
0
线性重试间隔(秒)
--tick
150
执行器队列轮询间隔(毫秒)

Auto-Discovery

自动发现

Without
--no-discovery
, the Dev Server scans common ports and endpoints automatically:
Ports scanned: Common development ports including 3000, 3030, and others
Endpoints scanned:
  • /api/inngest
  • /x/inngest
  • /.netlify/functions/inngest
  • /.redwood/functions/inngest
未设置
--no-discovery
时,Dev Server会自动扫描常见端口和端点:
扫描的端口: 包括3000、3030等常见开发端口
扫描的端点:
  • /api/inngest
  • /x/inngest
  • /.netlify/functions/inngest
  • /.redwood/functions/inngest

Configuration File

配置文件

Create an
inngest.json
(or
.yaml
,
.toml
) in your project root. The CLI walks up directories to find it.
json
{
  "sdk-url": [
    "http://localhost:3000/api/inngest",
    "http://localhost:3030/api/inngest"
  ],
  "no-discovery": true
}
yaml
undefined
在项目根目录创建
inngest.json
(或
.yaml
.toml
)文件。CLI会向上遍历目录查找该文件。
json
{
  "sdk-url": [
    "http://localhost:3000/api/inngest",
    "http://localhost:3030/api/inngest"
  ],
  "no-discovery": true
}
yaml
undefined

inngest.yaml

inngest.yaml

Environment Variables

环境变量

VariableDescription
INNGEST_DEV
=1
enables Dev Mode (disables signature verification).
=0
forces Cloud mode. Accepts a URL (e.g.,
http://localhost:8288
). Defaults to Cloud mode if unset.
INNGEST_BASE_URL
Host for SDK-to-Inngest communication (e.g.,
http://localhost:8288
). Leave unset in most cases.
INNGEST_EVENT_KEY
Authentication key for sending events. Use any dummy value locally — Dev Server does not validate.
INNGEST_SIGNING_KEY
Secures requests between Inngest and your app. Required in production. Determines which Inngest environment receives syncs.
INNGEST_SIGNING_KEY_FALLBACK
Fallback key for signing key rotation (v3.18.0+).
INNGEST_SERVE_ORIGIN
Full origin URL for Inngest to reach your app (e.g.,
https://my-app.com
). Auto-inferred from request headers; set explicitly for AWS Lambda, proxies, or tunnels.
INNGEST_SERVE_PATH
URL path to your serve endpoint (e.g.,
/api/inngest
). Auto-inferred in most cases.
INNGEST_STREAMING
Enable response streaming (
true
/
false
). Extends timeout limits on Vercel and edge runtimes.
INNGEST_ENV
Target Inngest Environment. Auto-detected on some platforms.
变量描述
INNGEST_DEV
=1
启用开发模式(禁用签名验证);
=0
强制云模式;也可设置为URL(如
http://localhost:8288
)。未设置时默认使用云模式。
INNGEST_BASE_URL
SDK与Inngest通信的主机地址(如
http://localhost:8288
)。多数情况下无需设置。
INNGEST_EVENT_KEY
发送事件的认证密钥。本地可使用任意虚拟值——Dev Server不做验证。
INNGEST_SIGNING_KEY
保障Inngest与应用间请求的安全性。生产环境必填。 决定同步数据发送至哪个Inngest环境。
INNGEST_SIGNING_KEY_FALLBACK
签名密钥轮换的备用密钥(v3.18.0+)。
INNGEST_SERVE_ORIGIN
Inngest访问你的应用的完整源URL(如
https://my-app.com
)。可从请求头自动推断;在AWS Lambda、代理或隧道场景下需显式设置。
INNGEST_SERVE_PATH
应用服务端点的URL路径(如
/api/inngest
)。多数情况下可自动推断。
INNGEST_STREAMING
启用响应流(
true
/
false
)。可延长Vercel和边缘运行时的超时限制。
INNGEST_ENV
目标Inngest环境。部分平台可自动检测。

Debugging Your Serve Endpoint

调试服务端点

Verify your
serve()
endpoint is configured correctly:
bash
curl -s http://localhost:3000/api/inngest | jq
json
{
  "message": "Inngest endpoint configured correctly.",
  "hasEventKey": false,
  "hasSigningKey": false,
  "functionsFound": 3
}
If
functionsFound
is
0
, check that your functions are passed to the
serve()
call.
验证你的
serve()
端点配置是否正确:
bash
curl -s http://localhost:3000/api/inngest | jq
json
{
  "message": "Inngest endpoint configured correctly.",
  "hasEventKey": false,
  "hasSigningKey": false,
  "functionsFound": 3
}
functionsFound
0
,请检查是否将函数传入了
serve()
调用。

Testing Functions Locally

本地测试函数

Send Events via SDK

通过SDK发送事件

typescript
import { Inngest } from "inngest";

const inngest = new Inngest({ id: "my-app" });

await inngest.send({
  name: "user/signup.completed",
  data: {
    userId: "user_123",
    email: "user@example.com",
  },
});
typescript
import { Inngest } from "inngest";

const inngest = new Inngest({ id: "my-app" });

await inngest.send({
  name: "user/signup.completed",
  data: {
    userId: "user_123",
    email: "user@example.com",
  },
});

Send Events via curl

通过curl发送事件

bash
curl -X POST "http://localhost:8288/e/test" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "user/signup.completed",
    "data": {
      "userId": "user_123",
      "email": "user@example.com"
    }
  }'
The event key in the URL path (
test
above) can be any value locally.
bash
curl -X POST "http://localhost:8288/e/test" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "user/signup.completed",
    "data": {
      "userId": "user_123",
      "email": "user@example.com"
    }
  }'
URL路径中的事件密钥(如上例中的
test
)在本地可设为任意值。

Unit Testing with
@inngest/test

使用
@inngest/test
进行单元测试

Requires
inngest@>=4.0.0
.
bash
npm install -D @inngest/test
typescript
import { InngestTestEngine } from "@inngest/test";
import { helloWorld } from "./functions";

// Execute full function
const t = new InngestTestEngine({ function: helloWorld });
const { result } = await t.execute();
expect(result).toEqual("Hello World!");

// Test a single step
const { result: stepResult } = await t.executeStep("calculate-price");
expect(stepResult).toEqual(123);

// Assert step state
const { state } = await t.execute();
await expect(state["my-step"]).resolves.toEqual("output");
await expect(state["risky-step"]).rejects.toThrowError("failed");

// Mock events
const { result: eventResult } = await t.execute({
  events: [{ name: "demo/event.sent", data: { message: "Hi!" } }],
});

// Mock step responses
const { result: mockResult } = await t.execute({
  steps: [{ id: "external-api-call", handler() { return { status: "ok" }; } }],
});

// Mock sleep/waitForEvent (pause-inducing steps require mocking)
await t.execute({
  steps: [{ id: "wait-one-day", handler() {} }],
});
Mock external dependencies with your test framework's standard mocking (
jest.mock
,
vi.mock
, etc.) —
@inngest/test
handles only Inngest-specific mocking.
inngest@>=4.0.0
版本。
bash
npm install -D @inngest/test
typescript
import { InngestTestEngine } from "@inngest/test";
import { helloWorld } from "./functions";

// 执行完整函数
const t = new InngestTestEngine({ function: helloWorld });
const { result } = await t.execute();
expect(result).toEqual("Hello World!");

// 测试单个步骤
const { result: stepResult } = await t.executeStep("calculate-price");
expect(stepResult).toEqual(123);

// 断言步骤状态
const { state } = await t.execute();
await expect(state["my-step"]).resolves.toEqual("output");
await expect(state["risky-step"]).rejects.toThrowError("failed");

// 模拟事件
const { result: eventResult } = await t.execute({
  events: [{ name: "demo/event.sent", data: { message: "Hi!" } }],
});

// 模拟步骤响应
const { result: mockResult } = await t.execute({
  steps: [{ id: "external-api-call", handler() { return { status: "ok" }; } }],
});

// 模拟睡眠/等待事件(暂停类步骤需模拟)
await t.execute({
  steps: [{ id: "wait-one-day", handler() {} }],
});
模拟外部依赖请使用测试框架的标准模拟方法(
jest.mock
vi.mock
等)——
@inngest/test
仅处理Inngest特定的模拟。

Docker Setup

Docker配置

Standalone

独立运行

bash
docker run -p 8288:8288 -p 8289:8289 \
  inngest/inngest \
  inngest dev -u http://host.docker.internal:3000/api/inngest
Use
host.docker.internal
to reach your app running on the host machine (works out of the box on Docker Desktop). On Linux, add
--add-host=host.docker.internal:host-gateway
or use an equivalent host-access method.
bash
docker run -p 8288:8288 -p 8289:8289 \
  inngest/inngest \
  inngest dev -u http://host.docker.internal:3000/api/inngest
使用
host.docker.internal
访问运行在宿主机上的应用(Docker Desktop默认支持)。在Linux系统中,需添加
--add-host=host.docker.internal:host-gateway
或使用等效的主机访问方式。

Docker Compose

Docker Compose

yaml
services:
  app:
    build: ./app
    environment:
      - INNGEST_DEV=1
      - INNGEST_BASE_URL=http://inngest:8288
    ports:
      - "3000:3000"
  inngest:
    image: inngest/inngest
    command: "inngest dev -u http://app:3000/api/inngest"
    ports:
      - "8288:8288"
      - "8289:8289"
Port 8288 is the main server and UI. Port 8289 is the
connect()
WebSocket gateway.
Critical: Set
INNGEST_DEV=1
on your app — the TypeScript SDK defaults to Cloud mode, which will skip the Dev Server.
yaml
services:
  app:
    build: ./app
    environment:
      - INNGEST_DEV=1
      - INNGEST_BASE_URL=http://inngest:8288
    ports:
      - "3000:3000"
  inngest:
    image: inngest/inngest
    command: "inngest dev -u http://app:3000/api/inngest"
    ports:
      - "8288:8288"
      - "8289:8289"
端口8288是主服务器和UI端口。端口8289
connect()
WebSocket网关端口。
关键提示: 在你的应用中设置
INNGEST_DEV=1
——TypeScript SDK默认使用云模式,会跳过Dev Server。

MCP Server (AI Dev Tools)

MCP服务器(AI开发工具)

The Dev Server exposes an MCP server at
http://127.0.0.1:8288/mcp
(HTTP transport).
bash
undefined
Dev Server在
http://127.0.0.1:8288/mcp
暴露MCP服务器(HTTP传输)。
bash
undefined

Claude Code

Claude Code

claude mcp add --transport http inngest-dev http://127.0.0.1:8288/mcp

```json
// .cursor/mcp.json or another MCP-capable client config
{
  "mcpServers": {
    "inngest-dev": {
      "url": "http://127.0.0.1:8288/mcp"
    }
  }
}
claude mcp add --transport http inngest-dev http://127.0.0.1:8288/mcp

```json
// .cursor/mcp.json 或其他支持MCP的客户端配置
{
  "mcpServers": {
    "inngest-dev": {
      "url": "http://127.0.0.1:8288/mcp"
    }
  }
}

Available MCP Tools

可用MCP工具

ToolDescription
send_event
Send events to trigger functions
list_functions
List all registered functions and triggers
invoke_function
Execute a function synchronously (default 30s timeout)
get_run_status
Get detailed status of a function run
poll_run_status
Poll multiple runs until completion
grep_docs
Search Inngest documentation by regex pattern
read_doc
Read a specific documentation page
list_docs
List available documentation structure
工具描述
send_event
发送事件以触发函数
list_functions
列出所有已注册的函数和触发器
invoke_function
同步执行函数(默认超时30秒)
get_run_status
获取函数运行的详细状态
poll_run_status
轮询多个运行任务直至完成
grep_docs
通过正则表达式搜索Inngest文档
read_doc
读取特定文档页面
list_docs
列出可用的文档结构

inngest start
— Self-Hosted Production

inngest start
—— 自托管生产环境

Runs Inngest as a self-hosted production server. Not the same as
inngest dev
— this is for production workloads.
bash
inngest start --event-key <key> --signing-key <key>
FlagShortDefaultDescription
--port
-p
8288
Server port
--signing-key
Hex key for request signing (even character count)
--event-key
Authentication key for apps (repeatable)
--sdk-url
-u
App serve URLs (repeatable)
--redis-uri
External Redis connection
--postgres-uri
External PostgreSQL connection
--sqlite-dir
SQLite database directory
--poll-interval
0
App sync polling interval (seconds)
--queue-workers
100
Number of executor workers
--connect-gateway-port
8289
Connect gateway port
--retry-interval
0
Linear retry interval in seconds
--tick
150
Executor queue polling interval in milliseconds
--no-ui
Disable web UI and GraphQL API
--postgres-conn-max-idle-time
5
PostgreSQL idle connection lifetime in minutes
--postgres-conn-max-lifetime
30
PostgreSQL maximum connection reuse time in minutes
--postgres-max-idle-conns
10
PostgreSQL max idle connections
--postgres-max-open-conns
100
PostgreSQL max open connections
Global flags such as
--log-level
,
--verbose
, and
--json
are also available. For environment variables, follow the current CLI and deployment docs; do not assume every flag has an
INNGEST_
environment variable equivalent.
Default persistence: in-memory Redis + SQLite at
./.inngest/main.db
. For production, use external Redis and PostgreSQL.
将Inngest作为自托管生产服务器运行。
inngest dev
不同
——此命令用于生产工作负载。
bash
inngest start --event-key <key> --signing-key <key>
标志缩写默认值描述
--port
-p
8288
服务器端口
--signing-key
请求签名用的十六进制密钥(长度为偶数)
--event-key
应用认证密钥(可重复设置)
--sdk-url
-u
应用服务URL(可重复设置)
--redis-uri
外部Redis连接地址
--postgres-uri
外部PostgreSQL连接地址
--sqlite-dir
SQLite数据库目录
--poll-interval
0
应用同步轮询间隔(秒)
--queue-workers
100
执行器工作线程数量
--connect-gateway-port
8289
Connect网关端口
--retry-interval
0
线性重试间隔(秒)
--tick
150
执行器队列轮询间隔(毫秒)
--no-ui
禁用Web UI和GraphQL API
--postgres-conn-max-idle-time
5
PostgreSQL空闲连接生命周期(分钟)
--postgres-conn-max-lifetime
30
PostgreSQL连接最大复用时间(分钟)
--postgres-max-idle-conns
10
PostgreSQL最大空闲连接数
--postgres-max-open-conns
100
PostgreSQL最大开放连接数
全局标志如
--log-level
--verbose
--json
也可用。关于环境变量,请参考当前CLI和部署文档;不要假设每个标志都有对应的
INNGEST_
环境变量。
默认持久化方式:内存Redis + 位于
./.inngest/main.db
的SQLite。生产环境建议使用外部Redis和PostgreSQL。

Deployment Workflow

部署工作流

Local Development → Production

本地开发 → 生产环境

  1. Develop locally with
    inngest dev
    — no keys needed, no code changes for production
  2. Deploy your app to your hosting platform
  3. Sync with Inngest using one of three methods:
bash
undefined
  1. 本地开发使用
    inngest dev
    ——无需密钥,切换到生产环境无需修改代码
  2. 部署应用到你的托管平台
  3. 与Inngest同步可使用以下三种方法之一:
bash
undefined

Option 1: Curl from CI/CD

选项1:通过CI/CD执行curl

curl -X PUT https://your-app.com/api/inngest --fail-with-body
curl -X PUT https://your-app.com/api/inngest --fail-with-body

Option 2: Vercel/Netlify integrations (automatic on deploy)

选项2:Vercel/Netlify集成(部署时自动同步)

Option 3: Manual sync via Inngest Cloud dashboard

选项3:通过Inngest Cloud控制台手动同步


4. **Set environment variables** in production:

```bash
INNGEST_EVENT_KEY=<your-event-key>
INNGEST_SIGNING_KEY=<your-signing-key>
No code changes are needed when moving from local dev to production. The SDK automatically detects the environment.

4. **在生产环境设置环境变量**:

```bash
INNGEST_EVENT_KEY=<你的事件密钥>
INNGEST_SIGNING_KEY=<你的签名密钥>
无需修改代码即可从本地开发切换到生产环境。SDK会自动检测环境。

Platform-Specific Gotchas

平台特定注意事项

PlatformGotcha
ExpressRequires
express.json()
middleware; default body limit is
100kb
— increase to handle Inngest payloads (up to 4MB)
AWS LambdaSet
INNGEST_SERVE_ORIGIN
and
INNGEST_SERVE_PATH
explicitly — auto-inference fails
Firebase Cloud FunctionsMust set
INNGEST_SERVE_PATH
env var
DigitalOcean FunctionsBoth
serveOrigin
and
servePath
required in
serve()
config
Cloudflare Workers (Wrangler
--remote
)
Requires tunnel (ngrok/localtunnel) for Dev Server connection
Supabase Edge Functions
servePath
must match function name — Supabase rewrites request paths
Google Cloud Run (1st gen)Not officially supported; may cause signature verification errors
DockerMust set
INNGEST_DEV=1
— SDK defaults to Cloud mode
External webhooks (Stripe, Clerk)Require tunnel solution (ngrok, localtunnel) for local testing
平台注意事项
Express需要
express.json()
中间件;默认请求体大小限制为100kb——需增大以处理Inngest负载(最大4MB)
AWS Lambda需显式设置
INNGEST_SERVE_ORIGIN
INNGEST_SERVE_PATH
——自动推断会失败
Firebase Cloud Functions必须设置
INNGEST_SERVE_PATH
环境变量
DigitalOcean Functions
serve()
配置中必须同时设置
serveOrigin
servePath
Cloudflare Workers(Wrangler
--remote
需要隧道(ngrok/localtunnel)才能连接Dev Server
Supabase Edge Functions
servePath
必须与函数名匹配——Supabase会重写请求路径
Google Cloud Run(第一代)未官方支持;可能导致签名验证错误
Docker必须设置
INNGEST_DEV=1
——SDK默认使用云模式
外部Webhook(Stripe、Clerk)本地测试需要隧道解决方案(ngrok、localtunnel)

Quick Reference

快速参考

bash
undefined
bash
undefined

Start dev server with auto-discovery

启动带自动发现的开发服务器

npx inngest-cli@latest dev
npx inngest-cli@latest dev

Start with explicit app URL

使用指定应用URL启动

npx inngest-cli@latest dev -u http://localhost:3000/api/inngest
npx inngest-cli@latest dev -u http://localhost:3000/api/inngest

Check serve endpoint health

检查服务端点健康状态

Send test event via curl

通过curl发送测试事件

curl -X POST http://localhost:8288/e/test -d '{"name": "test/event", "data": {}}'
curl -X POST http://localhost:8288/e/test -d '{"name": "test/event", "data": {}}'

Sync after deploy (CI/CD)

部署后同步(CI/CD)

curl -X PUT https://your-app.com/api/inngest --fail-with-body
curl -X PUT https://your-app.com/api/inngest --fail-with-body

Self-hosted production

自托管生产环境启动

inngest start --event-key <key> --signing-key <key>
undefined
inngest start --event-key <key> --signing-key <key>
undefined

Troubleshooting

故障排除

IssueCauseSolution
Dev Server doesn't find functionsApp not running or wrong portStart your app first; use
-u
to specify the correct URL
functionsFound: 0
in debug output
Functions not passed to
serve()
Verify all functions are in the array passed to
serve()
SDK connects to Cloud instead of Dev Server
INNGEST_DEV
not set
Set
INNGEST_DEV=1
in your environment
Functions sync to wrong Inngest environmentWrong signing keyCheck
INNGEST_SIGNING_KEY
matches target environment
Duplicate app in Inngest dashboardApp
id
was changed
Keep the
id
in
new Inngest({ id })
stable across deploys
Webhook events not reaching Dev ServerNo tunnel configuredUse ngrok or localtunnel for external webhook sources
"Unattached sync" in dashboardAuto-sync failed silentlyCheck integration logs; resync manually
See inngest-setup for SDK installation and inngest-durable-functions for function configuration.
问题原因解决方案
Dev Server找不到函数应用未运行或端口错误先启动应用;使用
-u
指定正确的URL
调试输出中
functionsFound: 0
函数未传入
serve()
验证所有函数都已传入
serve()
的数组参数中
SDK连接到Cloud而非Dev Server未设置
INNGEST_DEV
在环境中设置
INNGEST_DEV=1
函数同步到错误的Inngest环境签名密钥错误检查
INNGEST_SIGNING_KEY
是否与目标环境匹配
Inngest控制台中出现重复应用应用
id
已更改
new Inngest({ id })
中保持
id
在部署间稳定
Webhook事件无法到达Dev Server未配置隧道使用ngrok或localtunnel处理外部Webhook源
控制台中出现"未关联的同步"自动同步静默失败检查集成日志;手动重新同步
SDK安装请参考inngest-setup,函数配置请参考inngest-durable-functions