Home » Включение облачной поддержки для CMS 12

Включение облачной поддержки для CMS 12

В этом посте я рассмотрю настройку ресурсов Azure для самоуправляемых (не DXP) развертываний.

Для развертываний DXP рекомендуется использовать EPiServer.CloudPlatform.Cms package и просто добавьте следующую строку

if (!_webHostingEnvironment.IsDevelopment())
{
       //For DXP deployments
       services.AddCmsCloudPlatformSupport(_configuration);
}

Как насчет развертываний Azure?

Недавно я настраивал решение CMS 12 для развертывания в своем экземпляре Azure для исследований и разработок. я использовал AddCmsCloudPlatformSupport метод, чтобы увидеть, работает ли он – к моему удивлению, это сработало, и я не заметил никаких проблем во время моих предварительных тестов. Однако я хотел понять, что именно делает этот метод и есть ли какие-либо причины не использовать его для использования без DXP, поэтому я решил декомпилировать сборку CloudPlatform, и вот что я узнал.

AddCmsCloudPlatformSupport деконструирован

Список сервисов, настроенных в данный момент этим методом:

services.AddApplicationInsights();
services.AddAzureBlobProvider();
services.TryAddEnumerable(ServiceDescriptor.Singleton, ValidateAzureBlobProviderOptionsConfigurer>());
services.AddCloudPlatformHealthCheck();
services.AddAzureEventProvider();
services.TryAddEnumerable(ServiceDescriptor.Singleton, ValidateAzureEventProviderOptionsConfigurer>());
services.ConfigureDatabase();
services.ConfigureClientGeolocationOptions();
services.AddDataProtectionToBlobStorage(configuration);
services.ConfigureTelemetryOptions();
services.AddCloudPlatformForwardedFor();

Углубившись в каждый метод, я смог раскрыть его назначение.

AddApplicationInsights

Настраивает Application Insights и регистрирует клиентский пакет SDK для JavaScript для мониторинга реальных пользователей.

АддАзуреблобпровидер

Это метод расширения, доступный в EPiServer.Azure чтобы добавить AzureBlobProvider.

public static IServiceCollection AddAzureBlobProvider(
      this IServiceCollection services,
      Action configureOptions = null)
    {
      services.Configure((Action) (options =>
      {
        options.DefaultProvider = "azure";
        options.AddProvider("azure");
      }));
      if (configureOptions != null)
        services.Configure(configureOptions);
      services.TryAddEnumerable(ServiceDescriptor.Singleton, AzureBlobProviderOptionsConfigurer>());
      return services;
    }

По умолчанию это настроено на использование EPiServerAzureBlobs строка подключения (если указана) в конфигурации среды и создает имя контейнера «mysitemedia».

AddCloudPlatformHealthCheck

Регистрирует проверки работоспособности CMS и предварительные проверки работоспособности. Обратитесь к этому блог для получения более подробной информации и того, как добавить пользовательские проверки работоспособности.

АддАзуревентпровидер

Подобно АддАзуреблобпровидер метод, это метод расширения, доступный в EPiServer.Azure чтобы добавить AzureEventProvider и по умолчанию использует EPiServerAzureEvents строка подключения (если указана) в конфигурации среды и создает тему с именем «mysiteevents».

Настроить базу данных

Наборы updateDatabaseSchema значение true, чтобы применять автоматические обновления базы данных.

Настроить параметры геолокации клиента

Устанавливает имена заголовков запросов для использования для персонализации пользователя – EPiServer.Personalisation.ClientGeolocationOptions

options.IPAddressHeader = "X-Forwarded-For";
options.LocationHeader = "CF-IPCountry";

Адддатапротектионтоблобстораже

Метод расширения в EPiServer.CloudPlatform.Cms добавить защита данных для хранилища BLOB с помощью Azure Key Vault.

Настроить телеметриоптионс

Включает отправку диагностики телеметрии пользователя в Optimizely.

Аддклаудплатформфорвардедфор

Включает и настраивает ПО промежуточного слоя для переадресации заголовков для сценариев CDN и балансировщика нагрузки.

Что я закончил с

Зная это, я понял, что не все настроенные сервисы подходят для моего сценария, поэтому моя конфигурация теперь выглядит так:

 //Configuration for self-hosted Azure deployments
services.AddApplicationInsightsTelemetry();
services.AddServiceProfiler();
services.AddAzureBlobProvider(options => options.ContainerName = "mosey-media");
services.AddAzureEventProvider(options => options.TopicName = "mosey-events");
services.Configure((Action)(options => options.UpdateDatabaseSchema = true));

Обратите внимание, что мой вариант использования предназначен для целей исследований и разработок, поэтому вышеизложенное является отправной точкой, и реальная реализация развертывания без DXP, вероятно, потребует дополнительной настройки.

Обобщить

AddCmsCloudPlatformSupport специально используется для настройки сервисов для DXP. Хотя похоже, что вы также можете использовать его для развертываний без DXP, прямая настройка служб — это способ получить больший контроль над параметрами конфигурации вашего облака (и избежать потенциальных критических изменений от будущих обновлений до EPiServer.CloudPlatform.Cmпакет с).

Я надеюсь, что этот пост поможет предоставить контекст и направление для включения облачной поддержки для ваших развертываний Azure.

29 июня 2023 г.

Read more:  Ирландец умер на Ибице - Highland Radio

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.