我在 azure 中有此资源。
- (fa-001) 函数应用(资源 A)
- (fa-001/slot) 应用服务(插槽)(资源 B)
这两个资源的网址如下。
- https://fa-001.azurewebsites.net/api/Example_Function (资源 A)
- https://fa-001-slot.azurewebsites.net/api/Example_Function (资源 B)
在本地运行时,我需要使用默认的应用程序 key 才能访问这些功能。
所以网址如下所示。
- https://fa-001.azurewebsites.net/api/Example_Function?code=XXX (资源 A)
- https://fa-001-slot.azurewebsites.net/api/Example_Function?code=YYY (资源 B)
我最初在 POSTMAN 上执行了该 url,没有出现任何问题。
现在,我在 azure devops 中有一个 yaml 脚本,它将交换此资源的插槽。
我执行了 yaml 脚本。
资源 A 将成为资源 B。
资源 B 将成为资源 A。
我在 POSTMAN 上再次执行了这些 URL,但得到了 401 响应。
- https://fa-001.azurewebsites.net/api/Example_Function?code=XXX (资源 A)
- https://fa-001-slot.azurewebsites.net/api/Example_Function?code=YYY (资源 B)
但是如果我交换代码,我就可以毫无问题地访问该网址。
- https://fa-001.azurewebsites.net/api/Example_Function?code=YYY (资源 A)
- https://fa-001-slot.azurewebsites.net/api/Example_Function?code=XXX (资源 B)
交换 Azure 功能槽时是否可以保留应用程序 key ?
如果有办法的话,怎么办?
最佳答案
请检查我已完成的以下解决方法:
- 在门户中创建了 Azure Functions .NET 6 应用程序,并具有 2 个部署槽:生产槽和暂存槽。
生产槽 - ProdHttpTrigger 暂存槽 - StagingHttpTrigger
这些是这 2 个插槽中不同的应用程序 key :
交换后:
功能在插槽之间发生了变化,但应用程序 key 没有变化(Code=Value)。
每次交换时, key 都不会改变,并且两个插槽都使用相同的 key 。
在交换插槽并将应用程序设置 AzureWebJobsSecretStorageType
为 files
期间,这些 key 将被重置。
您还可以使用功能键来创建该 API/触发器的自定义键值对,并且与应用程序键类似,它适用于两个插槽。
关于azure - 如何在交换插槽后保留 Azure Functions 的应用程序 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73060746/