跳转到主要内容
在本页上

使用命令行工具 deployctl

deployctl 是一款命令行工具 (CLI),可让您无需离开终端即可操作 Deno Deploy 平台。使用它,您可以部署代码、创建和管理您的项目及其部署,以及监控它们的使用情况和日志。

依赖项 跳转到标题

deployctl 唯一的依赖项是 Deno 运行时。您可以通过运行以下命令来安装它

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

您无需事先设置 Deno Deploy 帐户。当您部署第一个项目时,它会自动创建。

安装 deployctl 跳转到标题

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

deno install -gArf jsr:@deno/deployctl

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

部署 跳转到标题

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

deployctl deploy

项目和入口点 跳转到标题

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

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

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

包含和排除文件 跳转到标题

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

  • 仅包含源文件和静态文件

    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

环境变量 跳转到标题

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

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

部署可以使用 Deno.env.get() 访问这些变量。请注意,使用 --env--env-file 设置的环境变量特定于正在创建的部署,并且不会添加到为项目配置的环境变量列表中。

生产环境部署 跳转到标题

您创建的每个部署都有一个唯一的 URL。此外,一个项目还有一个“生产环境 URL”和自定义域名,将流量路由到其“生产环境”部署。部署可以随时提升到生产环境,或者使用 --prod 标志直接创建为生产环境部署

deployctl deploy --prod

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

部署 跳转到标题

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

列表 跳转到标题

您可以使用以下命令列出项目的部署

deployctl deployments list

输出

✔ Page 1 of the list of deployments of the project 'my-project' is ready
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│  Deployment  │               Date               │   Status   │  Database  │                       Domain                       │ Entrypoint │  Branch  │  Commit  │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ kcbxc4xwe4mc │ 12/3/2024 13:21:40 CET (2 days)  │ Preview    │ Preview    │ https://my-project-kcbxc4xwe4mc.deno.dev │ main.ts    │ main     │ 4b6c506  │
│ c0ph5xa9exb3 │ 12/3/2024 13:21:25 CET (2 days)  │ Production │ Production │ https://my-project-c0ph5xa9exb3.deno.dev │ main.ts    │ main     │ 4b6c506  │
│ kwkbev9er4h2 │ 12/3/2024 13:21:12 CET (2 days)  │ Preview    │ Preview    │ https://my-project-kwkbev9er4h2.deno.dev │ main.ts    │ main     │ 4b6c506  │
│ dxseq0jc8402 │ 6/3/2024 23:16:51 CET (8 days)   │ Preview    │ Production │ https://my-project-dxseq0jc8402.deno.dev │ main.ts    │ main     │ 099359b  │
│ 7xr5thz8yjbz │ 6/3/2024 22:58:32 CET (8 days)   │ Preview    │ Preview    │ https://my-project-7xr5thz8yjbz.deno.dev │ main.ts    │ another  │ a4d2953  │
│ 4qr4h5ac3rfn │ 6/3/2024 22:57:05 CET (8 days)   │ Failed     │ Preview    │ n/a                                                │ main.ts    │ another  │ 56d2c88  │
│ 25wryhcqmb9q │ 6/3/2024 22:56:41 CET (8 days)   │ Preview    │ Preview    │ https://my-project-25wryhcqmb9q.deno.dev │ main.ts    │ another  │ 4b6c506  │
│ 64tbrn8jre9n │ 6/3/2024 8:21:33 CET (8 days)    │ Preview    │ Production │ https://my-project-64tbrn8jre9n.deno.dev │ main.ts    │ main     │ 4b6c506  │
│ hgqgccnmzg04 │ 6/3/2024 8:17:40 CET (8 days)    │ Failed     │ Production │ n/a                                                │ main.ts    │ main     │ 8071902  │
│ rxkh1w3g74e8 │ 6/3/2024 8:17:28 CET (8 days)    │ Failed     │ Production │ n/a                                                │ main.ts    │ main     │ b142a59  │
│ wx6cw9aya64c │ 6/3/2024 8:02:29 CET (8 days)    │ Preview    │ Production │ https://my-project-wx6cw9aya64c.deno.dev │ main.ts    │ main     │ b803784  │
│ a1qh5fmew2yf │ 5/3/2024 16:25:29 CET (9 days)   │ Preview    │ Production │ https://my-project-a1qh5fmew2yf.deno.dev │ main.ts    │ main     │ 4bb1f0f  │
│ w6pf4r0rrdkb │ 5/3/2024 16:07:35 CET (9 days)   │ Preview    │ Production │ https://my-project-w6pf4r0rrdkb.deno.dev │ main.ts    │ main     │ 6e487fc  │
│ nn700gexgdzq │ 5/3/2024 13:37:11 CET (9 days)   │ Preview    │ Production │ https://my-project-nn700gexgdzq.deno.dev │ main.ts    │ main     │ c5b1d1f  │
│ 98crfqxa6vvf │ 5/3/2024 13:33:52 CET (9 days)   │ Preview    │ Production │ https://my-project-98crfqxa6vvf.deno.dev │ main.ts    │ main     │ 090146e  │
│ xcdcs014yc5p │ 5/3/2024 13:30:58 CET (9 days)   │ Preview    │ Production │ https://my-project-xcdcs014yc5p.deno.dev │ main.ts    │ main     │ 5b78c0f  │
│ btw43kx89ws1 │ 5/3/2024 13:27:31 CET (9 days)   │ Preview    │ Production │ https://my-project-btw43kx89ws1.deno.dev │ main.ts    │ main     │ 663452a  │
│ 62tg1ketkjx7 │ 5/3/2024 13:27:03 CET (9 days)   │ Preview    │ Production │ https://my-project-62tg1ketkjx7.deno.dev │ main.ts    │ main     │ 24d1618  │
│ 07ag6pt6kjex │ 5/3/2024 13:19:11 CET (9 days)   │ Preview    │ Production │ https://my-project-07ag6pt6kjex.deno.dev │ main.ts    │ main     │ 4944545  │
│ 4msyne1rvwj1 │ 5/3/2024 13:17:16 CET (9 days)   │ Preview    │ Production │ https://my-project-4msyne1rvwj1.deno.dev │ main.ts    │ main     │ dda85e1  │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Press enter to fetch the next page [Enter]

