问题标签 [azure-bicep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
686 浏览

c# - 二头肌 - 如何通过循环创建对象数组,每次迭代创建 2 个或更多对象

为了简化我的问题。我有一个这样的例子。这是我想通过循环创建的对象数组。所有对象的名称和值都为“0”。该数组有 4 个对象。

这是经过验证的解决方案。它循环 4 次以创建对象数组。因此,每次迭代仅创建 1 个对象。

但是,假设我只想通过迭代次数较少的循环来获得上述结果(假设只有 2 次迭代)。因此,每次迭代,我必须创建一个包含 2 个对象的数组

这是我尝试过但不起作用的代码,但是通过它,您可能会理解我试图得到的

请注意,我尝试了许多其他方法(不仅是上面的一种)但不起作用(例如:使用联合函数)。我总是遇到语法错误或其他问题。因此,我想知道二头肌是否有能力做我想做的事情。有人能帮我吗?谢谢和最好的问候

0 投票
1 回答
643 浏览

azure - Azure 二头肌将存储帐户连接字符串传递给 Secret Keyvault 循环问题

我有以下二头肌脚本来执行以下步骤:

  • 基于代码创建存储帐户
  • 创建密钥
  • 使用正确的密钥加密存储帐户
  • 将秘密连接字符串(存储帐户)生成到密钥保管库中

基础设施分为 2 个资源组:

在 azure bicep 中,我有以下脚本:

存储.二头肌

keyvaultclient.bicep

共享的二头肌

这些脚本基于tenantCode. 这是完美的。如果我只有 1 个tenantCode声明,一切都会顺利和完美,但是当我尝试声明超过 1 个时,我面临的问题就会出现。这就是细节问题。

当我声明超过 1 个代码时,脚本仍然创建了我需要的所有资源:存储帐户、密钥、加密、GUID 和 ConnectionStrings Secrets。但无论如何它在ConnectionStrings Secret.

它失败的原因是在这段代码的那些文件中:

共享二头肌

keuvaultsclient.bicep *

我有一个多重循环,我意识到在秘密下的共享密钥库中,我有正确数量的秘密(有 3 个租户代码,我有 3 个秘密),并且在每个秘密下我有 3 个版本(对于它生成的每个租户代码每个秘密都有一个新版本)。此循环错误导致二头肌脚本fail出现以下消息:

在这个阶段我完全被困住了,因为我是二头肌初学者,我用尽了所有选项并进行了测试以尝试解决这个问题。

如何重现

  • 创建 2 个资源组(一个用于密钥保管库,一个用于存储帐户)
  • 使用正确的 kv 名称更新参数
  • 在所有文件中,在每个文件上添加至少 2 个tenantCode
  • 执行命令az deployment group create -f ./keyvaultsclient.bicep -g <rg-where-keyvaults-are>

我希望我足够清楚地解释了我面临的问题,如果您需要更多详细信息,请告诉我。

非常感谢您的时间和帮助

0 投票
1 回答
136 浏览

azure - 有没有办法部署不在主文件中的 Azure 资源模块?

通常,通过二头肌模块创建 Azure 资源时,我会有 2 个文件。一个文件指定用于保存参数化资源,另一个文件是主文件,它将使用该模块。

作为创建操作组的示例,我的资源文件如下所示:

动作组.二头肌

然后,此资源作为主文件 main.bicep 中的一个模块使用:

我的管道引用 main.bicep 并将部署文件中列出的资源。我的问题是,有没有办法在混合中添加第三个文件?一个文件仍然保存参数化资源,一个文件保存关联的资源模块,以及 main.bicep 文件。这个想法是在我现有的资源中创建各种警报,但我不想在 main.bicep 中添加大量模块,因为它会迅速增加该文件中代码的复杂性和数量。

有没有办法让我拥有这个模块文件,并引用 main.bicep 中的整个文件以仍然从原始管道进行部署?

例如:alerts.bicep

警报模块.二头肌

主二头肌

0 投票
1 回答
153 浏览

azure - 使用 bicep 将混合连接部署到 webapp

我正在尝试使用二头肌在 web 应用程序上创建混合连接。

不幸的是,该文档在以下属性中没有描述RelayServiceConnectionEntityProperties

https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites/hybridconnection?tabs=bicep

这是我尝试过的:

但是,当我尝试部署时,出现此错误:

缺少必需的参数 EntityName、EntityConnectionString、ResoureType、ResourceConnectionString、Hostname 或 BiztalkUri。

我不知道该放什么resourceConnectionStringresourceType也不知道biztalkUri
我可以在哪里找到这些想法,或者我做错了什么?

不幸的是,手动在 Azure 门户上执行,然后“导出模板”,导出没有与混合连接相关的任何内容(无论是在 Webapp 中,还是在混合连接本身中)

0 投票
1 回答
160 浏览

azure - 为什么我不能在 Azure 资源模块中循环两次?

我正在尝试在 Azure 二头肌资源/模块中设置警报。目标是拥有 3 个文件,其中一个是创建和参数化初始资源结构的文件:

第二个文件 main.bicep 我所有的资源都作为模块使用:

第三个文件是一个参数文件,我可以在其中循环,将其值输入到 main.bicep 中的模块中,以创建多个资源,而无需编写多个模块:

我总共有 5 个应用服务、1 个 Web 应用和 4 个功能应用。如果我要像上面那样硬编码应用程序服务的名称,那么部署一个 Web 应用程序时会出现 2 个错误。

我遇到的问题是尝试在范围参数上使用另一个循环,以将 2 个错误附加到所有 5 个应用程序服务。

我试过类似的东西:

这通常给我一个错误说:Unexpected token array in scopes[0].

我相信发生的事情是,当它试图在 resourceId 中按名称查找资源时,它会遍历所有 appServices 名称并将整个数组附加到资源名称上,使其无效。

是否有另一种方法可以遍历这些范围,以便将 403 和 500 警报附加到我的 5 个应用程序服务中的每一个?

0 投票
1 回答
80 浏览

azure - 是否可以在不停机的情况下在两个 Azure Front Door 资源之间移动主机名?

TL;博士:

我可以在同一订阅内的 Azure Front Door 资源之间移动主机名而不会中断吗?

语境

我有四个 Frontdoor 资源——每个资源都有一组主机名。我的组织希望将这些主机名整合到单个 Front Door 资源中,以降低成本并降低复杂性。

我已经在 Bicep 中编写了重写的 ARM 模板,然后按照本教程部署资源,希望它能让我在修改永久 DNS 记录之前准备好新创建的 Frontdoor 上的主机名和路由规则。

不幸的是,我收到以下错误消息:

无法更新前门错误消息

后续步骤:

我已经按照这些步骤通过门户进行部署,并使用单独的二头肌部署,结果相同。

  • 创建前门资源
  • 使用 DNS 提供商创建 CNAME 记录:
    • afdverify.www.contoso.comafdverify.contoso-frontend.azurefd.net
  • 编辑资源:
    • 在资源上添加并验证www.contoso.com为自定义主机名
    • 添加后端池和路由规则
  • 按保存,显示附加的错误消息不成功

提前感谢您在此问题上花费的任何帮助或时间

0 投票
1 回答
153 浏览

azure - 如何使用二头肌在 azure eventHub 的网络部分中选择和添加 VNet 的多个子网

如何使用 azure bicep 在 azure eventHub 资源的网络部分中选择和添加 VNet 的多个子网。

使用上面的代码,我只能使用 azure bicep 将 VNet 的一个特定子网添加到网络部分中 azure EventHub 资源的 VNet 条目中。

如何使用 azure bicep 获取 VNet 的所有子网并将它们全部添加/选择到网络部分中 azure EventHub 资源的 VNet 条目。

0 投票
1 回答
151 浏览

azure-application-gateway - 通过 ARM 更新现有应用程序网关

万事如意,

我目前正在构建一些二头肌模板,用于为项目建立新环境,在我到达应用程序网关之前,一切都很顺利。

我们有一个现有的 ApplicationGateway 实例,我希望将新的backendAddressPool//等添加到其中httpListenerrequestRoutingRule就像我们可以创建一个新实例Microsoft.Web/sites并将其附加到现有的Microsoft.Web/serverfarms.

不幸的是,这些似乎是属性,而不是子资源,因为我在尝试创建它们时遇到错误:

在我花更多时间之前,任何人都可以确认是否可以像这样更新现有网关的配置?

0 投票
1 回答
76 浏览

azure - 用 ARM/Bicep 替换或重新链接现有 Azure 资源

我有一个现有的 Azure 资源(功能应用程序),其中包含一些依赖项(存储和 ApService),它需要运行和监控(AppInsights)以及函数引用的一些东西(存储队列、表等)。

所有这些都是通过门户手动创建的。目前正在通过 GitHub Actions 使用 CI/CD 流程 100% 部署和交换插槽,但在尝试了解有关 ARM 模板和二头肌的更多信息时,想知道......</p>

我可以使用我已部署的现有资源,为它们创建匹配的 ARM 模板/Bicep 文件,然后将它们添加到我的 CD 进程中吗?目标:当我想进行更新时,我在 ARM/二头肌模板中进行,并使用 CD 进行更改,而不是手动进行。但是,我不想删除我拥有的并重新创建它。

这可能吗?还是我需要从头开始构建资源和部署它们?

0 投票
0 回答
85 浏览

macos - Azure 二头肌无法下载 .NET

希望有人可以帮助我解决这个问题。我正在使用 macOS Monterey 12.0.1 并安装了 Visual Studio 代码 2。到目前为止一切正常,但是当我打开bicep文件时。我得到这个错误。

我确信 .NET 已安装,如您所见,如果我运行botnet --info

但据我所知,路径完全不同,我不知道这是否是主要问题。我有另一台 Mac 笔记本电脑,我可以在 VsCode 中使用二头肌,没有任何问题。

这是否发生在任何人身上,并且可能会帮助我解决这个问题,因为我找不到任何有效的解决方案。