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;