默认情况下,此命令输出每页 20 个部署。您可以使用 Enter 键迭代页面,并使用 --page--limit 选项查询特定页面和页面大小。

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

显示 跳转到标题

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

deployctl deployments show

输出

✔ The production deployment of the project 'my-project' is 'c0ph5xa9exb3'
✔ The details of the deployment 'c0ph5xa9exb3' are ready:

c0ph5xa9exb3
------------
Status:       Production
Date:         2 days, 12 hours, 29 minutes, 46 seconds ago (12/3/2024 13:21:25 CET)
Project:      my-project (e54f23b5-828d-4b7f-af12-706d4591062b)
Organization:	my-team (d97822ac-ee20-4ce9-b942-5389330b57ee)
Domain(s):    https://my-project.deno.dev
              https://my-project-c0ph5xa9exb3.deno.dev
Database:     Production (0efa985f-3793-48bc-8c05-f740ffab4ca0)
Entrypoint:   main.ts
Env Vars:     HOME
Git
  Ref:        main [4b6c506]
  Message:    change name
  Author:     John Doe @johndoe [mailto:[email protected]]
  Url:        https://github.com/arnauorriols/my-project/commit/4b6c50629ceeeb86601347732d01dc7ed63bf34f
Crons:        another cron [*/10 * * * *] succeeded at 15/3/2024 1:50:00 CET after 2 seconds (next at 15/3/2024 2:00:00 CET)
              newest cron [*/10 * * * *] n/a
              yet another cron [*/10 * * * *] failed at 15/3/2024 1:40:00 CET after 2 seconds (next at 15/3/2024 1:51:54 CET)

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

