@@ -69,6 +69,7 @@ private void GenerateARMTemplate(string apimname, string resourceGroup, string f
69
69
70
70
if ( singleApiName == null )
71
71
{
72
+ GenerateNamedValuesTemplate ( resourceGroup , apimname , fileFolder ) ;
72
73
GenerateLoggerTemplate ( resourceGroup , apimname , fileFolder ) ;
73
74
}
74
75
@@ -390,16 +391,10 @@ private async void GenerateLoggerTemplate(string resourceGroup, string apimname,
390
391
Console . WriteLine ( "------------------------------------------" ) ;
391
392
Console . WriteLine ( "Getting loggers from service" ) ;
392
393
LoggerExtractor loggerExtractor = new LoggerExtractor ( ) ;
393
- PropertyExtractor propertyExtractor = new PropertyExtractor ( ) ;
394
394
Template armTemplate = GenerateEmptyTemplateWithParameters ( ) ;
395
395
396
396
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
397
397
398
- // pull named values for later credential reference
399
- string properties = propertyExtractor . GetProperties ( apimname , resourceGroup ) . Result ;
400
- JObject oProperties = JObject . Parse ( properties ) ;
401
- List < PropertyTemplateResource > propertyResources = oProperties [ "value" ] . ToObject < List < PropertyTemplateResource > > ( ) ;
402
-
403
398
string loggers = loggerExtractor . GetLoggers ( apimname , resourceGroup ) . Result ;
404
399
JObject oLoggers = JObject . Parse ( loggers ) ;
405
400
foreach ( var extractedLogger in oLoggers [ "value" ] )
@@ -414,13 +409,6 @@ private async void GenerateLoggerTemplate(string resourceGroup, string apimname,
414
409
loggerResource . apiVersion = "2018-06-01-preview" ;
415
410
loggerResource . scale = null ;
416
411
417
- // swap instrumentation key credentials for their hidden values if the logger is app insights, taken from named values
418
- if ( loggerResource . properties . credentials != null && loggerResource . properties . credentials . instrumentationKey != null )
419
- {
420
- string hiddenKey = loggerResource . properties . credentials . instrumentationKey . Substring ( 2 , loggerResource . properties . credentials . instrumentationKey . Length - 4 ) ;
421
- loggerResource . properties . credentials . instrumentationKey = propertyResources . Find ( p => p . properties . displayName == hiddenKey ) . properties . value ;
422
- }
423
-
424
412
templateResources . Add ( loggerResource ) ;
425
413
}
426
414
@@ -429,6 +417,38 @@ private async void GenerateLoggerTemplate(string resourceGroup, string apimname,
429
417
fileWriter . WriteJSONToFile ( armTemplate , @fileFolder + Path . DirectorySeparatorChar + apimname + "-loggers.json" ) ;
430
418
}
431
419
420
+ private async void GenerateNamedValuesTemplate ( string resourceGroup , string apimname , string fileFolder )
421
+ {
422
+ Console . WriteLine ( "------------------------------------------" ) ;
423
+ Console . WriteLine ( "Getting named values from service" ) ;
424
+ PropertyExtractor propertyExtractor = new PropertyExtractor ( ) ;
425
+ Template armTemplate = GenerateEmptyTemplateWithParameters ( ) ;
426
+
427
+ List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
428
+
429
+ // pull named values for later credential reference
430
+ string properties = propertyExtractor . GetProperties ( apimname , resourceGroup ) . Result ;
431
+ JObject oProperties = JObject . Parse ( properties ) ;
432
+ foreach ( var extractedProperty in oProperties [ "value" ] )
433
+ {
434
+ string propertyName = ( ( JValue ) extractedProperty [ "name" ] ) . Value . ToString ( ) ;
435
+ Console . WriteLine ( "'{0}' Named value found" , propertyName ) ;
436
+
437
+ string fullLoggerResource = await propertyExtractor . GetProperty ( apimname , resourceGroup , propertyName ) ;
438
+ PropertyTemplateResource propertyTemplateResource = JsonConvert . DeserializeObject < PropertyTemplateResource > ( fullLoggerResource ) ;
439
+ propertyTemplateResource . name = $ "[concat(parameters('ApimServiceName'), '/{ propertyName } ')]";
440
+ propertyTemplateResource . type = "Microsoft.ApiManagement/service/properties" ;
441
+ propertyTemplateResource . apiVersion = "2018-06-01-preview" ;
442
+ propertyTemplateResource . scale = null ;
443
+
444
+ templateResources . Add ( propertyTemplateResource ) ;
445
+ }
446
+
447
+ armTemplate . resources = templateResources . ToArray ( ) ;
448
+ FileWriter fileWriter = new FileWriter ( ) ;
449
+ fileWriter . WriteJSONToFile ( armTemplate , @fileFolder + Path . DirectorySeparatorChar + apimname + "-namedvalues.json" ) ;
450
+ }
451
+
432
452
public Template GenerateEmptyTemplateWithParameters ( )
433
453
{
434
454
TemplateCreator templateCreator = new TemplateCreator ( ) ;
0 commit comments