如何删除之前通过 provisionAfterExtensions 包含的 "remembered" 扩展?
How to remove a "remembered" extension previously included via provisionAfterExtensions?
我正在研究解决方案 运行 Service Fabric 集群,使用 ARM 模板定义。
我做了一些实验,其中我使用 ARM 模板将扩展 KVVMExtension
包含到两个虚拟机规模集。这些旨在尽早从 keyvault 加载数据。作为该过程的一部分,我在我的 ServiceFabricNode-extensions 下的 provisionAfterExtensions
下添加了这些扩展(以确保在配置其他扩展之前从 keyvault 读取):
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
"properties": {
"type": "ServiceFabricNode",
"provisionAfterExtensions" : ["KVVMExtension"],
(...)
现在我只是试图回滚这个实验,并删除所有提及 KKVM 扩展的内容,包括上面最后一行代码中显示的对它的引用,但构建一直失败并出现以下错误:
BadRequest: On resource 'nt1vm', extension 'ServiceFabricNodeVmExt_vmNodeType0Name' specifies 'KVVMExtension' in its provisionAfterExtensions property, but the extension 'KVVMExtension' will no longer exist. First, remove the extension 'ServiceFabricNodeVmExt_vmNodeType0Name' or remove 'KVVMExtension' from the provisionAfterExtensions property of 'ServiceFabricNodeVmExt_vmNodeType0Name'
我觉得这有点奇怪,因为现在所有对 KVVM 的引用都已删除;显然,Service Fabric 设置的某些部分“记住”了以前的依赖项,并且不会让我删除它。
我尝试用其他一些最小的更改更新 ARM 模板,只是为了 100% 确定它实际上被 Azure DevOps 构建管道拾取并注册为 changed运行它,但这没有任何区别。
我还尝试从 Azure 门户中删除 KVVM 扩展,但这恰恰被禁止,因为它在 provisionAfterExtensions
下指定用于另一个扩展。我不能在不删除整个 VM 规模集的情况下删除其他扩展,此时我不想这样做。
有没有其他方法可以消除扩展之间这种明显“记住”的依赖关系?
事实证明这个问题有一个简单的解决方案。
我曾尝试简单地从我的 ARM 模板中删除以下行,认为这也会删除两个扩展之间的依赖关系:
"provisionAfterExtensions" : ["KVVMExtension"],
相反,我需要做的是 更改 该行,使其保留,但明确提供了一个 empty 数组:
"provisionAfterExtensions" : [],
在我 运行 我的构建管道进行此更改后,问题消失了。
我正在研究解决方案 运行 Service Fabric 集群,使用 ARM 模板定义。
我做了一些实验,其中我使用 ARM 模板将扩展 KVVMExtension
包含到两个虚拟机规模集。这些旨在尽早从 keyvault 加载数据。作为该过程的一部分,我在我的 ServiceFabricNode-extensions 下的 provisionAfterExtensions
下添加了这些扩展(以确保在配置其他扩展之前从 keyvault 读取):
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
"properties": {
"type": "ServiceFabricNode",
"provisionAfterExtensions" : ["KVVMExtension"],
(...)
现在我只是试图回滚这个实验,并删除所有提及 KKVM 扩展的内容,包括上面最后一行代码中显示的对它的引用,但构建一直失败并出现以下错误:
BadRequest: On resource 'nt1vm', extension 'ServiceFabricNodeVmExt_vmNodeType0Name' specifies 'KVVMExtension' in its provisionAfterExtensions property, but the extension 'KVVMExtension' will no longer exist. First, remove the extension 'ServiceFabricNodeVmExt_vmNodeType0Name' or remove 'KVVMExtension' from the provisionAfterExtensions property of 'ServiceFabricNodeVmExt_vmNodeType0Name'
我觉得这有点奇怪,因为现在所有对 KVVM 的引用都已删除;显然,Service Fabric 设置的某些部分“记住”了以前的依赖项,并且不会让我删除它。
我尝试用其他一些最小的更改更新 ARM 模板,只是为了 100% 确定它实际上被 Azure DevOps 构建管道拾取并注册为 changed运行它,但这没有任何区别。
我还尝试从 Azure 门户中删除 KVVM 扩展,但这恰恰被禁止,因为它在 provisionAfterExtensions
下指定用于另一个扩展。我不能在不删除整个 VM 规模集的情况下删除其他扩展,此时我不想这样做。
有没有其他方法可以消除扩展之间这种明显“记住”的依赖关系?
事实证明这个问题有一个简单的解决方案。
我曾尝试简单地从我的 ARM 模板中删除以下行,认为这也会删除两个扩展之间的依赖关系:
"provisionAfterExtensions" : ["KVVMExtension"],
相反,我需要做的是 更改 该行,使其保留,但明确提供了一个 empty 数组:
"provisionAfterExtensions" : [],
在我 运行 我的构建管道进行此更改后,问题消失了。