Skip to main content
On this page

在命令行中使用 deployctl

Legacy Documentation

你正在查看 Deno Deploy Classic 的遗留文档。我们建议迁移到新的 Deno Deploy 平台。

deployctl 是一个命令行工具 (CLI),允许你在不离开终端的情况下操作 Deno Deploy 平台。使用它,你可以部署代码、创建和管理项目及其部署,并监控使用情况和日志。

依赖项 Jump to heading

deployctl 的唯一依赖是 Deno 运行时。你可以通过运行以下命令进行安装:

curl -fsSL https://deno.land/install.sh | sh

你无需在部署你的第一个项目之前先设置 Deno Deploy Classic 账户。账户将在你部署第一个项目的过程中自动创建。

安装 deployctl Jump to heading

安装 Deno 运行时后,你可以使用以下命令安装 deployctl 工具:

deno install -gArf jsr:@deno/deployctl

在 deno install 命令中,-A 选项赋予已安装脚本所有权限。你可以选择不使用它,在这种情况下,当工具执行时,会提示你授予必要的权限。

部署 Jump to heading

要对你的代码进行新部署,请导航到项目的根目录并执行:

deployctl deploy

项目和入口点 Jump to heading

如果这是项目的第一次部署,deployctl 将根据其所在的 Git 仓库或目录推断项目名称。同样,它会通过查找具有常见入口点名称的文件(如 main.tssrc/main.ts 等)来推断入口点。在首次部署之后,使用的设置将存储在配置文件中(默认是 deno.json)。

你可以分别使用 --project--entrypoint 参数指定项目名称和/或入口点。如果项目不存在,将自动创建。默认情况下,它是在用户的个人组织中创建,但也可以通过指定 --org 参数在自定义组织中创建。如果组织尚不存在,也会自动创建。

deployctl deploy --project=helloworld --entrypoint=src/entrypoint.ts --org=my-team

包含和排除文件 Jump to heading

