gpt4 book ai didi

Azure CORS 变量允许的来源

转载 作者:行者123 更新时间:2023-12-02 06:26:01 42 4
gpt4 key购买 nike

每当在 Azure DevOps 中运行新的发布管道时,URL 都会更改。目前我的 ARM 模板有一个硬编码的 URL,继续手动添加可能会很烦人。

"cors": {
"allowedOrigins": [
"[concat('https://',parameters('storage_account_name'),'.z10.web.core.windows.net')]"
}

唯一改变的是 z10 中的 10 部分,所以本质上我希望它是这样的[concat('https://',parameters('storage_account_name'),'.z', '*', '.web.core.windows.net')] 我不知道是否有什么这样是有效的,但本质上是这样,无论 z 号如何,cors 策略都会接受 URL。

最佳答案

基本上来说这是不可能的,因为 CORS 标准 ( see docs )。只允许精确来源、通配符或 null。

例如,ARM for Azure Storage 也遵循此模式,允许您放置精确来源列表或通配符 ( see ARM docs )

但是,如果您知道您的网站名称,则在 ARM 中您可以接收完整的主机并在 CORS 中使用它:

"[reference(resourceId('Microsoft.Web/sites', parameters('SiteName')), '2018-02-01').defaultHostName]"

如果您知道存储帐户名称,则与静态网站相同(我猜这就是您的情况):

"[reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2019-06-01', 'Full').properties.primaryEndpoints.web]"

高级引用输出操作

回答评论 - 如果您想替换 reference 函数输出中的某些字符,最简单的方法是使用内置替换函数 ( see docs )

如果您需要更高级的场景,我将通过引入一个自定义函数来粘贴我的解决方案,该函数从末尾删除 https:/// ,以便 https://contonso.com/ 转换为 contonso.com:

"functions": [
{
"namespace": "lmc",
"members": {
"replaceUri": {
"parameters": [
{
"name": "uriString",
"type": "string"
}
],
"output": {
"type": "string",
"value": "[replace(replace(parameters('uriString'), 'https://',''), '/','')]"
}
}
}
}
],

# ...(some code)...

"resources": [
# ... (some resource)...:
"properties": {
"hostName": "[lmc.replaceUri(reference(variables('storageNameCdn')).primaryEndpoints.blob)]"
}
]

关于Azure CORS 变量允许的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66118367/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com