INTEGRITY Документация

Команды

Полный список всех доступных команд для wrangler, интерфейс командной строки Workers.


generate

Создайте каркас проекта Cloudflare Workers на основе публичного репозитория GitHub.

wrangler generate [$NAME] [$TEMPLATE] [--type=$TYPE] [--site]

Значения по умолчанию обозначаются как =value.


init

Создайте каркас конфигурационный файл Wrangler в существующем каталоге. Эту команду можно использовать как альтернативу generate если вы предпочитаете самостоятельно клонировать репозиторий шаблона или у вас уже есть проект на JavaScript и вы хотите использовать Wrangler.

wrangler init [$NAME] [--type=$TYPE] [--site]

Значения по умолчанию обозначаются как =value.


сборка

Соберите свой проект (если это применимо). Эта команда проверяет файл Wrangler и реагирует на "type" значение указано.

При использовании type = "webpack", Wrangler соберет Worker с помощью встроенной установки webpack. При использовании type = "javascript" , build.command, если он определён, будет выполнен.

wrangler build [--env $ENVIRONMENT_NAME]

login

Авторизуйте Wrangler в вашей учётной записи Cloudflare. При этом в браузере откроется страница входа с запросом разрешений на доступ к вашей учётной записи. Эта команда служит альтернативой wrangler config и использует токены OAuth.

wrangler login [--scopes-list] [--scopes $SCOPES]

Все аргументы и флаги этой команды являются необязательными:

wrangler login по умолчанию использует все доступные области действия, если флаги не указаны.


logout

Отзыв разрешения Wrangler на доступ к вашей учётной записи. Эта команда аннулирует текущий OAuth-токен и удалит файл конфигурации, если он существует.

wrangler logout

Эта команда аннулирует только токены OAuth, полученные через wrangler login команду. Однако она попытается удалить файл конфигурации независимо от способа авторизации.

Чтобы удалить свой API-токен:

  1. На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.

    Перейдите в Workers & Pages ↗
  2. В Обзор > Получите API-токен в меню справа.

  3. Откройте меню с тремя точками у своего токена Wrangler и выберите Удалить.


конфигурация

Настройте Wrangler так, чтобы для доступа к ресурсам аккаунта и управления ими он использовал Cloudflare API Token или Global API key вместо OAuth токенов.

wrangler config [--api-key]

Также для аутентификации можно использовать переменные окружения или wrangler login чтобы авторизоваться с помощью токенов OAuth.


публикация

Опубликуйте Worker в Cloudflare. Несколько ключей в файле Wrangler определяют, публикуете ли вы его в *.workers.dev поддомен, или собственный домен. Однако собственные домены должны быть проксированы через Cloudflare (значок оранжевого облака). См. Руководство по началу работы, где это описано подробнее.

wrangler publish [--env $ENVIRONMENT_NAME]

Чтобы использовать эту команду, в файле Wrangler должны быть указаны следующие поля:

Можно опубликовать в <your-worker>.<your-subdomain>.workers.dev или на пользовательский домен.

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

Публикация на workers.dev

Чтобы опубликовать в *.workers.dev, вам сначала нужно зарегистрировать поддомен. Зарегистрировать поддомен можно, выполнив wrangler subdomain команда.

После регистрации поддомена добавьте workers_dev в файл Wrangler.

Публикация на собственном домене

Чтобы опубликовать проект на собственном домене, укажите эти три поля в файле Wrangler.

Публикация одного и того же кода на нескольких доменах

Чтобы опубликовать код на нескольких доменах, см. документация об окружениях.


dev

wrangler dev представляет собой команду, которая устанавливает соединение между localhost и глобальный сетевой сервер, который запускает ваш Worker в режиме разработки. cloudflared туннель перенаправляет все запросы на сервер глобальной сети, который непрерывно обновляется по мере изменения кода вашего Worker. Это обеспечивает полный доступ к Workers KV, Durable Objects и другим продуктам платформы разработчика Cloudflare. dev команда позволяет тестировать Worker в процессе разработки.

