Или перефразировать другим способом, может ли кто-нибудь объяснить различные параметры для команды az cdn endpoint rule add
?
Документация Verizon не очень хорошо сочетается с Azure CLI.
Verizon перешла со своего механизма правил v3 на v4, и, хотя это значительное улучшение макета и удобства использования, оно по-прежнему не предоставляет информации о том, какие именно поля c или как они будут сопоставлены с командой Azure CLI az cdn endpoint rule add
.
Одна проблема заключается в том, что новый интерфейс v4 потерял «исходный» выпадающий список с внутренне созданным идентификатором Verizon.
@ Christopher Cabezudo Rodriguez имеет bruteforced , как получить это значение, но это не помогает при попытке настроить это с помощью CLI.
У меня 3 HTTP Правила, которые я хочу создать.
- Первое правило HTTP позволяет нашему Angular одностраничному приложению «SPA» работать там, где навигационные щелчки, изменяющие URL-адрес, не перезагружаются и не уходят со страницы.
- Второе правило HTTP ограничивает c HTTP-трафик для маршрутизации на HTTPS.
- Третье правило HTTP предписывает браузеру всегда проверять, не изменилось ли что-нибудь между CDN и кешем. Это гарантирует, что пользователь всегда будет загружать последнюю версию клиентского приложения.
Для начала я создаю CDN и конечную точку следующим образом:
az cdn profile create --name $AZ_APP_CDN --resource-group $AZ_RESOURCE_GROUP_APP --location $AZ_LOCATION --sku Premium_Verizon
az cdn endpoint create --name $AZ_APP_CDN_ENDPOINT --resource-group $AZ_RESOURCE_GROUP_APP --profile-name $AZ_APP_CDN --origin $ST_BLOB_ORIGIN_DOMAIN --no-http true
В V4 В Rules Engine они будут выглядеть так:
Я наполовину собрал вместе свое лучшее предположение о том, что мне может понадобиться в качестве команд CLI для этого:
az cdn endpoint rule add -g $AZ_RESOURCE_GROUP_APP -n $AZ_APP_CDN_ENDPOINT --profile-name $AZ_APP_CDN --order 0 --rule-name "Redirect" --match-variable RequestHeaderWildcard --match-variable "User-Agent" --operator Equal --match-values "ECPurge/*"--negate-condition true --action-name "UrlRewrite" --source-pattern "[^?.]*(\?.*)?$" --custom-fragment "client/index.html"
az cdn endpoint rule add -g $AZ_RESOURCE_GROUP_APP -n $AZ_APP_CDN_ENDPOINT --profile-name $AZ_APP_CDN --order 1 --rule-name "Http to Https" --match-variable RequestScheme --operator Equal --match-values HTTPS --action-name "UrlRedirect" --redirect-protocol Https --redirect-type Moved
az cdn endpoint rule add -g $AZ_RESOURCE_GROUP_APP -n $AZ_APP_CDN_ENDPOINT --profile-name $AZ_APP_CDN --order 2 --rule-name "Overwrite cache-control header" --match-variable Always --operator Equal --match-values HTTPS --action-name "ModifyClientResponseHeader" --header-action "Overwrite" --header-name "CacheControl" --header-value "max-age=0, must-revalidate, public"
Особо отметим, что второе правило фактически приводится в справке CLI в качестве примера, но оно не работает. См .:
az cdn endpoint rule add -h
Для каждой из приведенных выше команд я получаю следующие 3 ошибки (пронумерованные в соответствии с правилом):
- BadRequest - Name должно быть оставлено пустым для правил доставки в профилях Verizon.
- ошибка проверки: параметр DeliveryRuleAction.name не может иметь значение None.
- az cdn endpoint rule add: error: необходимы следующие аргументы: --order, --rule-name, --action-name
Любая помощь очень ценится ... Я все равно буду биться головой об эту стену и публиковать сообщения, если у меня все получится.
ОБНОВЛЕНИЕ: из-за того, что не хочу указывать очевидное, с ошибкой № 1 выше, если я удалю параметр --name
(как предполагает ошибка), вместо этого я получаю следующую ошибку:
(--name | --ids) are required
ОБНОВЛЕНИЕ 2: следующая Azure страница справки предлагает az cdn endpoint rule action add
правильно, но все равно не работает (выдает ошибку crypti c, как показано ниже) .
Выполнение команды завершилось непредвиденной ошибкой. Вот трассировка:
'NoneType' object has no attribute 'rules'
Traceback (most recent call last):
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\knack\knack\cli.py", line 215, in invoke
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 631, in execute
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 695, in _run_jobs_serially
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 688, in _run_job
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\six\six.py", line 703, in reraise
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 665, in _run_job
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 324, in __call__
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\__init__.py", line 574, in default_command_handler
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli\azure\cli\command_modules\cdn\custom.py", line 396, in add_action
AttributeError: 'NoneType' object has no attribute 'rules'