1. メッセージングのスケーリングと構成

チュートリアル: Azure Service Busを使用するためのメッセージ バス ロールの構成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Azure Service Busを使用するようにメッセージ バス ロールを構成する前に、Azure Service Busをプロビジョニングし、プライマリ接続文字列を取得する必要があります。詳細については、Microsoftの「 Azure portalを使用したService Bus名前空間の作成 」のドキュメントを参照してください。

このチュートリアルでは、次の方法について説明します。

メッセージング接続文字列を変更する

messaging接続文字列をMicrosoft SQL ServerからAzure Service Busに変更するには、Message Busロールを参照するすべてのロールで変更する必要があります。

messaging接続文字列を変更するには:

  1. <wwwroot>\App_Config\ フォルダーで、ConnectionStrings.configファイルを開きます。

  2. add name="messaging" プロパティを見つけて、connectionString属性をAzure Service Bus接続文字列に変更します。

    <add
      name="messaging"
      connectionString="<your Azure Service Bus connection string>" />
  3. ConnectionStrings.configファイルを保存します。

  4. 関連するすべてのロールに対してこの手順を繰り返します。

messagingTransportキーを変更する

messagingTransportキーをMicrosoft SQL ServerからAzure Message Busに変更するには、Message Busロールを参照するすべてのCoreロールでMessage Busを変更する必要があります。

messagingTransportキーを変更するには:

  1. <wwwroot>\ フォルダーで、Web.configファイルを開きます。

  2. add key="messagingTransport:defineプロパティを見つけて、value属性をSQLからAzureServiceBusに変更します。

    <add key="messagingTransport:define" value="AzureServiceBus" />
  3. Web.configファイルを保存します。

  4. 関連するすべてのロールに対してこの手順を繰り返します。

メッセージング設定ファイルの切り替え

Message Busロールを参照するすべてのXPサービスロール で、すべてのメッセージング設定ファイルをMicrosoft SQL ServerからAzureに切り替える必要があります。設定ファイルは、次のフォルダにあります。

  • <wwwroot>\App_Data\Config\Sitecore\ とそのサブフォルダ

  • <wwwroot>\App_Data\jobs\continuous\*\App_Data\Config\sitecore\ とそのサブフォルダ

メッセージング設定ファイルを切り替えるには:

  1. *Messaging.SqlServer.xmlに一致するすべてのファイルに.disabled拡張子を追加します。

    *Messaging.SqlServer.xml -> *Messaging.SqlServer.xml.disabled
  2. *Messaging.Azure.xml.disabledに一致するすべてのファイルから.disabled拡張子を削除します。

    *Messaging.Azure.xml.disabled -> *Messaging.Azure.xml
  3. 関連するすべてのロールに対してこの手順を繰り返します。

コンテナで使用するためのMessage Busロールの構成

コンテナを使用してSitecoreをデプロイする場合は、この追加手順を実行する必要があります。

大事な

ここで説明する手順とスクリプトは、Sitecoreのインストールに合わせて編集および調整できる例です。それらはサポートされておらず、あなたのインスピレーションのためだけに意図されています。

コンテナで使用するメッセージバスロールを設定するには:

  1. docker-compose.ymlコンテナにデプロイするSitecoreを準備します。

  2. メッセージングを使用するロールごとに、次の操作を行います。

    • *.ps1ファイルとDockerファイルを含むフォルダで、次のコマンドを実行して、ロールの新しいDockerイメージを作成します。 docker build --tag sitecore-<VERSION>-<ROLE NAME>-asb <PATH TO YOUR FOLDER>

    • docker-compose.ymlファイルで、image設定を ${SITECORE_DOCKER_REGISTRY}sitecore-<VERSION>-XX:${SITECORE_VERSION} からsitecore-<VERSION>-<ROLE NAME>-asbに変更します。

  3. docker-compose.ymlファイルで、Sitecore_ConnectionStrings_MessagingをAzure Message Busのプライマリ接続文字列 (Endpoint=<XXX>;SharedAccessKeyName=<XXX>;SharedAccessKey=<XXX>) に変更します。

  4. enable-messaging-asb.ps1という名前のファイルを作成し、次のexample PowerShellスクリプトに貼り付けます。

    Function Set-XmlAttribute(
      [string]$XmlFilePath,
      [string]$Xpath,
      [string]$AttributeName,
      [string]$Value)
    {
      Write-Host"Setting XML attribute [$AttributeName] with value [$Value] from [$XmlFilePath] using xPath [$XPath]"
      [xml]$XmlFile = Get-Content $XmlFilePath
      $Item = Select-XML -Xml $XmlFile -XPath $XPath
      if($Item -ne $null) {
        $node $Item.node
        $Item | %{$_.node.$AttributeName = $Value}
        $XmlFile.Save($XmlFilePath)
      } else {
        Write-Host "Node is not exist in $XmlFilePath, XPath: $XPath" -Level "Warning"
      }
    }
    
    Write-Host "Disabling *Messaging.SqlServer.xml ..."
    Get-ChildItem -Path "." -Filter "*Messaging.SqlServer.xml"  -Recurse | ForEach-Object {
      $newName "$($_.FullName).disabled";
      Write-Host $newName
      Move-Item -Path $_.FullName -Destination $newName -Force
    }
    Write-Host "Disabling *Messaging.SqlServer.xml done"
    
    Write-Host "Enabling *Messaging.Azure.xml.disabled ..."
    Get-ChildItem -Path "." -Filter "*Messaging.Azure.xml.disabled"  -Recurse | ForEach-Object {
      $newName $_.FullName.Substring(0, $_.FullName.LastIndexOf(".disabled"));
      Write-Host $newName
      Move-Item -Path $_.FullName -Destination $newName -Force
    }
    Write-Host "Enabling *Messaging.Azure.config.disabled done"
    
    Write-Host "Updating Web.config"
    $currentFolder = Get-Location
    Set-XmlAttribute -XmlFilePath "$currentFolder\Web.config" -xpath "//configuration/appSettings/add[@key='messagingTransport:define']" -AttributeName "value" -Value "AzureServiceBus"
    Write-Host "Web.config is updated"
    
  5. 次のDockerファイルを実行します。

    FROM ${BASE_IMAGE}
    COPY ./enable-messaging-asb.ps1 ./
    RUN .\enable-messaging-asb.ps1
  6. イメージをデプロイします。

この記事を改善するための提案がある場合は、 お知らせください!