wrangler dev [--env $ENVIRONMENT_NAME] [--ip <ip>] [--port <port>] [--host <host>] [--local-protocol <http|https>] [--upstream-protocol <http|https>]

Эти аргументы также можно задать в файле Wrangler. См. wrangler dev конфигурация документации.

Использование

Выполните wrangler dev из каталога вашего Worker. Wrangler запустит локальный сервер, который принимает запросы, выполняет ваш Worker и перенаправляет их на хост. Если вы хотите использовать хост, отличный от вашей зоны или tutorials.cloudflare.com, вы можете указать с помощью --host example.com.

wrangler dev
💁  JavaScript project found. Skipping unnecessary build!
💁  watching "./"
👂  Listening on http://127.0.0.1:8787

С wrangler dev запущен, вы можете отправлять HTTP-запросы на localhost:8787 и ваш Worker должен выполняться как ожидается. Вы также увидите console.log сообщения и исключения, появляющиеся в терминале. Если что-то из этого не происходит или вывод кажется некорректным, создать issue.


tail

Запустите сессию для трансляции логов развернутого Worker в реальном времени.

wrangler tail [--format $FORMAT] [--status $STATUS] [OPTIONS]

После запуска wrangler tail в каталоге с проектом вы будете получать живой поток логов консоли и исключений для каждого запроса, поступающего в ваш Worker.

Подобно всем командам Wrangler, выполните wrangler tail из корневого каталога Worker (каталога, где находится файл Wrangler).


предпросмотр

Откройте предпросмотр проекта с помощью Сервис предпросмотра Cloudflare Workers.

wrangler preview [--watch] [--env $ENVIRONMENT_NAME] [ --url $URL] [$METHOD] [$BODY]

Значения по умолчанию обозначаются как =value.

kv_namespaces

Если вы используете kv_namespaces с wrangler preview, вам нужно будет указать preview_id в файле Wrangler, прежде чем запускать сеанс. Это нужно для того, чтобы вы случайно не записали изменения в производственное пространство имён во время разработки. Вы можете сделать preview_id равное id если хотите выполнить предпросмотр с использованием продакшен-пространства имён, но при этом должны убедиться, что не записываете в KV значения, способные нарушить работу продакшен-Worker.

Чтобы создать preview_id выполнить:

wrangler kv:namespace create --preview "NAMESPACE"

Предпросмотр в Windows Subsystem for Linux (WSL 1/2)

Настройка $BROWSER на бинарный файл браузера

WSL представляет собой среду Linux, поэтому Wrangler пытается вызвать xdg-open чтобы открыть браузер. Чтобы сделать wrangler preview работали с WSL, вам следует настроить $BROWSER на путь к исполняемому файлу браузера:

export BROWSER="/mnt/c/tools/firefox.exe"
wrangler preview

Пробелы в путях к файлам нечасто встречаются в Linux, и некоторые программы, например xdg-open прервётся на пути с пробелами. Обойти это можно, связав бинарный файл с вашим /usr/local/bin:

ln -s "/mnt/c/Program Files/Mozilla Firefox/firefox.exe" firefox
export BROWSER=firefox

Настройка $BROWSER на wsl-open

Ещё один вариант: установить wsl-open и задайте $BROWSER переменная окружения к wsl-open через wsl-open -w. Это гарантирует, что xdg-open использует wsl-open при попытке открыть ваш браузер.

Если вы используете WSL 2, потребуется установить wsl-open после их автономный метод а не через npm. Это связано с тем, что их npm-пакет ещё не обновлён для поддержки WSL 2.


route

Просмотр списка или удаление маршрута, связанного с доменом:

wrangler route list [--env $ENVIRONMENT_NAME]

Значения по умолчанию обозначаются как =value.

Эта команда перенаправит JSON-ответ от API для получения списка маршрутов. Каждый объект в списке JSON содержит идентификатор маршрута, шаблон маршрута и имя Worker, назначенного этому маршруту. Если передать это через такой инструмент, как jq аккуратно отобразит результат.

wrangler route delete $ID [--env $ENVIRONMENT_NAME]

Значения по умолчанию обозначаются как =value.


поддомен

