public StaticService(SolutionStack rg, string serviceName) { var sa = new Pulumi.Azure.Storage.Account(serviceName, new Pulumi.Azure.Storage.AccountArgs { ResourceGroupName = rg.RGName, EnableHttpsTrafficOnly = true, AccountReplicationType = "LRS", AccountTier = "Standard", AccountKind = "StorageV2", StaticWebsite = new AccountStaticWebsiteArgs { IndexDocument = "index.html" } }); StaticEndpoint = sa.PrimaryWebEndpoint; }
public StaticWebsite(string name, StaticWebsiteArgs args, ComponentResourceOptions?options = null) : base("teamtimezones:azure:staticwebsite", name, options) { var opts = new CustomResourceOptions { Parent = this }; var staticWebsiteStorageAccount = new Pulumi.Azure.Storage.Account( name, new Pulumi.Azure.Storage.AccountArgs { Name = name, ResourceGroupName = args.StorageAccountName, EnableHttpsTrafficOnly = true, AccountReplicationType = "LRS", AccountTier = "Standard", AccountKind = "StorageV2", AccessTier = "Hot" }, opts); StaticWebsiteConnection = staticWebsiteStorageAccount.PrimaryConnectionString; }
public Step1Start() { const string prefix = Common.Prefix; var config = new Config(); var location = config.Get("location") ?? "australiaeast"; #region Resource Group var resourceGroup = new ResourceGroup($"{prefix}-{Deployment.Instance.StackName}", new ResourceGroupArgs() { Name = $"{prefix}-{Deployment.Instance.StackName}", Location = location }); #endregion #region Storage Account var name = $"{prefix}{Deployment.Instance.StackName}web"; var staticWebsiteStorageAccount = new Pulumi.Azure.Storage.Account( name, new Pulumi.Azure.Storage.AccountArgs { Name = name, ResourceGroupName = resourceGroup.Name, EnableHttpsTrafficOnly = true, AccountReplicationType = "LRS", AccountTier = "Standard", AccountKind = "StorageV2", AccessTier = "Hot" }); #endregion #region Enable Static Website WebContainer = staticWebsiteStorageAccount.PrimaryBlobConnectionString.Apply(async v => await EnableStaticSites(v)); #endregion }
public static Task <int> Main() { var tags = new InputMap <string> { { "Owner", "PulumiDemo" } }; return(Deployment.RunAsync(() => { // Create an Azure Resource Group var resourceGroup = new ResourceGroup("resourceGroup", new ResourceGroupArgs { Location = "westeurope", Tags = tags }); // Create an Azure Storage Account var storageAccount = new Account("storageAccount", new AccountArgs { ResourceGroupName = resourceGroup.Name, AccountReplicationType = "LRS", AccountTier = "Standard", Tags = tags }); // Create an Azure Sql Server var sqlServer = new SqlServer("sqlServer", new SqlServerArgs { AdministratorLogin = "******", AdministratorLoginPassword = "******", ResourceGroupName = resourceGroup.Name, Version = "12.0", Tags = tags }); // Create an Azure Sql Database var sqlDatabase = new Database("sqlDatabase", new DatabaseArgs { ResourceGroupName = resourceGroup.Name, ServerName = sqlServer.Name, Edition = "Basic", Tags = tags }); // Create an Azure Firewall Rule var currentIpAddress = FindCurrentIpAddress(); var firewallRule = new FirewallRule("firewallRule", new FirewallRuleArgs { ResourceGroupName = resourceGroup.Name, ServerName = sqlServer.Name, StartIpAddress = currentIpAddress, EndIpAddress = currentIpAddress }); // Export outputs to console/dashboard return new Dictionary <string, object> { { "resourceGroupName", resourceGroup.Name }, { "storageAccountName", storageAccount.Name }, { "sqlServerName", sqlServer.Name }, { "sqlDatabaseName", sqlDatabase.Name }, { "firewallRuleName", firewallRule.Name } }; })); }
public Step2Start() { const string prefix = Common.Prefix; var config = new Config(); var location = config.Get("location") ?? "australiaeast"; #region Resource Group var resourceGroup = new ResourceGroup($"{prefix}-{Deployment.Instance.StackName}", new ResourceGroupArgs() { Name = $"{prefix}-{Deployment.Instance.StackName}", Location = location }); #endregion #region Static Website var name = $"{prefix}{Deployment.Instance.StackName}web"; var staticWebsiteStorageAccount = new Pulumi.Azure.Storage.Account( name, new Pulumi.Azure.Storage.AccountArgs { Name = name, ResourceGroupName = resourceGroup.Name, EnableHttpsTrafficOnly = true, AccountReplicationType = "LRS", AccountTier = "Standard", AccountKind = "StorageV2", AccessTier = "Hot" }); WebContainer = staticWebsiteStorageAccount.PrimaryBlobConnectionString.Apply(async v => await EnableStaticSites(v)); #endregion #region Cosmos DB string accountName = $"{prefix}-{Deployment.Instance.StackName}"; string databaseName = "TeamTimeZones"; string containerName = "TeamMember"; #region Account var cosmosAccount = new Account(accountName, new AccountArgs { Name = accountName, ResourceGroupName = resourceGroup.Name, GeoLocations = new List <AccountGeoLocationArgs> { new AccountGeoLocationArgs { Location = location, FailoverPriority = 0 } }, OfferType = "Standard", ConsistencyPolicy = new AccountConsistencyPolicyArgs { ConsistencyLevel = "Session" }, }); #endregion #region Database var database = new SqlDatabase(databaseName, new SqlDatabaseArgs { Name = databaseName, ResourceGroupName = resourceGroup.Name, AccountName = cosmosAccount.Name }); #endregion #region Container var container = new SqlContainer($"{prefix}-{Deployment.Instance.StackName}", new SqlContainerArgs { Name = containerName, ResourceGroupName = resourceGroup.Name, AccountName = cosmosAccount.Name, DatabaseName = database.Name, PartitionKeyPath = "/TimeZone" }); #endregion #endregion }