【问题标题】:Azure Bicep - Microsoft.Web/certificates server farm id always emptyAzure Bicep - Microsoft.Web/证书服务器场 ID 始终为空
【发布时间】:2022-12-17 23:14:38
【问题描述】:

我在将 Azure Key Vault 证书链接/导入到 Azure App Service Plan / App Servicebicep 时遇到错误行为。

我将 serverFarmId 属性与我的 App Service Plan Id 一起提供

resource appServiceCertificate 'Microsoft.Web/certificates@2022-03-01' = {
  name: '${keyVaultName}-${keyVaultCertificateName}'
  location: location
  properties: {
    keyVaultId: keyVault.id
    keyVaultSecretName: keyVaultCertificateName
    serverFarmId: appServicePlanId // <<<< this is empty somehow
  }
}

Azure 声称“Microsoft.Web/certificates”的部署“正常”

但是我的服务器场 ID 总是以空结束。所以证书以后不可用

虽然第一步成功了。没有证书链接到我的应用程序服务。

第二步(添加 hostNameBindings)随后失败,因为未找到证书。

Cannot find Certificate with name XXX.

我尝试了多种方法来获取应用程序服务计划 ID。所有这些都返回正确且相同的结果。但是当 Azure 部署模板时,服务器场 ID 变为空。

我正在做与 Microsoft sample 和多篇在线文章中类似的方法。所以我很确定,我这边有问题。但我不知道是什么。

完整模块:

param location string = resourceGroup().location
param appServiceName string
param appServicePlanName string
param dnsCertificateThumbPrint string
param dnsName string
param keyVaultName string
param keyVaultCertificateName string

resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' existing = {
  name: keyVaultName
}

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

/*module appServicePlan 'AppServicePlan.bicep' = {
  name: appServicePlanName
  params: {
    appPlanName: appServicePlanName
  }
}*/

//Attempt #1 var appServicePlanId = appService.properties.serverFarmId 
//Attempt #2 var appServicePlanId = appServicePlan.outputs.aspId
var appServicePlanId = resourceId('Microsoft.Web/serverfarms', appServicePlanName)

resource appServiceCertificate 'Microsoft.Web/certificates@2022-03-01' = {
  name: '${keyVaultName}-${keyVaultCertificateName}'
  location: location
  properties: {
    keyVaultId: keyVault.id
    keyVaultSecretName: keyVaultCertificateName
    serverFarmId: appServicePlanId
  }
}

resource mainBinding 'Microsoft.Web/sites/hostNameBindings@2022-03-01' = {
  name: dnsName
  parent: appService
  properties: {
    siteName: dnsName
    hostNameType: 'Verified'
    sslState: 'SniEnabled'
    thumbprint: dnsCertificateThumbPrint
  }
  dependsOn: [
    appServiceCertificate
  ]
}

【问题讨论】:

  • 您是否尝试过使用 api 版本:2019-08-01?在您提供的链接中使用了此版本
  • Akso,在提供的链接中,它是hostNameSslStates而不是hostNameBindings
  • 你有完整的错误信息吗?
  • 是的,切换回几个版本似乎可以解决问题。 @托马斯

标签: azure azure-bicep


【解决方案1】:

正如 Thomas 提到的,解决方案是恢复到版本“2019-08-01”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2018-09-08
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多