azure - zip 部署后,函数应用程序主机密钥正在重置
问题描述
我想要实现的是:
我必须使用 zip deploy 部署一个 azure 函数并将其与 APIM 关联。
$apiUrl = "https://$FunctionAppName.scm.azurewebsites.net/api/zipdeploy"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method POST -InFile $filePath -ContentType "multipart/form-data"
功能部署成功,然后我尝试添加一个 APIM 并将其中一个功能连接到它。问题就从这里开始。脚本和 ARM 模板是有效的 APIM 将被成功创建。但是x-functions-key
添加到后端的内容不存在于 azure 功能主机键列表中。因此,我在测试 APIM 端点时收到401 Unauthorized响应。
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2020-12-01",
"name": "[concat(variables('apiManagementServiceName'), variables('functionAppNameWithaSlashAtStart'))]",
"dependsOn": [
"[resourceId('Microsoft.ApiManagement/service', variables('apiManagementServiceName'))]"
],
"properties": {
"description": "rigado-function",
"url": "[concat(concat('https://', parameters('functionAppName')),'.azurewebsites.net/api')]",
"protocol": "http",
"resourceId": "[concat('https://management.azure.com', resourceId('Microsoft.Web/sites', parameters('functionAppName')))]",
"credentials": {
"header": {
"x-functions-key": [
"[listkeys(concat(variables('functionAppId'), '/host/default/'),'2016-08-01').functionKeys.default]"
]
}
},
"skipCertificateChainValidation": "false",
"skipCertificateNameValidation": "false"
}
}
对此有任何想法吗?这是因为 zip 部署吗?
注意:我注意到的一件事是,如果我在函数部署后尝试运行 APIM 部署位,它可以正常工作。
解决方案
推荐阅读
- sql - 触发器在运行时将所有其他插入的值转换为 null
- java - Java VTD-XML 和 XPath:在找到的部分使用 XPath
- c++ - 在 Visual Studio 2017 中编译 .cpp 文件
- android - 按原产国查找应用程序 - Google Play 商店
- if-statement - 设置条件来验证当月的第 20 天是否存在然后做某事,否则转到下一个工作日
- gradle - 如何将 Gradle 插件发布到 Artifactory?
- angular - 如何修复 'debounceTime & distinctUntilChanged | Angular 5 中使用打字稿的 RxJS 错误
- tensorflow - 我们如何结合两个训练好的模型(深度学习网络:GAN 网络与 CNN 和 ResNet)
- javascript - 如何修复:JsBarcode“没有要渲染的元素”。错误
- arrays - 我正在尝试将 ls 的输出存储在一个数组中