例如,要查看倒数第二次部署的详细信息,您可以执行以下操作

deployctl deployments show --last --prev

要查看特定部署之后两次部署的详细信息

deployctl deployments show 64tbrn8jre9n --next=2

重新部署 跳转到标题

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

信息

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

生产域名 跳转到标题

如果要将项目的生产域名的路由更改为特定部署,可以使用 --prod 选项重新部署它

deployctl deployments redeploy --prod 64tbrn8jre9n

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

注意

此功能类似于 Deno Deploy Web 应用程序中的“提升到生产环境”按钮,不同之处在于“提升到生产环境”按钮不会创建新的部署。相反,“提升到生产环境”按钮会就地更改域名路由,但它仅限于已使用生产数据库的部署。

KV 数据库 跳转到标题

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

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

注意

将部署重新部署到生产环境时,默认情况下它会自动将其配置为使用生产数据库。您可以组合 --prod--db 选项来选择退出此行为。例如,以下命令将重新部署当前的生产部署(鉴于缺少位置参数、--id--last)。新部署将成为新的生产部署,但它将使用预览数据库而不是生产数据库

deployctl deployments redeploy --prod --db=preview

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

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

环境变量 跳转到标题

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

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

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

注意

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

注意

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

删除 跳转到标题

您可以使用 delete 子命令删除部署。

deployctl deployments delete 64tbrn8jre9n

showredeploy 类似,delete 也可以使用 --last--next--prev 选择要删除的部署。以下示例命令删除项目的所有部署,但保留最后一个(请谨慎使用!)

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

项目 跳转到标题

projects 子命令将针对项目整体的所有操作进行分组,包括 listshowrenamecreatedelete

列表 跳转到标题

deployctl projects list 输出您的用户有权访问的所有项目,按组织分组。

Personal org:
    blog
    url-shortener

'my-team' org:
    admin-site
    main-site
    analytics

您可以使用 --org 按组织进行过滤。

deployctl projects list --org=my-team

显示 跳转到标题

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

deployctl projects show main-site

输出

main-site
---------
Organization:	my-team (5261e096-f9aa-4b72-8440-1c2b5b553def)
Domain(s):  	https://my-team.com
		          https://main-site.deno.dev
Dash URL:	    https://dash.deno.com/projects/8422c515-f68f-49b2-89f3-157f4b144611
Repository:	  https://github.com/my-team/main-site
Databases:  	[main] dd28e63e-f495-416b-909a-183380e3a232
		          [*] e061c76e-4445-409a-bc36-a1a9040c83b3
Crons:		    another cron [*/10 * * * *] succeeded at 12/3/2024 14:40:00 CET after 2 seconds (next at 12/3/2024 14:50:00 CET)
		          newest cron [*/10 * * * *] n/a
		          yet another cron [*/10 * * * *] failed at 12/3/2024 14:40:00 CET after 2 seconds (next at 12/3/2024 14:50:00 CET)
Deployments:	kcbxc4xwe4mc	c0ph5xa9exb3*	kwkbev9er4h2	dxseq0jc8402	7xr5thz8yjbz
		          4qr4h5ac3rfn	25wryhcqmb9q	64tbrn8jre9n	hgqgccnmzg04	rxkh1w3g74e8
		          wx6cw9aya64c	a1qh5fmew2yf	w6pf4r0rrdkb	nn700gexgdzq	98crfqxa6vvf
		          xcdcs014yc5p	btw43kx89ws1	62tg1ketkjx7	07ag6pt6kjex	4msyne1rvwj1

重命名 跳转到标题

可以使用 rename 子命令轻松地重命名项目。与其他命令类似,如果您从项目目录中运行该命令,则无需指定项目的当前名称。

deployctl projects rename my-personal-blog

输出

ℹ Using config file '/private/tmp/blog/deno.json'
✔ Project 'blog' (8422c515-f68f-49b2-89f3-157f4b144611) found
✔ Project 'blog' renamed to 'my-personal-blog'

