/// <summary> /// Create a Standard tier Serverless instance of SignalR service in the given resource group. /// </summary> /// <param name="resourceGroup"></param> /// <param name="signalRName"></param> /// <param name="tags"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <SignalRResource> CreateAsync( IResourceGroup resourceGroup, string signalRName, IDictionary <string, string> tags = null, CancellationToken cancellationToken = default ) { if (resourceGroup is null) { throw new ArgumentNullException(nameof(resourceGroup)); } if (string.IsNullOrEmpty(signalRName)) { throw new ArgumentNullException(nameof(signalRName)); } try { tags ??= new Dictionary <string, string>(); Log.Information($"Creating SignalR Service: {signalRName} ..."); var serviceModeFeature = new SignalRFeature { Flag = ServiceMode.Serverless.Flag, Value = ServiceMode.Serverless.Value }; var signalRCreateParameters = new SignalRResource() { Location = resourceGroup.RegionName, Tags = tags, Sku = new ResourceSku { Name = "Standard_S1", Tier = "Standard", Capacity = 1, }, HostNamePrefix = signalRName, Features = new List <SignalRFeature> { serviceModeFeature } }; signalRCreateParameters.Validate(); var signalR = await _signalRManagementClient .SignalR .CreateOrUpdateAsync( resourceGroup.Name, signalRName, signalRCreateParameters, cancellationToken ); Log.Information($"Created SignalR Service: {signalRName}"); return(signalR); } catch (Exception ex) { Log.Error(ex, $"Failed ot create SignalR Service: {signalRName}"); throw; } }