默认情况下,deployctl 会递归部署当前目录下的所有文件(除了 node_modules 目录)。你可以使用 --include--exclude 参数自定义此行为(这些参数在配置文件中也支持)。这些参数接受特定文件、整个目录和通配符。以下是一些示例:

  • 仅包括源文件和静态文件:

    deployctl deploy --include=./src --include=./static
    
  • 仅包括 Typescript 文件:

    deployctl deploy --include=**/*.ts
    
  • 排除本地工具和工件

    deployctl deploy --exclude=./tools --exclude=./benches
    

一个常见的陷阱是未包括需要运行的源代码模块(入口点和依赖项)。以下示例将失败,因为未包括 main.ts

deployctl deploy --include=./static --entrypoint=./main.ts

入口点也可以是远程脚本。一个常见的用例是使用 std/http/file_server.ts 部署一个静态网站(更多细节请参考 静态网站教程):

deployctl deploy --include=dist --entrypoint=jsr:@std/http/file-server

环境变量 Jump to heading

你可以使用 --env 设置环境变量(设置单个环境变量)或使用 --env-file 加载一个或多个环境文件。可以组合这些选项并多次使用:

deployctl deploy --env-file --env-file=.other-env --env=DEPLOYMENT_TS=$(date +%s)

部署将通过 Deno.env.get() 获取这些变量。请注意,使用 --env--env-file 设置的环境变量特定于正在创建的部署,不会添加到 为项目配置的环境变量列表

生产部署 Jump to heading

你创建的每个部署都有一个唯一的 URL。此外,项目有一个“生产 URL”和指向其“生产”部署的自定义域名。部署可以随时晋升为生产,或者使用 --prod 标志直接创建为生产:

deployctl deploy --prod

部署 文档中了解有关生产部署的更多信息。

部署命令组 Jump to heading

部署子命令将所有与部署相关的操作分组。

列出 Jump to heading

你可以列出一个项目的部署:

deployctl deployments list

输出:

✔ 项目 'my-project' 的部署列表第 1 页已经准备好
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│  部署        │               日期               │   状态   │  数据库  │                       域                       │ 入口点   │  分支   │  提交   │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ kcbxc4xwe4mc │ 2024年12月3日 13:21:40 CET (2天) │ 预览     │ 预览     │ https://my-project-kcbxc4xwe4mc.deno.dev │ main.ts   │ main    │ 4b6c506  │
│ c0ph5xa9exb3 │ 2024年12月3日 13:21:25 CET (2天) │ 生产     │ 生产     │ https://my-project-c0ph5xa9exb3.deno.dev │ main.ts   │ main    │ 4b6c506  │
│ kwkbev9er4h2 │ 2024年12月3日 13:21:12 CET (2天) │ 预览     │ 预览     │ https://my-project-kwkbev9er4h2.deno.dev │ main.ts   │ main    │ 4b6c506  │
│ dxseq0jc8402 │ 2024年6月3日 23:16:51 CET (8天)  │ 预览     │ 生产     │ https://my-project-dxseq0jc8402.deno.dev │ main.ts   │ main    │ 099359b  │
│ 7xr5thz8yjbz │ 2024年6月3日 22:58:32 CET (8天)  │ 预览     │ 预览     │ https://my-project-7xr5thz8yjbz.deno.dev │ main.ts   │ another  │ a4d2953  │
│ 4qr4h5ac3rfn │ 2024年6月3日 22:57:05 CET (8天)  │ 失败     │ 预览     │ n/a                                               │ main.ts   │ another  │ 56d2c88  │
│ 25wryhcqmb9q │ 2024年6月3日 22:56:41 CET (8天)  │ 预览     │ 预览     │ https://my-project-25wryhcqmb9q.deno.dev │ main.ts   │ another  │ 4b6c506  │
│ 64tbrn8jre9n │ 2024年6月3日 8:21:33 CET (8天)   │ 预览     │ 生产     │ https://my-project-64tbrn8jre9n.deno.dev │ main.ts   │ main    │ 4b6c506  │
│ hgqgccnmzg04 │ 2024年6月3日 8:17:40 CET (8天)   │ 失败     │ 生产     │ n/a                                               │ main.ts   │ main    │ 8071902  │
│ rxkh1w3g74e8 │ 2024年6月3日 8:17:28 CET (8天)   │ 失败     │ 生产     │ n/a                                               │ main.ts   │ main    │ b142a59  │
│ wx6cw9aya64c │ 2024年6月3日 8:02:29 CET (8天)   │ 预览     │ 生产     │ https://my-project-wx6cw9aya64c.deno.dev │ main.ts   │ main    │ b803784  │
│ a1qh5fmew2yf │ 2024年5月3日 16:25:29 CET (9天)  │ 预览     │ 生产     │ https://my-project-a1qh5fmew2yf.deno.dev │ main.ts   │ main    │ 4bb1f0f  │
│ w6pf4r0rrdkb │ 2024年5月3日 16:07:35 CET (9天)  │ 预览     │ 生产     │ https://my-project-w6pf4r0rrdkb.deno.dev │ main.ts   │ main    │ 6e487fc  │
│ nn700gexgdzq │ 2024年5月3日 13:37:11 CET (9天)  │ 预览     │ 生产     │ https://my-project-nn700gexgdzq.deno.dev │ main.ts   │ main    │ c5b1d1f  │
│ 98crfqxa6vvf │ 2024年5月3日 13:33:52 CET (9天)  │ 预览     │ 生产     │ https://my-project-98crfqxa6vvf.deno.dev │ main.ts   │ main    │ 090146e  │
│ xcdcs014yc5p │ 2024年5月3日 13:30:58 CET (9天)  │ 预览     │ 生产     │ https://my-project-xcdcs014yc5p.deno.dev │ main.ts   │ main    │ 5b78c0f  │
│ btw43kx89ws1 │ 2024年5月3日 13:27:31 CET (9天)  │ 预览     │ 生产     │ https://my-project-btw43kx89ws1.deno.dev │ main.ts   │ main    │ 663452a  │
│ 62tg1ketkjx7 │ 2024年5月3日 13:27:03 CET (9天)  │ 预览     │ 生产     │ https://my-project-62tg1ketkjx7.deno.dev │ main.ts   │ main    │ 24d1618  │
│ 07ag6pt6kjex │ 2024年5月3日 13:19:11 CET (9天)  │ 预览     │ 生产     │ https://my-project-07ag6pt6kjex.deno.dev │ main.ts   │ main    │ 4944545  │
│ 4msyne1rvwj1 │ 2024年5月3日 13:17:16 CET (9天)  │ 预览     │ 生产     │ https://my-project-4msyne1rvwj1.deno.dev │ main.ts   │ main    │ dda85e1  │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
按回车获取下一页 [Enter]

该命令默认输出每页 20 个部署。你可以使用回车键迭代查看页面,并使用 --page--limit 选项查询特定页面和页面大小。

与其余命令一样,如果你不在项目目录中或想列出其他项目的部署,可以使用 --project 选项指定项目。

显示 Jump to heading

使用以下命令获取特定部署的所有详细信息:

deployctl deployments show

输出:

✔ 项目 'my-project' 的生产部署为 'c0ph5xa9exb3'
✔ 部署 'c0ph5xa9exb3' 的详细信息已准备好:

c0ph5xa9exb3
------------
状态:         生产
日期:         2天前,12小时,29分钟,46秒 (2024年12月3日 13:21:25 CET)
项目:        my-project (e54f23b5-828d-4b7f-af12-706d4591062b)
组织:        my-team (d97822ac-ee20-4ce9-b942-5389330b57ee)
域名:        https://my-project.deno.dev
              https://my-project-c0ph5xa9exb3.deno.dev
数据库:      生产 (0efa985f-3793-48bc-8c05-f740ffab4ca0)
入口点:      main.ts
环境变量:    HOME
Git
  引用:      main [4b6c506]
  消息:      change name
  作者:      John Doe @johndoe [mailto:johndoe@deno.com]
  URL:       https://github.com/arnauorriols/my-project/commit/4b6c50629ceeeb86601347732d01dc7ed63bf34f
定时任务:    另一个定时任务 [*/10 * * * *] 于 2024年3月15日 1:50:00 CET 成功,耗时 2 秒 (下一个在 2024年3月15日 2:00:00 CET)
              最新定时任务 [*/10 * * * *] n/a
              又一个定时任务 [*/10 * * * *] 于 2024年3月15日 1:40:00 CET 失败,耗时 2 秒 (下一个在 2024年3月15日 1:51:54 CET)

