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