github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/transpiled_examples/azure-app-service-pp/nodejs/azure-app-service.ts (about) 1 import * as pulumi from "@pulumi/pulumi"; 2 import * as azure_native from "@pulumi/azure-native"; 3 import * as random from "@pulumi/random"; 4 5 const config = new pulumi.Config(); 6 const sqlAdmin = config.get("sqlAdmin") || "pulumi"; 7 const appservicegroup = new azure_native.resources.ResourceGroup("appservicegroup", {}); 8 const sa = new azure_native.storage.StorageAccount("sa", { 9 resourceGroupName: appservicegroup.name, 10 kind: "StorageV2", 11 sku: { 12 name: "Standard_LRS", 13 }, 14 }); 15 const container = new azure_native.storage.BlobContainer("container", { 16 resourceGroupName: appservicegroup.name, 17 accountName: sa.name, 18 publicAccess: azure_native.storage.PublicAccess.None, 19 }); 20 const blobAccessToken = pulumi.secret(pulumi.all([sa.name, appservicegroup.name, sa.name, container.name]).apply(([saName, appservicegroupName, saName1, containerName]) => azure_native.storage.listStorageAccountServiceSASOutput({ 21 accountName: saName, 22 protocols: azure_native.storage.HttpProtocol.Https, 23 sharedAccessStartTime: "2022-01-01", 24 sharedAccessExpiryTime: "2030-01-01", 25 resource: "c", 26 resourceGroupName: appservicegroupName, 27 permissions: "r", 28 canonicalizedResource: `/blob/${saName1}/${containerName}`, 29 contentType: "application/json", 30 cacheControl: "max-age=5", 31 contentDisposition: "inline", 32 contentEncoding: "deflate", 33 })).apply(invoke => invoke.serviceSasToken)); 34 const appserviceplan = new azure_native.web.AppServicePlan("appserviceplan", { 35 resourceGroupName: appservicegroup.name, 36 kind: "App", 37 sku: { 38 name: "B1", 39 tier: "Basic", 40 }, 41 }); 42 const blob = new azure_native.storage.Blob("blob", { 43 resourceGroupName: appservicegroup.name, 44 accountName: sa.name, 45 containerName: container.name, 46 type: azure_native.storage.BlobType.Block, 47 source: new pulumi.asset.FileArchive("./www"), 48 }); 49 const appInsights = new azure_native.insights.Component("appInsights", { 50 resourceGroupName: appservicegroup.name, 51 applicationType: "web", 52 kind: "web", 53 }); 54 const sqlPassword = new random.RandomPassword("sqlPassword", { 55 length: 16, 56 special: true, 57 }); 58 const sqlServer = new azure_native.sql.Server("sqlServer", { 59 resourceGroupName: appservicegroup.name, 60 administratorLogin: sqlAdmin, 61 administratorLoginPassword: sqlPassword.result, 62 version: "12.0", 63 }); 64 const db = new azure_native.sql.Database("db", { 65 resourceGroupName: appservicegroup.name, 66 serverName: sqlServer.name, 67 sku: { 68 name: "S0", 69 }, 70 }); 71 const app = new azure_native.web.WebApp("app", { 72 resourceGroupName: appservicegroup.name, 73 serverFarmId: appserviceplan.id, 74 siteConfig: { 75 appSettings: [ 76 { 77 name: "WEBSITE_RUN_FROM_PACKAGE", 78 value: pulumi.interpolate`https://${sa.name}.blob.core.windows.net/${container.name}/${blob.name}?${blobAccessToken}`, 79 }, 80 { 81 name: "APPINSIGHTS_INSTRUMENTATIONKEY", 82 value: appInsights.instrumentationKey, 83 }, 84 { 85 name: "APPLICATIONINSIGHTS_CONNECTION_STRING", 86 value: pulumi.interpolate`InstrumentationKey=${appInsights.instrumentationKey}`, 87 }, 88 { 89 name: "ApplicationInsightsAgent_EXTENSION_VERSION", 90 value: "~2", 91 }, 92 ], 93 connectionStrings: [{ 94 name: "db", 95 type: azure_native.web.ConnectionStringType.SQLAzure, 96 connectionString: pulumi.interpolate`Server= tcp:${sqlServer.name}.database.windows.net;initial catalog=${db.name};userID=${sqlAdmin};password=${sqlPassword.result};Min Pool Size=0;Max Pool Size=30;Persist Security Info=true;`, 97 }], 98 }, 99 }); 100 export const endpoint = app.defaultHostName;