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)