← Cloudflare Workers / workers / wrangler
Профили аутентификации
Wrangler всегда аутентифицируется только от имени одного пользователя. Профиль представляет собой именованный вход через OAuth, который вы ограничиваете выбранным набором аккаунтов и можете привязать к каталогу.
Используйте профили, чтобы переключаться между аккаунтами для разных проектов без повторного запуска wrangler login. Профили хранятся в wrangler auth.
Когда использовать профили
Используйте профили, если вы работаете с несколькими аккаунтами Cloudflare на одном компьютере:
- Работа для агентств и клиентов : используйте отдельный логин для каждого аккаунта клиента и привяжите его к каталогу проекта этого клиента. Команды, запущенные в каждом каталоге, автоматически используют соответствующий профиль.
- Окружения, разделённые по аккаунтам : держите staging и production в разных аккаунтах и привяжите к каждому из них отдельный профиль. Свяжите профиль с
account_idв вашем конфигурационный файл Wrangler чтобы команда не могла обратиться не к тому аккаунту.
Как работают профили
Профиль объединяет два компонента:
- Логин, созданный через OAuth. Во время OAuth-авторизации вы выбираете, к каким аккаунтам получит доступ профиль. Один профиль может открывать доступ сразу к нескольким аккаунтам, которыми владеет пользователь.
- Привязка каталога. Когда вы активируете профиль в каталоге, этот каталог и его подкаталоги используют данный профиль.
Порядок разрешения
Для каждой команды Wrangler выбирает профиль в следующем порядке, начиная с наивысшего приоритета:
-
CLOUDFLARE_API_TOKENпеременная окружения. Если она задана, она переопределяет все профили. -
--profileфлаг, который применяется только к одному запуску команды. - Ближайший активированный родительский каталог. Wrangler определяет его от каталога, содержащего файл конфигурации, если вы указали
--config, в противном случае из рабочего каталога. - Профиль по умолчанию, которым управляет
wrangler loginиwrangler logout.
Выбор аккаунта
В рамках определенного профиля Wrangler выбирает целевой аккаунт в следующем порядке:
-
account_idв вашем конфигурационный файл Wrangler, илиCLOUDFLARE_ACCOUNT_IDпеременную окружения. - В противном случае используется учетная запись, выбранная для профиля при входе в систему.
Если команда нацелена на аккаунт, недоступный для активного профиля, Wrangler завершается с ошибкой, указывающей аккаунт и профиль. Wrangler не переключается на другой аккаунт автоматически.
Создайте профиль
Запустите wrangler auth create с именем. Wrangler запускает процесс OAuth, в котором вы выбираете, к каким аккаунтам будет иметь доступ этот профиль.
wrangler auth create workВыполните команду повторно с тем же именем, чтобы повторно авторизовать существующий профиль, например после истечения срока действия его токена.
Активация профиля в каталоге
Запустите wrangler auth activate чтобы привязать профиль к каталогу. Привязка применяется к этому каталогу и его подкаталогам. По умолчанию используется текущий рабочий каталог.
wrangler auth activate work ~/projects/workПоддиректория может переопределить профиль, привязанный выше по дереву, активировав другой профиль.
Работа сразу с несколькими аккаунтами клиентов
В этом примере для агентской работы настраивается отдельный профиль на каждого клиента.
-
Создайте профиль для первого клиента. Во время OAuth-авторизации выберите аккаунты, к которым сможет обращаться этот профиль.
wrangler auth create client-a -
Привяжите профиль к каталогу проекта клиента.
wrangler auth activate client-a ~/clients/client-a -
Повторите для второго клиента.
wrangler auth create client-b wrangler auth activate client-b ~/clients/client-b
Команды выполняются в ~/clients/client-a теперь используют client-a профиле, а команды в ~/clients/client-b используйте client-b профиль. Для переключения между ними повторный вход не требуется.
Отдельные аккаунты для тестового и боевого окружений
Если staging и production находятся в разных аккаунтах, привяжите профиль к каталогу каждого окружения и закрепите аккаунт в конфигурации каждого проекта. account_id служит защитой от ошибок: команда не сможет развернуть проект не в тот аккаунт, даже если профиль имеет доступ к обоим.
-
Создайте и активируйте профиль для каждого окружения.
wrangler auth create staging wrangler auth activate staging ~/projects/staging wrangler auth create production wrangler auth activate production ~/projects/production -
Установите соответствующий
account_idв рамках каждого проекта, в конфигурационный файл Wrangler.{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "my-worker", "account_id": "<PRODUCTION_ACCOUNT_ID>" }name = "my-worker" account_id = "<PRODUCTION_ACCOUNT_ID>"
Переключение профилей для отдельной команды
Используйте --profile флаг для запуска одной команды с определённым профилем без изменения привязки каталога.
wrangler deploy --profile staging --profile флаг не поддерживается auth, login, logout, а также whoami команды.
Список профилей
Запустите wrangler auth list чтобы увидеть все профили и связанные с ними каталоги.
wrangler auth listУдаление привязки или профиля
Чтобы отключить использование профиля для каталога, выполните wrangler auth deactivate в этом каталоге. Каталог возвращается к профилю, привязанному выше него, либо к профилю по умолчанию.
wrangler auth deactivate ~/projects/stagingЧтобы удалить профиль и все связанные с ним привязки к каталогам, выполните wrangler auth delete.
wrangler auth delete stagingПрофили и переменные окружения
Профили удобны только для локальной машины. Они не применяются в CI, контейнерах и других автоматизированных средах, которые аутентифицируются для каждой среды с помощью CLOUDFLARE_API_TOKEN. Дополнительную информацию см. в Запуск Wrangler в CI/CD.
При наличии переменных окружения применяются два правила:
- Когда
CLOUDFLARE_API_TOKENзадан, Wrangler использует его вместо любого профиля. Пока он задан, вы не можете создавать, активировать, деактивировать или удалять профили. CLOUDFLARE_ACCOUNT_IDиaccount_idв конфигурационном файле Wrangler всегда учитываются, в том числе внутри активного профиля.