4

場所ごとにアプリ サービス プランと Web サイトをデプロイするために、一連の Azure データ センターの場所に対してコピー操作を使用します。トラフィック マネージャー プロファイルを作成し、コピー オブジェクトを使用して場所ごとのエンドポイントをトラフィック マネージャー プロファイルに追加できます。

ここの指示に従って Microsoft.Web/sites/hostNameBindings リソースを使用して、各 Web サイトの CNAME をカスタム ドメイン名に設定しようとすると、次のようになりました。

   {
      "type": "Microsoft.Web/sites/hostNameBindings",
      "apiVersion": "[parameters('hostNameBindingsApiVersion')]",
      "copy": {
        "name": "hostNameBindingsEndpointsLoop",
        "count": "[length(parameters('appServicePlanLocations'))]"
      },
      "name": "[concat(concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()]), '/', variables('hostNameBindingsName'))]",
      "location": "[parameters('appServicePlanLocations')[copyIndex()]]",
      "dependsOn": [
        "[concat('Microsoft.Network/trafficManagerProfiles/', variables('trafficManagerName'), '/azureEndpoints/', variables('trafficManagerEndpointPrefix'), parameters('appServicePlanLocations')[copyIndex()])]",
        "[concat('Microsoft.Web/sites/', concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()]))]"
      ],
      "properties": {
        "siteName": "[concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()])]",
        "domainId": null,
        "hostNameType": "Verified"
      }
    }

これを使用すると、CNAME は実際に設定されますが、ARM テンプレートのデプロイは次のエラーで失敗します。

{
      "ErrorEntity": {
        "Code": "Conflict",
        "Message": "Cannot modify this site because another operation is in progress. Details: Id: {guid}, OperationName: RegisterTrafficManagerProfile, CreatedTime: 5/24/2016 11:13:54 PM, RequestId: {guid}, EntityType: 1",
        "ExtendedCode": "59203",
        "MessageTemplate": "Cannot modify this site because another operation is in progress. Details: {0}",
        "Parameters": [
          "Id: {guid}, OperationName: RegisterTrafficManagerProfile, CreatedTime: 5/24/2016 11:13:54 PM, RequestId:{guid}, EntityType: 1"
        ],
        "InnerErrors": null
      }
    }
  ],
  "Innererror": null
}

競合が何であるかはわかりません。依存関係セグメントを追加して、Web サイトが作成されるのと、trafficmanagerendpoint の両方がプロビジョニングを完了するのを待機しようとしたためです。Web サイトの作成後に CNAME を追加し、Traffic Manager エンドポイントが CNAME の作成を待機するように順序を変更してみます。順序によって違いが生じる理由がわかりません。

アーム テンプレートの Microsoft.Web/sites/hostNameBindings セクションを正しく定義しましたか? このシナリオでは、依存順序は重要ですか? それはすべきですか?

4

2 に答える 2