azure 如何在Bicep中做到这一点:如果存在其他资源,则创建一个资源

3ks5zfa0  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(100)

我写了一个bicep模板来为Azure函数创建一个事件网格订阅。这是我到目前为止的尝试。
我想设置一个条件,仅在存在特定Azure函数时才创建此订阅。

resource azureFunctionApp 'Microsoft.Web/sites@2022-03-01' existing = 
  {
     name: funcationAppName
  }

  resource azureFunction1 'Microsoft.Web/sites/functions@2022-03-01' existing = {
    parent: azureFunctionApp
    name: azureFunction1Name
  }

  var functionExist = contains(azureFunction1 .name, azureFunction1Name) == 'true'

  resource AzureFunctionEventGridSubscription 'Microsoft.EventGrid/eventSubscriptions@2022-06-15' = if(functionExist)  {
   //do a bunch of stuff
  }

但是,当我在Azure上部署此bicep时,我仍然收到错误消息,说资源“azureFunction1Name”不存在。如何跳过创建此AzureFunctionEventGridSubscription并跳过此操作并执行而不出错?

vxqlmq5t

vxqlmq5t1#

这在Bicep中不起作用。existing关键字只能引用现有的资源。
您需要围绕二头肌展开构建此逻辑,并且只有在您确实希望展开某些东西时才触发展开。

相关问题