如果未指定部署,命令将显示当前项目的生产部署的详细信息。要查看最后一次部署的详细信息,请使用 --last,要查看特定部署的详细信息,请使用 --id(或位置参数)。你还可以使用 --next--prev 按时间顺序浏览部署。

例如,要查看倒数第二次部署的详细信息,你可以这样做:

deployctl deployments show --last --prev

要查看特定部署后 2 次部署的详细信息:

deployctl deployments show 64tbrn8jre9n --next=2

重新部署 Jump to heading

重新部署命令创建一个新的部署,重用现有部署的构建,目的是更改与之关联的资源。这包括生产域、环境变量和 KV 数据库。

Info

选择要重新部署的部署的语义与 show 子命令 相同,包括 --last--id--next--prev

生产域 Jump to heading

如果你想将项目的生产域路由到特定部署,可以使用 --prod 选项重新部署它:

deployctl deployments redeploy --prod 64tbrn8jre9n

这将创建一个新的部署,具有与指定部署相同的代码和环境变量,但项目的生产域名将指向它。对于具有预览/生产数据库的项目(即链接到 GitHub 的项目),这也将为新的部署设置生产数据库。

Note

此功能类似于 Deno Deploy Web 应用程序中找到的“推广到生产”按钮,唯一的区别是“推广到生产”按钮不创建新的部署。相反,“推广到生产”按钮在原地更改域名路由,但仅限于已使用生产数据库的部署。

