src/Saas.Lib/Deployment.Script.Modules/map-output-parameters-for-app-service.py (49 lines of code) (raw):

#!/usr/bin/env python3 import json import sys import re def get_app_value(config: dict, app_name: str, key: str) -> str: for item in config['appRegistrations']: if item['name'] == app_name: return item[key] def get_output_value(outputs: dict, output_name: str) -> 'dict[str, dict[str, str]]': item = outputs[output_name] if item : return { output_name : { 'value': item['value'] } } def patch_paramenters_file( app_name: str, identity_outputs: str, paramenter_file: str, config_file: str) -> None: with open(config_file, 'r') as f: config = json.load(f) with open(identity_outputs, 'r') as f: identity_outputs = json.load(f) with open(paramenter_file, 'r') as f: parameters = json.load(f) print(f"App Name: {app_name}") app_service_name = get_app_value(config, app_name, 'appServiceName') app_key_name = re.sub('-', '', app_name) parameters['parameters'].update({ app_key_name: { 'value': app_service_name } }) parameters['parameters'].update(get_output_value(identity_outputs, 'version')) parameters['parameters'].update(get_output_value(identity_outputs, 'environment')) parameters['parameters'].update(get_output_value(identity_outputs, 'appServicePlanName')) parameters['parameters'].update(get_output_value(identity_outputs, 'keyVaultUri')) parameters['parameters'].update(get_output_value(identity_outputs, 'location')) parameters['parameters'].update(get_output_value(identity_outputs, 'userAssignedIdentityName')) parameters['parameters'].update(get_output_value(identity_outputs, 'appConfigurationName')) parameters['parameters'].update(get_output_value(identity_outputs, 'logAnalyticsWorkspaceName')) parameters['parameters'].update(get_output_value(identity_outputs, 'applicationInsightsName')) with open(paramenter_file, 'w') as f: f.write(json.dumps(parameters, indent=4)) # Main entry point for the script if __name__ == "__main__": app_name = sys.argv[1] identity_outputs = sys.argv[2] paramenter_file = sys.argv[3] config_file = sys.argv[4] patch_paramenters_file(app_name, identity_outputs, paramenter_file, config_file)