66package com .microsoft .azure .toolkit .intellij .function .runner .library .function ;
77
88import com .google .common .base .Preconditions ;
9+ import com .microsoft .azure .management .applicationinsights .v2015_05_01 .ApplicationInsightsComponent ;
10+ import com .microsoft .azure .management .appservice .FunctionApp ;
11+ import com .microsoft .azure .management .appservice .FunctionApp .DefinitionStages .WithCreate ;
12+ import com .microsoft .azure .management .appservice .PricingTier ;
913import com .microsoft .azure .management .resources .fluentcore .arm .Region ;
10- import com .microsoft .azure .toolkit .lib . legacy . appservice . OperatingSystemEnum ;
14+ import com .microsoft .azure .toolkit .intellij . function . runner . deploy . FunctionDeployModel ;
1115import com .microsoft .azure .toolkit .lib .common .exception .AzureExecutionException ;
16+ import com .microsoft .azure .toolkit .lib .common .exception .AzureToolkitRuntimeException ;
17+ import com .microsoft .azure .toolkit .lib .common .messager .AzureMessager ;
18+ import com .microsoft .azure .toolkit .lib .common .messager .IAzureMessager ;
19+ import com .microsoft .azure .toolkit .lib .common .operation .AzureOperation ;
20+ import com .microsoft .azure .toolkit .lib .legacy .appservice .AppServiceUtils ;
21+ import com .microsoft .azure .toolkit .lib .legacy .appservice .OperatingSystemEnum ;
1222import com .microsoft .azure .toolkit .lib .legacy .function .configurations .ElasticPremiumPricingTier ;
1323import com .microsoft .azure .toolkit .lib .legacy .function .configurations .FunctionExtensionVersion ;
1424import com .microsoft .azure .toolkit .lib .legacy .function .configurations .RuntimeConfiguration ;
1525import com .microsoft .azure .toolkit .lib .legacy .function .handlers .runtime .FunctionRuntimeHandler ;
1626import com .microsoft .azure .toolkit .lib .legacy .function .handlers .runtime .LinuxFunctionRuntimeHandler ;
1727import com .microsoft .azure .toolkit .lib .legacy .function .handlers .runtime .WindowsFunctionRuntimeHandler ;
1828import com .microsoft .azure .toolkit .lib .legacy .function .utils .FunctionUtils ;
19- import com .microsoft .azure .toolkit .lib .common .logging .Log ;
20- import com .microsoft .azure .toolkit .lib .legacy .appservice .AppServiceUtils ;
21- import com .microsoft .azure .management .applicationinsights .v2015_05_01 .ApplicationInsightsComponent ;
22- import com .microsoft .azure .management .appservice .FunctionApp ;
23- import com .microsoft .azure .management .appservice .FunctionApp .DefinitionStages .WithCreate ;
24- import com .microsoft .azure .management .appservice .PricingTier ;
25- import com .microsoft .azure .toolkit .lib .common .exception .AzureToolkitRuntimeException ;
26- import com .microsoft .azure .toolkit .lib .common .operation .AzureOperation ;
27- import com .microsoft .azure .toolkit .intellij .function .runner .deploy .FunctionDeployModel ;
2829import com .microsoft .azuretools .telemetrywrapper .Operation ;
2930import com .microsoft .tooling .msservices .helpers .azure .sdk .AzureSDKManager ;
3031import org .apache .commons .lang3 .StringUtils ;
@@ -48,13 +49,15 @@ public class CreateFunctionHandler {
4849 private static final OperatingSystemEnum DEFAULT_OS = OperatingSystemEnum .Windows ;
4950 private static final String APP_INSIGHTS_INSTRUMENTATION_KEY = "APPINSIGHTS_INSTRUMENTATIONKEY" ;
5051
51- private FunctionDeployModel ctx ;
52- private Operation operation ;
52+ private final FunctionDeployModel ctx ;
53+ private final Operation operation ;
54+ private final IAzureMessager messenger ;
5355
5456 public CreateFunctionHandler (FunctionDeployModel ctx , Operation operation ) {
5557 Preconditions .checkNotNull (ctx );
5658 this .ctx = ctx ;
5759 this .operation = operation ;
60+ this .messenger = AzureMessager .getMessager ();
5861 }
5962
6063 public FunctionApp execute () {
@@ -77,7 +80,7 @@ public FunctionApp execute() {
7780 type = AzureOperation .Type .SERVICE
7881 )
7982 private FunctionApp createFunctionApp () {
80- Log . prompt (message ("function.create.hint.startCreateFunction" ));
83+ messenger . info (message ("function.create.hint.startCreateFunction" ));
8184 final WithCreate withCreate ;
8285 try {
8386 final FunctionRuntimeHandler runtimeHandler = getFunctionRuntimeHandler ();
@@ -93,9 +96,9 @@ private FunctionApp createFunctionApp() {
9396 appSettings .putAll (bindingApplicationInsights ());
9497 withCreate .withAppSettings (appSettings );
9598
96- FunctionApp result = withCreate .create ();
99+ final FunctionApp result = withCreate .create ();
97100 operation .trackProperty ("pricingTier" , ctx .getPricingTier ());
98- Log . prompt (message ("function.create.hint.functionCreated" , ctx .getAppName ()));
101+ messenger . info (message ("function.create.hint.functionCreated" , ctx .getAppName ()));
99102 return result ;
100103 }
101104
@@ -127,8 +130,9 @@ private Map<String, String> bindingApplicationInsights() {
127130 try {
128131 insights = AzureSDKManager .getOrCreateApplicationInsights (ctx .getSubscription (), ctx .getResourceGroup (), ctx .getInsightsName (), region );
129132 instrumentationKey = insights .instrumentationKey ();
130- } catch (final IOException e ) {
131- Log .prompt (message ("function.create.error.createApplicationInsightsFailed" , ctx .getAppName ()));
133+ } catch (final IOException | RuntimeException e ) {
134+ // swallow exception for application insights, which should not block function creation
135+ messenger .warning (message ("function.create.error.createApplicationInsightsFailed" , ctx .getAppName ()));
132136 }
133137 }
134138 return Collections .singletonMap (APP_INSIGHTS_INSTRUMENTATION_KEY , instrumentationKey );
@@ -174,7 +178,7 @@ private void setDefaultAppSetting(Map result, String settingName, String setting
174178
175179 final String setting = (String ) result .get (settingName );
176180 if (StringUtils .isEmpty (setting )) {
177- Log . prompt (settingIsEmptyMessage );
181+ messenger . info (settingIsEmptyMessage );
178182 result .put (settingName , settingValue );
179183 }
180184 }
@@ -184,9 +188,9 @@ private void overrideDefaultAppSetting(Map result, String settingName, String se
184188
185189 final String setting = (String ) result .get (settingName );
186190 if (StringUtils .isEmpty (setting )) {
187- Log . prompt (settingIsEmptyMessage );
191+ messenger . info (settingIsEmptyMessage );
188192 } else if (!setting .equals (settingValue )) {
189- Log . warn (String .format (changeSettingMessage , setting ));
193+ messenger . warning (String .format (changeSettingMessage , setting ));
190194 }
191195 result .put (settingName , settingValue );
192196 }
@@ -223,6 +227,7 @@ private Map getAppSettingsWithDefaultValue() {
223227 FUNCTIONS_WORKER_RUNTIME_VALUE , message ("function.hint.changeFunctionWorker" ));
224228 setDefaultAppSetting (settings , FUNCTIONS_EXTENSION_VERSION_NAME , message ("function.hint.setFunctionVersion" ),
225229 FUNCTIONS_EXTENSION_VERSION_VALUE );
230+ com .microsoft .azure .toolkit .intellij .function .runner .core .FunctionUtils .saveAppSettingsToSecurityStorage (ctx .getAppSettingsKey (), settings );
226231 return settings ;
227232 }
228233}
0 commit comments