KV 数据库 Jump to heading

如果这是一个 GitHub 部署,它将拥有 2 个数据库,一个用于生产部署,一个用于预览部署。你可以通过使用 --db 选项重新部署来更改部署的数据库:

deployctl deployments redeploy --db=prod --id=64tbrn8jre9n

Note

将部署重新部署到生产时,默认情况下,它将自动配置为使用生产数据库。你可以同时使用 --prod--db 选项以选择不采用此行为。例如,以下命令将重新部署当前的生产部署(由于缺少位置参数,--id--last)。新的部署将成为新的生产部署,但将使用预览数据库而不是生产数据库:

deployctl deployments redeploy --prod --db=preview

如果你的组织有自定义数据库,你也可以通过 UUID 设置它们:

deployctl deployments redeploy --last --db=5261e096-f9aa-4b72-8440-1c2b5b553def

环境变量 Jump to heading

创建部署时,它会继承项目的环境变量。由于部署是不可变的,因此永远不能更改其环境变量。要在部署中设置新的环境变量,你需要使用 --env(设置单个变量)和 --env-file(加载一个或多个环境文件)重新部署它。

以下命令使用 .env.other-env 文件中定义的环境变量重新部署当前的生产部署,并将 DEPLOYMENT_TS 变量设置为当前时间戳。生成的部署将是一个预览部署(即生产域将不路由流量到它,因为缺少 --prod)。

deployctl deployments redeploy --env-file --env-file=.other-env --env=DEPLOYMENT_TS=$(date +%s)

Note

请注意,在更改环境变量时,仅在重新部署命令中设置的环境变量将被新部署使用。项目环境变量和正在重新部署的部署的环境变量将被忽略。如果这不符合你的需求,请在 https://github.com/denoland/deploy_feedback/issues/ 报告你的反馈。

Note

当你在 Deno Deploy Web 应用程序中更改项目环境变量时,当前的生产部署将使用新的环境变量重新部署,并且新部署将成为新的生产部署。

删除 Jump to heading

你可以使用 delete 子命令删除一个部署:

deployctl deployments delete 64tbrn8jre9n

showredeploy 一样,delete 也可以使用 --last--next--prev 选择要删除的部署。以下是删除项目中所有部署(除了最后一个)的示例命令(使用时请谨慎!):

while deployctl deployments delete --project=my-project --last --prev; do :; done

项目 Jump to heading

projects 子命令将所有与项目整体相关的操作分组。这包括 listshowrenamecreatedelete

列出 Jump to heading

deployctl projects list 输出你用户可以访问的所有项目,按组织分组:

个人组织:
    blog
    url-shortener

'my-team' 组织:
    admin-site
    main-site
    analytics

你可以使用 --org 通过组织进行过滤:

deployctl projects list --org=my-team

显示 Jump to heading

要查看特定项目的详细信息,请使用 projects show。如果你在项目内,它将从配置文件中获取项目 ID。你也可以使用 --project 或位置参数指定项目:

deployctl projects show main-site

输出:

main-site
---------
组织:        my-team (5261e096-f9aa-4b72-8440-1c2b5b553def)
域名:       https://my-team.com
              https://main-site.deno.dev
仪表盘 URL:  https://dash.deno.com/projects/8422c515-f68f-49b2-89f3-157f4b144611
代码库:      https://github.com/my-team/main-site
数据库:      [main] dd28e63e-f495-416b-909a-183380e3a232
              [*] e061c76e-4445-409a-bc36-a1a9040c83b3
定时任务:    另一个定时任务 [*/10 * * * *] 于 2024年3月12日 14:40:00 CET 成功,耗时 2 秒 (下一个在 2024年3月12日 14:50:00 CET)
              最新定时任务 [*/10 * * * *] n/a
              又一个定时任务 [*/10 * * * *] 于 2024年3月12日 14:40:00 CET 失败,耗时 2 秒 (下一个在 2024年3月12日 14:50:00 CET)
