2017年11月10日から15日にかけて、MicrosoftがAzureシステムの一部に変更を実施した後、Sitecore ARMテンプレートが破損する問題が発生しました。Azure ToolkitまたはAzure Marketplaceを使用してSitecore XPソリューションをAzureにデプロイした際に、以下のエラーが発生しました。
{"error":{"code":"InvalidTemplate","message":"Deployment template validation failed: 'The template resource 'templateLinkBase' at line '27' and column '25' is not valid: The template language function 'replace' expects its first parameter to be of type 'String'. The provided value is of type 'Uri'. Please see https://aka.ms/arm-template-expressions for usage details.'."}}
Sitecore ARMテンプレートには、以前は文字列だったdeployment().properties.templateLink.uriプロパティがあります。しかし、最近Microsoftが行った変更によって、このタイプが文字列からUriに変更されました。
この問題は、MSDNフォーラムで言及されています。
この問題は、2017年11月15日にMicrosoftによって修正されました。Sitecoreでは、Azure MarketplaceおよびAzure Toolkitでのプロビジョニングが予想通りに動作することを確認しています。
この問題を解決するには、parameters.jsonファイルに、templateLinkBaseパラメーターと、その設定値として、デプロイの呼び出しで使用したazuredeploy.jsonを含むフォルダに対応する値を追加する必要がありました。
例えば、以下のコマンドを使用してデプロイ処理を開始している場合があるとします。
Start_SitecoreAzureDeployment –ArmTemplateUrl "https://raw.githubusercontent.com/Sitecore/Sitecore-Azure-Quickstart-Templates/master/Sitecore%208.2.3/xp/azuredeploy.json"
この場合、azuredeploy.jsonの部分を除いた、全体のURLをコピーします。
https://raw.githubusercontent.com/Sitecore/Sitecore-Azure-Quickstart-Templates/master/Sitecore%208.2.3/xp/
そして、以下のURLをparameters.jsonファイルに追加します。
"templateLinkBase": { "value": "https://raw.githubusercontent.com/Sitecore/Sitecore-Azure-Quickstart-Templates/master/Sitecore%208.2.3/xp/" }