- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个想法是拥有一个小型“工作负载”/“管道”,其中包含一个函数应用程序,用于按计划的时间间隔调用某些第 3 方 API 并将响应写入 Blob 存储。
所以就我需要/想要拥有的资源而言:
我非常想要一个可重复使用的模板,所以我尝试使用二头肌模块。到目前为止,这是我的 IaC 项目的结构:
./main.bicep
./modules/AppServicePlan/ConsumptionPlan.bicep
./modules/FunctionApp/FunctionApp.bicep
./modules/KeyVault/KeyVault.bicep
./modules/KeyVault/Secret.bicep
./modules/Storage/StorageAccount.bicep
因此,我使用 StorageAccount.bicep
创建数据存储(来自 main.bicep
作为模块)以及函数存储(来自 FunctionApp.bicep
作为一个模块)。 FunctionApp.bicep
还创建应用服务计划资源,并分配初始应用设置(即将其链接到函数存储的 AzureWebJobsStorage
设置)。
我也在以类似的方式处理 keyvault。因此,我从 main.bicep
创建一个 keyvault 作为模块,并传入函数应用程序的对象 ID 作为参数,以便在 keystore 访问策略中允许它获取和列出 secret 。
最后,我尝试更新函数应用程序中的应用程序设置,以包含对 keyvault 中 secret 的引用。首先,我尝试使用新的应用程序设置“扩展”,如 Is there a workaround to keep app settings which not defined in Bicep template? 中所述。我无法让它工作。所以现在我正在尝试用一种更简单的方法来完全替换应用程序设置。但是我收到一条错误消息,指出未找到函数资源的存储(?)
"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Storage/storageAccounts/<storageForFuncName>' under resource group '<resourceGroup>' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}"}
如果我查看部署,所有子部署(包括用于存储功能的子部署)都成功,只有主部署因上述错误详细信息而失败。事实上,除了更新的应用程序设置之外,所有资源都已创建。甚至是有问题的函数的存储,甚至是我作为 FunctionApp.bicep 的一部分创建的初始应用程序设置,顺便说一句,它包含完全相同的 AzureWebJobsStorage key -值,当我尝试创建更新的应用设置时,这会在 main.bicep
中出现问题。
我该如何解决这个问题?或者我应该完全改变我的模块方法?
(顺便说一下,这是我的第一个 IaC 项目,我是二头肌新手,但我已经很恼火了,我需要做一些事情,比如必须使用 resource
有效地重新声明资源和现有
,即使是用module
声明的,同时还必须特别提及api版本和资源类型。只是发泄我的挫败感...;))
我使用空的初始应用设置(即应用设置作为 FunctionApp.bicep
的一部分)测试了部署 - 我得到了相同的结果。
我作为模块
创建的每个资源,我再次声明为资源
并使用现有
关键字,并将其添加到依赖项中应用程序设置:
resource functionApp1AppSettings 'Microsoft.Web/sites/config@2022-09-01' = {
kind: 'string'
name: 'appsettings'
parent: functionApp1r // resource //https://github.com/Azure/bicep/issues/7328
properties: {
// these settings were created at the point of function app creation with the `FunctionApp.bicep`
AzureWebJobsFeatureFlags: 'EnableWorkerIndexing'
// the below line is the problematic one and the one giving error
AzureWebJobsStorage: 'DefaultEndpointsProtocol=https;AccountName=${storageAccount4funcName};EndpointSuffix=${environment().suffixes.storage};AccountKey=${storageAccount4func1r.listKeys().keys[0].value}'
FUNCTIONS_EXTENSION_VERSION: '~4'
FUNCTIONS_WORKER_RUNTIME: 'python'
WEBSITE_TIME_ZONE: 'Europe/Amsterdam'
// this is the "new" setting we are trying to update the appsettings with
KV_SOME_SECRET: '@Microsoft.KeyVault(VaultName=${keyVaultName};SecretName=${secret.name})'
}
dependsOn: [
functionApp1 //module
kv //module
kvr //existing resource of the above
storageAccounts4func //module
storageAccount4func1r //existing resource of the above
]
}
这没有帮助。
main.bicep
中:var dummy = storageAccount4func1r.identity.principalId
output dummy string = dummy
但这并没有帮助。
最佳答案
您无法声明存储帐户资源,然后使用现有函数在同一个二头肌文件中检索相同的存储帐户。您收到的错误可能来自现有函数,因为您无法为其设置依赖项。 (即:它试图引用尚不存在的资源)。
尝试在 appSettings 之上的级别声明存储帐户,然后将 StorageAccount 名称传递到 appSettings bicep 文件。然后,您可以使用其中的现有功能来检索您的存储帐户引用,它应该可以工作。
如果您发布二头肌文件,可能会更容易提供帮助。
关于azure - 如何引用存储和 key 保管库更新 Azure 函数应用程序的应用程序设置? - 带有二头肌和模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77150311/
查看“mysqldump -d”并看到一个键是 KEY,而不是“PRIMARY KEY”或“FOREIGN KEY” 什么是关键? 示例: CREATE TABLE IF NOT EXISTS `TA
在我开始使用 Python 的过程中尝试找出最佳编码实践。我用 Pandas 写了一个 csv 到数据框阅读器。它使用格式: dataframe = read_csv(csv_input, useco
在 Flutter 中,用一个例子可以清楚地解释什么? 我的困惑是关于 key,如下面的代码所示。 MyHomepage({Key key, this.title}) : super(key: key
我在我的 Android 应用程序中使用 GCM。要使用 GCM 服务,我们需要创建 Google API key 。因此,我为 android、服务器和浏览器 key 创建了 API key 。似乎
我想在 azure key 保管库中创建一个 secret ,该 key 将具有多个 key (例如 JSON)。 例如- { "storageAccountKey":"XXXXX", "Co
尝试通过带有 encodeforURL() 的 url 发送 key 时,我不断收到错误消息和 decodefromUrl() .代码示例如下。 这是我的入口页面: key = generateSec
是否有检查雪花变体字段中是否存在键的函数? 最佳答案 您可以使用 IS_NULL_VALUE 来查看 key 是否存在。如果键不存在,则结果将为 NULL。如果键存在,如果值为 JSON null,则
我正在尝试运行此命令: sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A 但我收到一个错误: Execu
我有一个 csv 文件,我正在尝试对 row[3] 进行计数,然后将其与 row[0] 连接 row[0] row[3] 'A01' 'a' 'B02'
如何编写具有这种形式的函数: A(key, B(key, C(key, ValFactory(key)))) 其中 A、B 和 C 具有此签名: TResult GetOrAdd(string key
审查 this method我很好奇为什么它使用 Object.keys(this).map(key => (this as any)[key])? 只调用 Object.keys(this).ind
我有一个奇怪的情况。我有一个字典,self.containing_dict。使用调试器,我看到了字典的内容,并且可以看到 self 是其中的一个键。但是看看这个: >>> self in self.c
我需要在我的 Google Apps 脚本中使用 RSA-SHA256 和公钥签署消息。 我正在尝试使用 Utilities.computeRsaSha256Signature(value, key)
我是 React 的初学者开发人员,几天前我看到了一些我不理解的有趣语法。 View组件上有{...{key}},我会写成 key={key} ,它完全一样吗?你有链接或解释吗? render()
代理 key 、合成 key 和人工 key 之间有什么区别吗? 我不清楚确切的区别。 最佳答案 代理键、合成键和人工键是同义词。技术关键是另一个。它们都表示“没有商业意义的主键”。它们不同于具有超出
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
我正在寻找 Perl 警告的解决方案 “引用键是实验性的” 我从这样的代码中得到这个: foreach my $f (keys($normal{$nuc}{$e})) {#x, y, and z 我在
我正在为 HSM 实现 JCE 提供程序 JCE中有没有机制指定 key 生成类型例如: session key 或永久 key KeyGenerator keygen = KeyGener
我在 Facebook 上创建了一个应用程序。我已经正确添加了 keyhash 并且应用程序运行良好但是当我今天来并尝试再次运行它时它给了我这个错误。 这已经是第二次了。 Previsouly 当我收
我是一名优秀的程序员,十分优秀!