Создайте или измените свой *.workers.dev поддомен.

wrangler subdomain <name>

secret

Работа с секретами.

put

Создайте секрет или замените уже существующий.

wrangler secret put <name> --env ENVIRONMENT_NAME
Enter the secret text you would like assigned to the variable name on the Worker named my-worker-ENVIRONMENT_NAME:

Вам будет предложено ввести значение секрета. Эта команда может принимать данные через пайп, поэтому возможен и следующий вариант:

echo "-----BEGIN PRIVATE KEY-----\nM...==\n-----END PRIVATE KEY-----\n" | wrangler secret put PRIVATE_KEY

delete

Удалить секрет из указанного скрипта.

wrangler secret delete <name> --env ENVIRONMENT_NAME

list

Получить список имён всех секретов, привязанных к указанному Worker.

wrangler secret list --env ENVIRONMENT_NAME

kv

kv подкоманда позволяет хранить данные приложения в сети Cloudflare для доступа к ним из Workers с помощью Workers KV. Операции KV привязаны к вашему аккаунту, поэтому для использования любой из этих команд вам нужно:

Начало работы

Чтобы использовать Workers KV в своём Worker, сначала нужно создать пространство имён KV. Это делается с помощью kv:namespace подкоманда.

kv:namespace подкоманда принимает в качестве аргумента новое имя привязки. Пространство имён Workers KV будет создано на основе объединения имени вашего Worker (из файла Wrangler) и указанного вами имени привязки:

wrangler kv:namespace create "MY_KV"
🌀  Creating namespace with title "my-site-MY_KV"
✨  Success!
Add the following to your configuration file:
kv_namespaces = [
  { binding = "MY_KV", id = "e29b263ab50e42ce9b637fa8370175e8" }
]

После успешного выполнения операций будет выведен новый блок конфигурации, который нужно скопировать в ваш файл Wrangler. Добавьте полученные данные в существующий kv_namespaces конфигурацию, если она уже есть. Теперь вы можете обращаться к привязке из Worker:

let value = await MY_KV.get("my-key");

Чтобы записать значение в пространство имён KV с помощью Wrangler, выполните wrangler kv:key put подкоманда.

wrangler kv:key put --binding=MY_KV "key" "value"
✨  Success

Вместо --binding, вы можете использовать --namespace-id чтобы указать, какое пространство имен KV должно получить операцию:

wrangler kv:key put --namespace-id=e29b263ab50e42ce9b637fa8370175e8 "key" "value"
✨  Success

Кроме того, пространства имен KV можно использовать с окружениями (environments). Это может быть полезно, если в коде есть ссылка на привязку KV вида MY_KV, и вы хотите, чтобы эти привязки указывали на разные пространства имён (например, одно для staging и одно для production).

Файл Wrangler с двумя окружениями:

{
	"env": {
		"staging": {
			"kv_namespaces": [
				{
					"binding": "MY_KV",
					"id": "e29b263ab50e42ce9b637fa8370175e8"
				}
			]
		},
		"production": {
			"kv_namespaces": [
				{
					"binding": "MY_KV",
					"id": "a825455ce00f4f7282403da85269f8ea"
				}
			]
		}
	}
}
[[env.staging.kv_namespaces]]
binding = "MY_KV"
id = "e29b263ab50e42ce9b637fa8370175e8"

[[env.production.kv_namespaces]]
binding = "MY_KV"
id = "a825455ce00f4f7282403da85269f8ea"

Чтобы вставить значение в конкретное пространство имён KV, можно использовать:

wrangler kv:key put --env=staging --binding=MY_MV "key" "value"
✨  Success

С --namespace-id всегда уникален (в отличие от имён binding), поэтому вам не нужно указывать --env аргумент.

Основные понятия

Большинство kv команды требуют указать пространство имён. Указать его можно двумя способами:

  1. С --binding:

    wrangler kv:key get --binding=MY_KV "my key"
    • Это можно сочетать с --preview флаг для взаимодействия с preview-пространством имён вместо production-пространства имён.
  2. С --namespace-id:

    wrangler kv:key get --namespace-id=06779da6940b431db6e566b4846d64db "my key"

