Microsoft Azureサービスへのリクエスト送信頻度が高いため、Sitecoreのデプロイが失敗する


説明

Sitecore Azureモジュールで編集またはデリバリー ファームに定期的なデプロイを実施する際、デプロイ処理がたまに次のエラーで失敗する可能性があります:

TestDevEusCd01Role01PSc266Production [P] Deploy failed System.ApplicationException: TestDevEusCd01Role01PSc266Production [P] Deploy failed --->
System.ApplicationException: Deploy is failed ---> System.Net.WebException: REST REQUEST FAILED :
Request: https://management.core.windows.net/3776474d-7d8e-4bda-9984-b1bfbcd98198/operations/c9182fbb0b87016f932f7324ae98824a Server response = TooManyRequestsToo many requests received. Retry after some time. --->
System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
  at Sitecore.Azure.Managers.HttpGatewayManager.GetHttpResponse(String uri, String httpMethod, String versionXMsVersion, String body)
--- End of inner exception stack trace ---

  at Sitecore.Azure.Managers.HttpGatewayManager.GetHttpResponse(String uri, String httpMethod, String versionXMsVersion, String body)
  at Sitecore.Azure.Providers.AzureProvider.GetAsyncOperationStatus(String subscriptionID, String requestID)
  at Sitecore.Azure.Providers.AzureProvider.CheckAsyncOperationStatus(String requestID, String subscriptionId)
  at Sitecore.Azure.Providers.AzureHost.AzureHostProvider.CreateDeployment(String uniqueDeploymentName, String deploymentLabel, String subscriptionID, String hostedServiceName, String deploymentSlot, String packageUrl, String serviceConfigurationXML)
  at Sitecore.Azure.Managers.AzureManagers.AzureHostManager.DeployPackage(AzureDeployment deployment, String containerName, String file)
  at Sitecore.Azure.Pipelines.DeployAndRun.Azure.Deploy.Action(RolePipelineArgsBase arguments)
  at Sitecore.Azure.Pipelines.BasePipeline.RolePipelineProcessor.Process(RolePipelineArgsBase args)

--- End of inner exception stack trace ---

このエラーは、Sitecore AzureモジュールがService Management REST APIを使用してMicrosoft Azureサービスに送信するリクエスト数が多すぎることで発生します。Microsoft Azureは、Get Operation Status REST APIの呼び出しがあまりに頻繁に実行されると、呼び出しを拒否する可能性があります。

この問題は、Azure Moduleバージョン3.0~7.2で発生します。

解決策

この問題を解決するには、次の手順に従って実施してください:

  1. 次のいずれかのSitecore修正プログラムをダウンロードします:
  2. Sitecore.Support.418278.dllアセンブリをサイトの/binに配置します。
  3. Sitecore.Support.418278.configファイルを/App_Config/Includeディレクトリに配置します。
  4. Azure.OperationStatus.Interval設定で動作状況の間隔を増やします:
    <setting name="Azure.OperationStatus.Interval" value="1000" />
    備考:デフォルトのSitecore Azureモジュールは、100ミリ秒に設定された間隔で動作します。これらの手順では、1000ミリ秒の間隔を設定することを推奨します。