public static async Task CreateSiteResources( [OrchestrationTrigger] DurableOrchestrationContextBase context, ILogger log) { CreationParameters creationParams = context.GetInput <CreationParameters>(); if (!context.IsReplaying) { log.LogWarning("ORC - Creating Site Resources in: {resourceGroup}", creationParams.ResourceGroupName); } // site resources (sql server, sql db, redis cache, storageAccount (record attachments), ???) var storageRequest = CreateStorageAccountRequest.FromCreationParams(creationParams); storageRequest.StorageAccountName = ResourceCreationActivities.GenerateStorageAccountName(creationParams, string.Empty); var t1 = context.CallSubOrchestratorAsync(nameof(CreateSiteSqlServerAndDatabase), creationParams); var t2 = context.CallActivityAsync <CreateStorageAccountResult>(nameof(ResourceCreationActivities.CreateStorageAccount), storageRequest); await Task.WhenAll(t1, t2); if (!context.IsReplaying) { log.LogWarning($"ORC - Created Storage Account Name: {t2.Result.StorageAccountName} - Primary Key: {t2.Result.PrimaryKey.KeyName}, {t2.Result.PrimaryKey.Value}"); log.LogWarning($"ORC - Created Site Resources in Resource Group: {creationParams.ResourceGroupName}"); } }
public static async Task CreateCoreResources( [OrchestrationTrigger] DurableOrchestrationContextBase context, ILogger log) { CreationParameters creationParams = context.GetInput <CreationParameters>(); if (!context.IsReplaying) { log.LogWarning("ORC - Creating Core Resources in: {resourceGroupName}", creationParams.ResourceGroupName); } //await context.CallActivityWithRetryAsync( // nameof(ResourceCreationActivities.CreateAppServicePlan), // new RetryOptions(TimeSpan.FromMinutes(1), maxNumberOfAttempts: 3) // { // BackoffCoefficient = 1.0, // Handle = ex => // { // if (ex is CloudException) // { // log.LogError(ex, "failed to create app service plan..."); // return true; // } // // don't bother retrying on any other exceptions // return false; // }, // RetryTimeout = TimeSpan.FromMinutes(1) // }, // creationParams); var storageRequest = CreateStorageAccountRequest.FromCreationParams(creationParams); storageRequest.StorageAccountName = ResourceCreationActivities.GenerateStorageAccountName(creationParams, "logs"); var t1 = context.CallSubOrchestratorAsync(nameof(CreateCustomerAppServicePlan), creationParams); var t2 = context.CallActivityAsync <CreateStorageAccountResult>(nameof(ResourceCreationActivities.CreateStorageAccount), storageRequest); await Task.WhenAll(t1, t2); if (!context.IsReplaying) { log.LogWarning($"ORC - Created Storage Account Name: {t2.Result.StorageAccountName} - Primary Key: {t2.Result.PrimaryKey.KeyName}, {t2.Result.PrimaryKey.Value}"); log.LogWarning($"ORC - Created Core Resources in: {creationParams.ResourceGroupName}"); } }