Большинство kv подкоманды также позволяют указать окружение с помощью необязательного --env флаг. Это позволяет публиковать Workers с одним и тем же кодом, но с разными пространствами имён. Например, вы можете использовать отдельные пространства имён KV для staging и production в файле Wrangler:

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"type": "webpack",
	"name": "my-worker",
	"account_id": "<account id here>",
	"route": "staging.example.com/*",
	"workers_dev": false,
	"kv_namespaces": [
		{
			"binding": "MY_KV",
			"id": "06779da6940b431db6e566b4846d64db"
		}
	],
	"env": {
		"production": {
			"route": "example.com/*",
			"kv_namespaces": [
				{
					"binding": "MY_KV",
					"id": "07bc1f3d1f2a4fd8a45a7e026e2681c6"
				}
			]
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
type = "webpack"
name = "my-worker"
account_id = "<account id here>"
route = "staging.example.com/*"
workers_dev = false

[[kv_namespaces]]
binding = "MY_KV"
id = "06779da6940b431db6e566b4846d64db"

[env.production]
route = "example.com/*"

  [[env.production.kv_namespaces]]
  binding = "MY_KV"
  id = "07bc1f3d1f2a4fd8a45a7e026e2681c6"

С файлом Wrangler, приведенным выше, можно указать --env production когда нужно выполнить действие KV над пространством имён MY_KV в разделе env.production. Например, с файлом Wrangler выше можно получить значение из production-экземпляра KV с помощью:

wrangler kv:key get --binding "MY_KV" --env=production "my key"

Подробнее о средах см. в Окружения.

kv:namespace

create

Создайте новое пространство имён.

wrangler kv:namespace create $NAME [--env=$ENVIRONMENT_NAME] [--preview]
Использование
wrangler kv:namespace create "MY_KV"
🌀  Creating namespace with title "worker-MY_KV"
✨  Add the following to your wrangler.toml:
kv_namespaces = [
  { binding = "MY_KV", id = "e29b263ab50e42ce9b637fa8370175e8" }
]
wrangler kv:namespace create "MY_KV" --preview
🌀  Creating namespace with title "my-site-MY_KV_preview"
✨  Success!
Add the following to your wrangler.toml:
kv_namespaces = [
  { binding = "MY_KV", preview_id = "15137f8edf6c09742227e99b08aaf273" }
]

list

Получить список всех пространств имён KV, связанных с указанным account ID.

wrangler kv:namespace list
Использование

В этом примере команда Wrangler передаётся через jq команда:

wrangler kv:namespace list | jq "."
[
  {
    "id": "06779da6940b431db6e566b4846d64db",
    "title": "TEST_NAMESPACE"
  },
  {
    "id": "32ac1b3c2ed34ed3b397268817dea9ea",
    "title": "STATIC_CONTENT"
  }
]

delete

Удалить указанное пространство имён.

wrangler kv:namespace delete --binding= [--namespace-id=]
Использование
wrangler kv:namespace delete --binding=MY_KV
Are you sure you want to delete namespace f7b02e7fc70443149ac906dd81ec1791? [y/n]
yes
🌀  Deleting namespace f7b02e7fc70443149ac906dd81ec1791
✨  Success
wrangler kv:namespace delete --binding=MY_KV --preview
Are you sure you want to delete namespace 15137f8edf6c09742227e99b08aaf273? [y/n]
yes
🌀  Deleting namespace 15137f8edf6c09742227e99b08aaf273
✨  Success

kv:key

put

Запишите одну пару ключ-значение в конкретное пространство имён.

wrangler kv:key put --binding= [--namespace-id=] $KEY $VALUE
✨  Success
Использование
wrangler kv:key put --binding=MY_KV "key" "value"
✨  Success
wrangler kv:key put --binding=MY_KV --preview "key" "value"
✨  Success
wrangler kv:key put --binding=MY_KV "key" "value" --ttl=10000
✨  Success
wrangler kv:key put --binding=MY_KV "key" value.txt --path
✨  Success

list

Вывести список всех ключей в указанном пространстве имен.

wrangler kv:key list --binding= [--namespace-id=] [--prefix] [--env]
Использование

В этом примере команда Wrangler передаётся через jq команда:

wrangler kv:key list --binding=MY_KV --prefix="public" | jq "."
[
  {
    "name": "public_key"
  },
  {
    "name": "public_key_with_expiration",
    "expiration": "2019-09-10T23:18:58Z"
  }
]

get

Чтение одного значения по ключу из указанного пространства имён.

wrangler kv:key get --binding= [--env=] [--preview] [--namespace-id=] "$KEY"
Использование
wrangler kv:key get --binding=MY_KV "key"
value

delete

Удаляет одну пару «ключ-значение» из указанного пространства имён.

wrangler kv:key delete --binding= [--env=] [--preview] [--namespace-id=] "$KEY"
Использование
wrangler kv:key delete --binding=MY_KV "key"
Are you sure you want to delete key "key"? [y/n]
yes
🌀  Deleting key "key"
✨  Success

kv:bulk

put

Запишите в указанное пространство имён файл, содержащий пары ключ-значение.

wrangler kv:bulk put --binding= [--env=] [--preview] [--namespace-id=] $FILENAME

Эта команда принимает в качестве аргумента JSON-файл со списком пар «ключ-значение» для загрузки. Пример входного JSON:

[
	{
		"key": "test_key",
		"value": "test_value",
		"expiration_ttl": 3600
	}
]

Чтобы сохранить данные JSON, приведите value в строку:

[
	{
		"key": "test_key",
		"value": "{\"name\": \"test_value\"}",
		"expiration_ttl": 3600
	}
]

Ниже приведена полная схема для записей ключ-значение, загружаемых через массовый API:

Если оба expiration и expiration_ttl указаны для данного ключа, API отдаст предпочтение expiration_ttl.

Использование
wrangler kv:bulk put --binding=MY_KV allthethingsupload.json
🌀  uploading 1 key value pairs
✨  Success

delete

Удалить все указанные ключи в заданном пространстве имён.

wrangler kv:bulk delete --binding= [--env=] [--preview] [--namespace-id=] $FILENAME

Эта команда принимает в качестве аргумента JSON-файл со списком пар «ключ-значение» для удаления. Пример входного JSON:

[
	{
		"key": "test_key",
		"value": ""
	}
]
Использование
wrangler kv:bulk delete --binding=MY_KV allthethingsdelete.json
Are you sure you want to delete all keys in allthethingsdelete.json? [y/n]
y
🌀  deleting 1 key value pairs
✨  Success

Переменные окружения

Wrangler поддерживает любой конфигурационный файл Wrangler ключи, переданные как переменные окружения. Для этого используется передача CF_ + любой TOML-ключ в верхнем регистре. Например:

CF_NAME=my-worker CF_ACCOUNT_ID=1234 wrangler dev


--help

wrangler --help
👷 ✨  wrangler 1.12.3
The Wrangler Team <[email protected]>

USAGE:
    wrangler [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    kv:namespace    🗂️  Interact with your Workers KV Namespaces
    kv:key          🔑  Individually manage Workers KV key-value pairs
    kv:bulk         💪  Interact with multiple Workers KV key-value pairs at once
    route           ➡️  List or delete worker routes.
    secret          🤫  Generate a secret that can be referenced in the worker script
    generate        👯  Generate a new worker project
    init            📥  Create a wrangler.toml for an existing project
    build           🦀  Build your worker
    preview         🔬  Preview your code temporarily on cloudflareworkers.com
    dev             👂  Start a local server for developing your worker
    publish         🆙  Publish your worker to the orange cloud
    config          🕵️  Authenticate Wrangler with a Cloudflare API Token or Global API Key
    subdomain       👷  Configure your workers.dev subdomain
    whoami          🕵️  Retrieve your user info and test your auth config
    tail            🦚  Aggregate logs from production worker
    login           🔓  Authorize Wrangler with your Cloudflare username and password
    logout          ⚙️  Remove authorization from Wrangler.
    help            Prints this message or the help of the given subcommand(s)