或者换种方式,有人可以为
az cdn endpoint rule add
命令的不同参数提供解释吗?
Verizon 文档 与 Azure CLI 不太匹配。
Verizon 已从 v3 规则引擎迁移到 v4,虽然它在布局和可用性方面有了巨大改进,但它仍然没有提供有关特定字段是什么或它们如何映射到 Azure CLI 的信息
az cdn endpoint rule add
命令。
一个问题是新的 v4 界面丢失了带有内部创建的 Verizon Id 的“源”下拉列表。
@Christopher Cabezudo Rodriguez 已经暴力破解了如何获取此值,但在尝试使用 CLI 进行设置时没有帮助。
我想创建 3 条 HTTP 规则。
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 规则引擎中,它们看起来像这样:
我已经半途而废地猜测了我可能需要什么作为 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
更新:由于不想说明明显的问题,对于上面的错误#1,如果我删除
--name
参数(如错误所示),我会收到以下错误:
(--name | --ids) are required
帮助页面表明az cdn endpoint rule action add
是正确的,但它仍然不起作用(提供如下所示的神秘错误)。命令因意外错误而失败。这是回溯:
'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'
debug
很有帮助,因为最终新的 CDN 规则需要对所有现有 CDN 规则加上您拥有的规则进行 POST 请求。此外,您必须完全按照调试输出获取某些字符串,例如
--operator
、
--match-variable
和
--selector
,否则您会收到无用的错误。希望这有帮助。
--订单 0
--规则名称全局 \