def _provision(self, params): site_config = SiteConfig(app_settings=[]) functionapp_def = Site(https_only=True, client_cert_enabled=True, location=params['location'], site_config=site_config) # common function app settings functionapp_def.server_farm_id = params['app_service_plan_id'] functionapp_def.reserved = True # This implies Linux for auto-created app plans functionapp_def.identity = self._get_identity(params) # consumption app plan if params['is_consumption_plan']: functionapp_def.kind = 'functionapp,linux' site_config.linux_fx_version = FUNCTION_DOCKER_VERSION # dedicated app plan else: functionapp_def.kind = 'functionapp,linux,container' site_config.linux_fx_version = FUNCTION_DOCKER_VERSION site_config.always_on = True # application insights settings app_insights_key = params['app_insights_key'] if app_insights_key: site_config.app_settings.append( azure_name_value_pair('APPINSIGHTS_INSTRUMENTATIONKEY', app_insights_key)) # Don't generate pycache site_config.app_settings.append( azure_name_value_pair('PYTHONDONTWRITEBYTECODE', 1)) # Enable server side build site_config.app_settings.append( azure_name_value_pair('ENABLE_ORYX_BUILD', 'true')) site_config.app_settings.append( azure_name_value_pair('SCM_DO_BUILD_DURING_DEPLOYMENT', 'true')) # general app settings con_string = params['storage_account_connection_string'] site_config.app_settings.append( azure_name_value_pair('AzureWebJobsStorage', con_string)) site_config.app_settings.append( azure_name_value_pair('FUNCTIONS_EXTENSION_VERSION', FUNCTION_EXT_VERSION)) site_config.app_settings.append( azure_name_value_pair('FUNCTIONS_WORKER_RUNTIME', 'python')) return self.client.web_apps.begin_create_or_update( params['resource_group_name'], params['name'], functionapp_def).result()
def deploy_webapp(self, app_name, group_name, service_plan, storage_account_name): self.log.info("Deploying Function App %s (%s) in group %s" % (app_name, service_plan.location, group_name)) site_config = SiteConfig(app_settings=[]) functionapp_def = Site(location=service_plan.location, site_config=site_config) functionapp_def.kind = 'functionapp,linux' functionapp_def.server_farm_id = service_plan.id site_config.linux_fx_version = CONST_DOCKER_VERSION site_config.always_on = True app_insights_key = self.get_application_insights_key(group_name, service_plan.app_service_plan_name) if app_insights_key: site_config.app_settings.append( NameValuePair('APPINSIGHTS_INSTRUMENTATIONKEY', app_insights_key)) con_string = self.get_storage_connection_string(group_name, storage_account_name) site_config.app_settings.append(NameValuePair('AzureWebJobsStorage', con_string)) site_config.app_settings.append(NameValuePair('AzureWebJobsDashboard', con_string)) site_config.app_settings.append(NameValuePair('FUNCTIONS_EXTENSION_VERSION', CONST_FUNCTIONS_EXT_VERSION)) site_config.app_settings.append(NameValuePair('FUNCTIONS_WORKER_RUNTIME', 'python')) #: :type: azure.mgmt.web.WebSiteManagementClient web_client = self.local_session.client('azure.mgmt.web.WebSiteManagementClient') web_client.web_apps.create_or_update(group_name, app_name, functionapp_def).wait()
def _provision(self, params): site_config = SiteConfig(app_settings=[]) functionapp_def = Site(location=params['location'], site_config=site_config) functionapp_def.kind = 'functionapp,linux' functionapp_def.server_farm_id = params['app_service_plan_id'] site_config.linux_fx_version = CONST_DOCKER_VERSION site_config.always_on = True app_insights_key = params['app_insights_key'] if app_insights_key: site_config.app_settings.append( azure_name_value_pair('APPINSIGHTS_INSTRUMENTATIONKEY', app_insights_key)) con_string = params['storage_account_connection_string'] site_config.app_settings.append(azure_name_value_pair('AzureWebJobsStorage', con_string)) site_config.app_settings.append(azure_name_value_pair('AzureWebJobsDashboard', con_string)) site_config.app_settings.append(azure_name_value_pair('FUNCTIONS_EXTENSION_VERSION', CONST_FUNCTIONS_EXT_VERSION)) site_config.app_settings.append(azure_name_value_pair('FUNCTIONS_WORKER_RUNTIME', 'python')) site_config.app_settings.append( azure_name_value_pair('MACHINEKEY_DecryptionKey', FunctionAppDeploymentUnit.generate_machine_decryption_key())) return self.client.web_apps.create_or_update(params['resource_group_name'], params['name'], functionapp_def).result()
def _provision(self, params): site_config = SiteConfig(app_settings=[]) functionapp_def = Site(location=params['location'], site_config=site_config) functionapp_def.kind = 'functionapp,linux' functionapp_def.server_farm_id = params['app_service_plan_id'] site_config.linux_fx_version = FUNCTION_DOCKER_VERSION site_config.always_on = True app_insights_key = params['app_insights_key'] if app_insights_key: site_config.app_settings.append( azure_name_value_pair('APPINSIGHTS_INSTRUMENTATIONKEY', app_insights_key)) con_string = params['storage_account_connection_string'] site_config.app_settings.append(azure_name_value_pair('AzureWebJobsStorage', con_string)) site_config.app_settings.append(azure_name_value_pair('AzureWebJobsDashboard', con_string)) site_config.app_settings.append(azure_name_value_pair('FUNCTIONS_EXTENSION_VERSION', FUNCTION_EXT_VERSION)) site_config.app_settings.append(azure_name_value_pair('FUNCTIONS_WORKER_RUNTIME', 'python')) site_config.app_settings.append( azure_name_value_pair('MACHINEKEY_DecryptionKey', FunctionAppDeploymentUnit.generate_machine_decryption_key())) return self.client.web_apps.create_or_update(params['resource_group_name'], params['name'], functionapp_def).result()