部署:        kcbxc4xwe4mc c0ph5xa9exb3* kwkbev9er4h2 dxseq0jc8402 7xr5thz8yjbz
              4qr4h5ac3rfn 25wryhcqmb9q 64tbrn8jre9n hgqgccnmzg04 rxkh1w3g74e8
              wx6cw9aya64c a1qh5fmew2yf w6pf4r0rrdkb nn700gexgdzq 98crfqxa6vvf
              xcdcs014yc5p btw43kx89ws1 62tg1ketkjx7 07ag6pt6kjex 4msyne1rvwj1

重命名 Jump to heading

项目可以通过 rename 子命令轻松重命名。与其他命令类似,如果你在项目的目录中运行命令,则无需指定项目的当前名称:

deployctl projects rename my-personal-blog

输出:

ℹ 使用配置文件 '/private/tmp/blog/deno.json'
✔ 找到项目 'blog' (8422c515-f68f-49b2-89f3-157f4b144611)
✔ 项目 'blog' 重命名为 'my-personal-blog'

Note

请记住,项目名称是预览域名的一部分 (https://my-personal-blog-kcbxc4xwe4mc.deno.dev) 和默认生产域名 (https://my-personal-blog.deno.dev)。因此,在更改项目名称时,之前名称的 URL 将不再路由到项目的相应部署。

创建 Jump to heading

你可以创建一个空项目:

deployctl projects create my-new-project

删除 Jump to heading

你可以删除一个项目:

deployctl projects delete my-new-project

监控资源使用情况 Jump to heading

top 子命令用于实时监控项目的资源使用情况:

deployctl top

输出:

┌────────┬────────────────┬────────────────────────┬─────────┬───────┬─────────┬──────────┬─────────────┬────────────┬─────────┬─────────┬───────────┬───────────┐
│ (idx)  │ 部署           │ 区域                  │ 每分钟请求 │ CPU%  │ 每请求 CPU │ RSS/5分钟 │ 每分钟流入  │ 每分钟流出 │ KV 读/分钟 │ KV 写/分钟 │ 队列入队/分钟 │ 队列出队/分钟 │
├────────┼────────────────┼────────────────────────┼─────────┼───────┼─────────┼──────────┼─────────────┼────────────┼─────────┼─────────┼───────────┼───────────┤
│ 6b80e8 │ "kcbxc4xwe4mc" │ "亚洲-东北1"          │      80 │ 0.61  │ 4.56    │ 165.908  │ 11.657      │ 490.847    │       0 │       0 │         0 │         0 │
│ 08312f │ "kcbxc4xwe4mc" │ "亚洲-东北1"          │      76 │ 3.49  │ 27.58   │ 186.278  │ 19.041      │ 3195.288   │       0 │       0 │         0 │         0 │
│ 77c10b │ "kcbxc4xwe4mc" │ "亚洲-南部1"          │      28 │ 0.13  │ 2.86    │ 166.806  │ 7.354       │ 111.478    │       0 │       0 │         0 │         0 │
│ 15e356 │ "kcbxc4xwe4mc" │ "亚洲-南部1"          │      66 │ 0.97  │ 8.93    │ 162.288  │ 17.56       │ 4538.371   │       0 │       0 │         0 │         0 │
│ a06817 │ "kcbxc4xwe4mc" │ "亚洲-东南部1"        │     126 │ 0.44  │ 2.11    │ 140.087  │ 16.504      │ 968.794    │       0 │       0 │         0 │         0 │
│ d012b6 │ "kcbxc4xwe4mc" │ "亚洲-东南部1"        │     119 │ 2.32  │ 11.72   │ 193.704  │ 23.44       │ 8359.829   │       0 │       0 │         0 │         0 │
│ 7d9a3d │ "kcbxc4xwe4mc" │ "澳大利亚-东南部1"    │       8 │ 0.97  │ 75      │ 158.872  │ 10.538      │ 3.027      │       0 │       0 │         0 │         0 │
│ 3c21be │ "kcbxc4xwe4mc" │ "澳大利亚-东南部1"    │       1 │ 0.04  │ 90      │ 105.292  │ 0.08        │ 1.642      │       0 │       0 │         0 │         0 │
│ b75dc7 │ "kcbxc4xwe4mc" │ "欧洲-西部2"          │     461 │ 5.43  │ 7.08    │ 200.573  │ 63.842      │ 9832.936   │       0 │       0 │         0 │         0 │
│ 33607e │ "kcbxc4xwe4mc" │ "欧洲-西部2"          │      35 │ 0.21  │ 3.69    │ 141.98   │ 9.438       │ 275.788    │       0 │       0 │         0 │         0 │
│ 9be3d2 │ "kcbxc4xwe4mc" │ "欧洲-西部2"          │     132 │ 0.92  │ 4.19    │ 180.654  │ 15.959      │ 820.513    │       0 │       0 │         0 │         0 │
│ 33a859 │ "kcbxc4xwe4mc" │ "欧洲-西部3"          │    1335 │ 7.57  │ 3.4     │ 172.032  │ 178.064     │ 10967.918  │       0 │       0 │         0 │         0 │
│ 3f54ce │ "kcbxc4xwe4mc" │ "欧洲-西部4"          │     683 │ 4.76  │ 4.19    │ 187.802  │ 74.696      │ 7565.017   │       0 │       0 │         0 │         0 │
│ cf881c │ "kcbxc4xwe4mc" │ "欧洲-西部4"          │     743 │ 3.95  │ 3.19    │ 177.213  │ 86.974      │ 6087.454   │       0 │       0 │         0 │         0 │
│ b4565b │ "kcbxc4xwe4mc" │ "美洲-西部1"          │       3 │ 0.21  │ 55      │ 155.46   │ 2.181       │ 0.622      │       0 │       0 │         0 │         0 │
│ b97970 │ "kcbxc4xwe4mc" │ "南美-东部1"          │       3 │ 0.08  │ 25      │ 186.049  │ 1.938       │ 0.555      │       0 │       0 │         0 │         0 │
│ fd7a08 │ "kcbxc4xwe4mc" │ "美国-东部4"          │       3 │ 0.32  │ 80      │ 201.101  │ 0.975       │ 58.495     │       0 │       0 │         0 │         0 │
│ 95d68a │ "kcbxc4xwe4mc" │ "美国-东部4"          │     133 │ 1.05  │ 4.77    │ 166.052  │ 28.107      │ 651.737    │       0 │       0 │         0 │         0 │
│ c473e7 │ "kcbxc4xwe4mc" │ "美国-东部4"          │       0 │ 0     │ 0       │ 174.154  │ 0.021       │ 0          │       0 │       0 │         0 │         0 │
│ ebabfb │ "kcbxc4xwe4mc" │ "美国-东部4"          │      19 │ 0.15  │ 4.78    │ 115.732  │ 7.764       │ 67.054     │       0 │       0 │         0 │         0 │
│ eac700 │ "kcbxc4xwe4mc" │ "美国-南部1"          │     114 │ 2.37  │ 12.54   │ 183.001  │ 18.401      │ 22417.397  │       0 │       0 │         0 │         0 │
│ cd2194 │ "kcbxc4xwe4mc" │ "美国-南部1"          │      35 │ 0.33  │ 5.68    │ 145.871  │ 8.142       │ 91.236     │       0 │       0 │         0 │         0 │
│ 140fec │ "kcbxc4xwe4mc" │ "美国-西部2"          │     110 │ 1.43  │ 7.84    │ 115.298  │ 18.093      │ 977.993    │       0 │       0 │         0 │         0 │
│ 51689f │ "kcbxc4xwe4mc" │ "美国-西部2"          │    1105 │ 7.66  │ 4.16    │ 187.277  │ 154.876     │ 14648.383  │       0 │       0 │         0 │         0 │
│ c5806e │ "kcbxc4xwe4mc" │ "美国-西部2"          │     620 │ 4.38  │ 4.24    │ 192.291  │ 109.086     │ 9685.688   │       0 │       0 │         0 │         0 │
└────────┴────────────────┴────────────────────────┴─────────┴───────┴─────────┴──────────┴─────────────┴────────────┴─────────┴─────────┴───────────┴───────────┘
⠼ 正在流媒体...

列的定义如下:

描述
idx 实例区分符。用于区分在同一区域运行的不同执行的不透明 ID。
部署 正在执行的实例中运行的部署的 ID。
每分钟请求 项目每分钟接收的请求数。
CPU% 项目使用的 CPU 百分比。
每请求 CPU 每个请求的 CPU 时间,以毫秒为单位。
RSS/5分钟 项目在最近 5 分钟内使用的最大 RSS,单位为 MB。
每分钟流入 项目每分钟接收的数据,单位为 KB。
每分钟流出 项目每分钟输出的数据,单位为 KB。
KV 读/分钟 项目每分钟执行的 KV 读取。
KV 写/分钟 项目每分钟执行的 KV 写入。
队列入队/分钟 项目每分钟执行的队列入队。
队列出队/分钟 项目每分钟执行的队列出队。

你可以使用 --region 按区域过滤,该选项接受子字符串并可以多次使用:

deployctl top --region=asia --region=southamerica

日志 Jump to heading

你可以使用 deployctl logs 获取你的部署的日志。它支持实时日志(日志生成时流式传输到控制台)和查询已保存的日志(获取过去生成的日志)。

要显示项目当前生产部署的实时日志:

deployctl logs

Note

与 Deno Deploy Web 应用程序不同,目前日志子命令在更改时不会自动切换到新的生产部署。

要显示特定部署的实时日志:

deployctl logs --deployment=1234567890ab

日志可以使用 --levels--regions--grep 选项按级别、区域和文本过滤:

deployctl logs --levels=error,info --regions=region1,region2 --grep='unexpected'

要显示已保存的日志,可以使用 --since 和/或 --until 选项:

deployctl logs --since=$(date -Iseconds -v-2H) --until=$(date -Iseconds -v-30M)
deployctl logs --since=$(date -Iseconds --date='2 hours ago') --until=$(date -Iseconds --date='30 minutes ago')

API Jump to heading

如果你使用 子托管 APIdeployctl api 将帮助你与 API 交互,同时处理身份验证和头信息:

deployctl api /projects/my-personal-blog/deployments

使用 --method--body 指定 HTTP 方法和请求体:

deployctl api --method=POST --body='{"name": "main-site"}' organizations/5261e096-f9aa-4b72-8440-1c2b5b553def/projects

本地开发 Jump to heading

对于本地开发,你可以使用 deno CLI。要安装 deno,请遵循 Deno 手册 中的说明。

安装完成后,你可以在本地运行你的脚本:

$ deno run --allow-net=:8000 ./main.ts
Listening on http://localhost:8000

要监视文件更改,请添加 --watch 标志:

$ deno run --allow-net=:8000 --watch ./main.ts
Listening on http://localhost:8000

有关 Deno CLI 的更多信息,以及如何配置你的开发环境和 IDE,请访问 Deno 手册的 入门 部分。

JSON 输出 Jump to heading

所有输出数据的命令都有一个 --format=json 选项,将数据以 JSON 对象的形式输出。当 stdout 不是 TTY 时,这种输出模式是默认的,尤其是当以管道输入到其他命令时。与 jq 一起使用时,这种模式使得对 deployctl 提供的所有数据进行编程使用:

获取当前生产部署的 ID:

deployctl deployments show | jq .build.deploymentId

获取每个区域每个隔离的 CPU 时间流的 csv:

deployctl top | jq -r '[.id,.region,.cpuTimePerRequest] | @csv'

你找到了你需要的东西吗?

编辑此页面
隐私政策