Spec-Zone.ru › Deno 2

Использование 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

Опция -A в команде deno install предоставляет все разрешения установленной скрипту. Вы можете отказаться от ее использования, в этом случае вам будет предложено предоставить необходимые разрешения при необходимости во время выполнения инструмента.

Развертывание

Для выполнения нового развертывания кода перейдите в корневой каталог проекта и выполните:

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 (также поддерживаются в файле конфигурации). Эти аргументы принимают конкретные файлы, целые директории и шаблоны. Вот несколько примеров:

  • Включить только файлы исходного кода и статические файлы:

    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

Подробнее о развертываниях в продакшен см. в документации Развертывания.

Развертывания

Подкоманда deployments объединяет все операции с развертываниями.

Список

Вы можете перечислить развертывания проекта с помощью:

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:johndoe@deno.com]
  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

А чтобы увидеть подробности 2 развертываний после определённого развертывания:

deployctl deployments show 64tbrn8jre9n --next=2

Переразвертывание

Команда redeploy создаёт новое развертывание, повторно используя сборку существующего развертывания, для изменения ресурсов, связанных с ним. Это включает в себя домены продакшена, переменные окружения и базы данных KV.

Информация

Семантика выбора развертывания для переразвертывания такая же, как у подкоманды показать, включая --last, --id, --next и --prev.

Домены продакшена

Если вы хотите изменить маршрутизацию домена продакшена проекта на конкретное развертывание, вы можете переразвернуть его с опцией --prod:

deployctl deployments redeploy --prod 64tbrn8jre9n

Это создаст новое развертывание с таким же кодом и переменными окружения, как и у указанного развертывания, но с доменамми продакшена проекта, указывающими на него. Для проектов с базами данных preview/prod (т. е. проектов, связанных с GitHub), это также задаст базу данных продакшена для нового развертывания.

Примечание

Эта функция похожа на кнопку «Продвинуть в продакшен», которая есть в веб-приложении Deno Deploy, за исключением того, что кнопка «Продвинуть в продакшен» не создаёт новое развертывание. Вместо этого кнопка «Продвинуть в продакшен» изменяет маршрутизацию домена на месте, однако она ограничена развертываниями, уже использующими базу данных продакшена.

База данных 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 текущее развертывание в продакшен переразвертывается с новыми переменными окружения, и новое развертывание становится новым развертыванием в продакшене.

Удалить

Вы можете удалить развертывание, используя подкоманду delete:

deployctl deployments delete 64tbrn8jre9n

Как и show и redeploy, delete также могут использовать --last, --next и --prev для выбора развертывания для удаления. Вот пример команды, удаляющей все развертывания проекта, кроме последнего (используйте с осторожностью!):

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

Проекты

Подкоманда projects объединяет все операции с проектами в целом. Это включает list, show, rename, create и delete.

Список

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. Если вы находитесь внутри проекта, он получит идентификатор проекта из файла конфигурации. Вы также можете указать проект, используя --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 используется для мониторинга использования ресурсов проекта в реальном времени:

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 Дискриминатор экземпляра. Непрозрачный идентификатор для различения различных выполняемых задач в одной и той же области.
развертывание Идентификатор развертывания, выполняемого в экземпляре выполнения.
Запр/мин Полученные проектом запросы в минуту.
CPU% Процент использования процессора проектом.
CPU/запр Время работы процессора на запрос в миллисекундах.
RSS/5мин Максимальное использованное значение RSS проектом за последние 5 минут в МБ.
Входящий/мин Данные, получаемые проектом в минуту, в КБ.
Исходящий/мин Данные, выводимые проектом в минуту, в КБ.
KVч/мин Выполненные проектом чтение KV в минуту.
KVз/мин Выполненные проектом записи KV в минуту.
QEnqueue/мин Выполненные проектом очереди enqueue в минуту.
QDequeue/мин Выполненные проектом очереди dequeue в минуту.

Вы можете фильтровать по региону, используя --region, который принимает подстроки и может использоваться несколько раз:

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

Логи

Вы можете получить логи своих развертываний с помощью deployctl logs. Оно поддерживает как живые логи, где логи передаются в консоль по мере их генерации, так и запросы сохраненных логов, где извлекаются логи, сгенерированные в прошлом.

Чтобы отобразить живые логи текущего производственного развертывания проекта:

deployctl logs
Примечание

В отличие от веб-приложения Deno Deploy, в настоящее время подкоманда логов не переключается автоматически на новое производственное развертывание при его изменении.

Чтобы отобразить живые логи определенного развертывания:

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

Если вы используете API для субхостинга, deployctl 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

Разработка на локальной машине

Для разработки на локальной машине вы можете использовать CLI deno. Чтобы установить 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 и о том, как настроить свою среду разработки и IDE, посетите раздел «Начало работы» в руководстве Deno по адресу https://deno.land/manual/getting_started.

Вывод в формате JSON

Все команды, выводящие данные, имеют опцию --format=json, которая выводит данные в формате JSON. Этот режим вывода является стандартным, когда stdout не является TTY, в частности, при передаче данных в другую команду. В сочетании с jq, этот режим позволяет программно использовать все данные, предоставляемые deployctl:

Получить идентификатор текущего производственного развертывания:

deployctl deployments show | jq .build.deploymentId

Получить CSV-поток времени работы процессора на запрос на каждом изоляте каждой области:

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

© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/deploy/manual/deployctl

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API