一天多以来,我一直在处理 ARM 模板遇到的一个问题,但似乎卡住了,因此请询问 SO,以防万一有人可以提供帮助。
为了描述这个问题,我有一个现有的 Azure Key Vault 设置,并希望向这个资源组添加一些访问策略。仅供参考,以下是用于添加 Key Vault 访问策略的 ARM 模板参考:
https://docs.microsoft.com/en-gb/azure/templates/Microsoft.KeyVault/2018-02-14/vaults/accessPolicies
我有许多用户希望为其分配相同的权限,并且此用户列表不太可能经常更改,因此我希望在模板本身中对引用这些用户的 objectId 数组进行硬编码,然后使用“复制"创建多重访问策略的功能。本质上,我希望最终结果接近于此,其中访问策略之间唯一更改的值是标识用户的 objectID:
{
"name": "TestKeyVault/add",
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"apiVersion": "2018-02-14",
"properties": {
"accessPolicies": [
{
"tenantId": "tenantIDStringGoesHere",
"objectId": "guidForUser1GoesHere",
"permissions": {
"keys": ["List"],
"secrets": ["List"],
"certificates": ["List"]
}
},
{
"tenantId": "tenantIDStringGoesHere",
"objectId": "guidForUser2GoesHere",
"permissions": {
"keys": ["List"],
"secrets": ["List"],
"certificates": ["List"]
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想用循环来解决这个问题而不是手动复制访问策略的原因是我相信它会使维护更容易,因为可以通过从数组中添加或删除值来处理人员更改,而不必复制或删除大部分文本。
我试图理解此处概述的“复制”语法,但我还没有找到适合我的用例的正确组合:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-multiple
我得到的最接近的是以下内容:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": { …Run Code Online (Sandbox Code Playgroud) 查看下面的代码片段,我希望"use"引用的svg元素被限制在100px宽和100px高的框中:
body {
background: blue;
}
.svgautohide {
display: none;
}Run Code Online (Sandbox Code Playgroud)
<body>
<div style="height:100px;background:red">
<svg><use xlink:href="#icontest"></use></svg>
</div>
<svg width="100px" height="100px" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" style="svgautohide">
<defs>
<symbol id="icontest">
<rect x="0" y="0" width="100" height="100" />
</symbol>
</defs>
</svg>
</body>Run Code Online (Sandbox Code Playgroud)
但是,这不是我所看到的,如下面的截图所示:
这似乎不是浏览器错误,因为在Firefox,Edge和Chrome中复制了相同的行为.任何人都可以帮助解释为什么"使用"框与svg的大小不同?此外,可以做任何事情来覆盖这种行为?谢谢.