注意

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

创建 跳转到标题

您可以使用以下命令创建一个空项目:

deployctl projects create my-new-project

删除 跳转到标题

您可以使用以下命令删除项目:

deployctl projects delete my-new-project

Top 跳转到标题

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

deployctl top

输出

┌────────┬────────────────┬────────────────────────┬─────────┬───────┬─────────┬──────────┬─────────────┬────────────┬─────────┬─────────┬───────────┬───────────┐
│ (idx)  │ deployment     │ region                 │ Req/min │ CPU%  │ CPU/req │ RSS/5min │ Ingress/min │ Egress/min │ KVr/min │ KVw/min │ QSenq/min │ QSdeq/min │
├────────┼────────────────┼────────────────────────┼─────────┼───────┼─────────┼──────────┼─────────────┼────────────┼─────────┼─────────┼───────────┼───────────┤
│ 6b80e8 │ "kcbxc4xwe4mc" │ "asia-northeast1"      │      80 │ 0.61  │ 4.56    │ 165.908  │ 11.657      │ 490.847    │       0 │       0 │         0 │         0 │
│ 08312f │ "kcbxc4xwe4mc" │ "asia-northeast1"      │      76 │ 3.49  │ 27.58   │ 186.278  │ 19.041      │ 3195.288   │       0 │       0 │         0 │         0 │
│ 77c10b │ "kcbxc4xwe4mc" │ "asia-south1"          │      28 │ 0.13  │ 2.86    │ 166.806  │ 7.354       │ 111.478    │       0 │       0 │         0 │         0 │
│ 15e356 │ "kcbxc4xwe4mc" │ "asia-south1"          │      66 │ 0.97  │ 8.93    │ 162.288  │ 17.56       │ 4538.371   │       0 │       0 │         0 │         0 │
│ a06817 │ "kcbxc4xwe4mc" │ "asia-southeast1"      │     126 │ 0.44  │ 2.11    │ 140.087  │ 16.504      │ 968.794    │       0 │       0 │         0 │         0 │
│ d012b6 │ "kcbxc4xwe4mc" │ "asia-southeast1"      │     119 │ 2.32  │ 11.72   │ 193.704  │ 23.44       │ 8359.829   │       0 │       0 │         0 │         0 │
│ 7d9a3d │ "kcbxc4xwe4mc" │ "australia-southeast1" │       8 │ 0.97  │ 75      │ 158.872  │ 10.538      │ 3.027      │       0 │       0 │         0 │         0 │
│ 3c21be │ "kcbxc4xwe4mc" │ "australia-southeast1" │       1 │ 0.04  │ 90      │ 105.292  │ 0.08        │ 1.642      │       0 │       0 │         0 │         0 │
│ b75dc7 │ "kcbxc4xwe4mc" │ "europe-west2"         │     461 │ 5.43  │ 7.08    │ 200.573  │ 63.842      │ 9832.936   │       0 │       0 │         0 │         0 │
│ 33607e │ "kcbxc4xwe4mc" │ "europe-west2"         │      35 │ 0.21  │ 3.69    │ 141.98   │ 9.438       │ 275.788    │       0 │       0 │         0 │         0 │
│ 9be3d2 │ "kcbxc4xwe4mc" │ "europe-west2"         │     132 │ 0.92  │ 4.19    │ 180.654  │ 15.959      │ 820.513    │       0 │       0 │         0 │         0 │
│ 33a859 │ "kcbxc4xwe4mc" │ "europe-west3"         │    1335 │ 7.57  │ 3.4     │ 172.032  │ 178.064     │ 10967.918  │       0 │       0 │         0 │         0 │
│ 3f54ce │ "kcbxc4xwe4mc" │ "europe-west4"         │     683 │ 4.76  │ 4.19    │ 187.802  │ 74.696      │ 7565.017   │       0 │       0 │         0 │         0 │
│ cf881c │ "kcbxc4xwe4mc" │ "europe-west4"         │     743 │ 3.95  │ 3.19    │ 177.213  │ 86.974      │ 6087.454   │       0 │       0 │         0 │         0 │
│ b4565b │ "kcbxc4xwe4mc" │ "me-west1"             │       3 │ 0.21  │ 55      │ 155.46   │ 2.181       │ 0.622      │       0 │       0 │         0 │         0 │
│ b97970 │ "kcbxc4xwe4mc" │ "southamerica-east1"   │       3 │ 0.08  │ 25      │ 186.049  │ 1.938       │ 0.555      │       0 │       0 │         0 │         0 │
│ fd7a08 │ "kcbxc4xwe4mc" │ "us-east4"             │       3 │ 0.32  │ 80      │ 201.101  │ 0.975       │ 58.495     │       0 │       0 │         0 │         0 │
│ 95d68a │ "kcbxc4xwe4mc" │ "us-east4"             │     133 │ 1.05  │ 4.77    │ 166.052  │ 28.107      │ 651.737    │       0 │       0 │         0 │         0 │
│ c473e7 │ "kcbxc4xwe4mc" │ "us-east4"             │       0 │ 0     │ 0       │ 174.154  │ 0.021       │ 0          │       0 │       0 │         0 │         0 │
│ ebabfb │ "kcbxc4xwe4mc" │ "us-east4"             │      19 │ 0.15  │ 4.78    │ 115.732  │ 7.764       │ 67.054     │       0 │       0 │         0 │         0 │
│ eac700 │ "kcbxc4xwe4mc" │ "us-south1"            │     114 │ 2.37  │ 12.54   │ 183.001  │ 18.401      │ 22417.397  │       0 │       0 │         0 │         0 │
│ cd2194 │ "kcbxc4xwe4mc" │ "us-south1"            │      35 │ 0.33  │ 5.68    │ 145.871  │ 8.142       │ 91.236     │       0 │       0 │         0 │         0 │
│ 140fec │ "kcbxc4xwe4mc" │ "us-west2"             │     110 │ 1.43  │ 7.84    │ 115.298  │ 18.093      │ 977.993    │       0 │       0 │         0 │         0 │
│ 51689f │ "kcbxc4xwe4mc" │ "us-west2"             │    1105 │ 7.66  │ 4.16    │ 187.277  │ 154.876     │ 14648.383  │       0 │       0 │         0 │         0 │
│ c5806e │ "kcbxc4xwe4mc" │ "us-west2"             │     620 │ 4.38  │ 4.24    │ 192.291  │ 109.086     │ 9685.688   │       0 │       0 │         0 │         0 │
└────────┴────────────────┴────────────────────────┴─────────┴───────┴─────────┴──────────┴─────────────┴────────────┴─────────┴─────────┴───────────┴───────────┘
⠼ Streaming...

列的定义如下:

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

您可以使用 --region 过滤区域,它接受子字符串并且可以多次使用。

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

日志 跳转到标题

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

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

deployctl logs

注意

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

显示特定部署的实时日志

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 跳转到标题

如果您使用子托管 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

本地开发 跳转到标题

对于本地开发,您可以使用 deno CLI。要安装 deno,请按照Deno 手册中的说明进行操作。

安装后,您可以在本地运行脚本。

$ deno run --allow-net=:8000 ./main.ts
Listening on https://127.0.0.1:8000

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

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

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

JSON 输出 跳转到标题

所有输出数据的命令都有一个 --format=json 选项,可以将数据以 JSON 对象的形式输出。当标准输出不是 TTY 时(尤其是在通过管道传输到另一个命令时),此输出模式是默认模式。结合 jq,此模式支持以编程方式使用 deployctl 提供的所有数据。

获取当前生产部署的 ID。

deployctl deployments show | jq .build.deploymentId

获取每个区域的每个隔离区上每个请求的 CPU 时间的 CSV 流。

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