github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/transpiled_examples/azure-app-service-pp/python/azure-app-service.py (about)

     1  import pulumi
     2  import pulumi_azure_native as azure_native
     3  import pulumi_random as random
     4  
     5  config = pulumi.Config()
     6  sql_admin = config.get("sqlAdmin")
     7  if sql_admin is None:
     8      sql_admin = "pulumi"
     9  appservicegroup = azure_native.resources.ResourceGroup("appservicegroup")
    10  sa = azure_native.storage.StorageAccount("sa",
    11      resource_group_name=appservicegroup.name,
    12      kind="StorageV2",
    13      sku=azure_native.storage.SkuArgs(
    14          name="Standard_LRS",
    15      ))
    16  container = azure_native.storage.BlobContainer("container",
    17      resource_group_name=appservicegroup.name,
    18      account_name=sa.name,
    19      public_access=azure_native.storage.PublicAccess.NONE)
    20  blob_access_token = pulumi.secret(pulumi.Output.all(sa.name, appservicegroup.name, sa.name, container.name).apply(lambda saName, appservicegroupName, saName1, containerName: azure_native.storage.list_storage_account_service_sas_output(account_name=sa_name,
    21      protocols=azure_native.storage.HttpProtocol.HTTPS,
    22      shared_access_start_time="2022-01-01",
    23      shared_access_expiry_time="2030-01-01",
    24      resource="c",
    25      resource_group_name=appservicegroup_name,
    26      permissions="r",
    27      canonicalized_resource=f"/blob/{sa_name1}/{container_name}",
    28      content_type="application/json",
    29      cache_control="max-age=5",
    30      content_disposition="inline",
    31      content_encoding="deflate")).apply(lambda invoke: invoke.service_sas_token))
    32  appserviceplan = azure_native.web.AppServicePlan("appserviceplan",
    33      resource_group_name=appservicegroup.name,
    34      kind="App",
    35      sku=azure_native.web.SkuDescriptionArgs(
    36          name="B1",
    37          tier="Basic",
    38      ))
    39  blob = azure_native.storage.Blob("blob",
    40      resource_group_name=appservicegroup.name,
    41      account_name=sa.name,
    42      container_name=container.name,
    43      type=azure_native.storage.BlobType.BLOCK,
    44      source=pulumi.FileArchive("./www"))
    45  app_insights = azure_native.insights.Component("appInsights",
    46      resource_group_name=appservicegroup.name,
    47      application_type="web",
    48      kind="web")
    49  sql_password = random.RandomPassword("sqlPassword",
    50      length=16,
    51      special=True)
    52  sql_server = azure_native.sql.Server("sqlServer",
    53      resource_group_name=appservicegroup.name,
    54      administrator_login=sql_admin,
    55      administrator_login_password=sql_password.result,
    56      version="12.0")
    57  db = azure_native.sql.Database("db",
    58      resource_group_name=appservicegroup.name,
    59      server_name=sql_server.name,
    60      sku=azure_native.sql.SkuArgs(
    61          name="S0",
    62      ))
    63  app = azure_native.web.WebApp("app",
    64      resource_group_name=appservicegroup.name,
    65      server_farm_id=appserviceplan.id,
    66      site_config=azure_native.web.SiteConfigArgs(
    67          app_settings=[
    68              azure_native.web.NameValuePairArgs(
    69                  name="WEBSITE_RUN_FROM_PACKAGE",
    70                  value=pulumi.Output.all(sa.name, container.name, blob.name, blob_access_token).apply(lambda saName, containerName, blobName, blob_access_token: f"https://{sa_name}.blob.core.windows.net/{container_name}/{blob_name}?{blob_access_token}"),
    71              ),
    72              azure_native.web.NameValuePairArgs(
    73                  name="APPINSIGHTS_INSTRUMENTATIONKEY",
    74                  value=app_insights.instrumentation_key,
    75              ),
    76              azure_native.web.NameValuePairArgs(
    77                  name="APPLICATIONINSIGHTS_CONNECTION_STRING",
    78                  value=app_insights.instrumentation_key.apply(lambda instrumentation_key: f"InstrumentationKey={instrumentation_key}"),
    79              ),
    80              azure_native.web.NameValuePairArgs(
    81                  name="ApplicationInsightsAgent_EXTENSION_VERSION",
    82                  value="~2",
    83              ),
    84          ],
    85          connection_strings=[azure_native.web.ConnStringInfoArgs(
    86              name="db",
    87              type=azure_native.web.ConnectionStringType.SQL_AZURE,
    88              connection_string=pulumi.Output.all(sql_server.name, db.name, sql_password.result).apply(lambda sqlServerName, dbName, result: f"Server= tcp:{sql_server_name}.database.windows.net;initial catalog={db_name};userID={sql_admin};password={result};Min Pool Size=0;Max Pool Size=30;Persist Security Info=true;"),
    89          )],
    90      ))
    91  pulumi.export("endpoint", app.default_host_name)