我已成功创建一个逻辑应用程序,可以在 Azure KeyVault 密钥即将过期时发送电子邮件。这适用于我自己的凭据,但我无法使其适用于托管身份 API 连接。
对于我的逻辑应用程序,我启用了系统身份。选择“当事件网格资源事件发生时”作为触发器,并将 RBAC 角色“Key Vault 管理员”添加到我的 Azure KeyVault
现在,我可以在触发器的下拉菜单中选择我的 KeyVault,这意味着我的托管身份确实与 KeyVault 有连接,并且我可以在下拉列表中选取值:
当我尝试保存此内容时,出现以下错误:
无法保存逻辑应用logic-secrets-expiry-poc-mi。工作流连接参数“azureeventgrid”无效。 API 连接“azureeventgrid”配置为支持托管标识,但连接参数在连接属性中缺少“身份验证”属性,或者身份验证类型不是“ManagedServiceIdentity”。
我在这里缺少什么?
更新:我找到了解决方法。我在 UI 中的代码视图中,将其添加到连接部分:
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity"
}
}
现在看起来像这样:
这允许我将逻辑应用程序保存在门户中而不会出现错误。
更新:但是,即使我添加另一个事件来监听(例如“Microsoft.KeyVault.SecretNewVersionCreated”)并尝试在 KeyVault 中创建新的 Secret,我也无法触发它。它没有被触发。
未触发。
我已经被触发了,以下是我的方法:
首先将此角色授予我的逻辑应用程序的托管身份:
然后给了 Key Vault 保密官:
Key Vault 需要 RBAC:
然后用了下面的
design
:
/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupname>/providers/Microsoft.KeyVault/vaults/<keyvaultname>
Output:
当版本更改时,它会被触发。