Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebApp:Set-AzWebApp is not honoring -AppSettings #14998

Closed
elhutchi opened this issue May 14, 2021 · 25 comments
Closed

WebApp:Set-AzWebApp is not honoring -AppSettings #14998

elhutchi opened this issue May 14, 2021 · 25 comments
Assignees
Labels
App Services aka WebSites customer-reported question The issue doesn't require a change to the product in order to be resolved. Most issues start as that Service Attention This issue is responsible by Azure service team.

Comments

@elhutchi
Copy link

Description

Within the last few days, when calling Set-AzWebApp to only change app settings, the old values stay in place rather than being updated with the value provided for -AppSettings.

This is because if no SiteConfig properties are passed in (see here), the existing SiteConfig object is loaded and PATCHed after the App Settings are PUT (see here).

Steps to reproduce

This doesn't update the App Settings:

PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting OriginalValue

PS ~>$webapp = $webapp | Set-AzWebApp -ResourceGroupName $ResourceGroupName -AppSettings @{"MySetting"="UpdatedValue"}
PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting OriginalValue

However this does update the App Settings, because we're setting another SiteConfig property (-Use32BitWorkerProcess).

PS ~>$webapp = $webapp | Set-AzWebApp -ResourceGroupName $ResourceGroupName -AppSettings @{"MySetting"="UpdatedValue"} -Use32BitWorkerProcess $true
PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting UpdatedValue

Environment data

Name                           Value
----                           -----
PSVersion                      7.1.3
PSEdition                      Core
GitCommitId                    7.1.3
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Module versions

ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Script     5.9.0                 Az                                  Core,Desk
Script     2.2.8                 Az.Accounts                         Core,Desk {Disable-AzDataCollection, Disable-AzContextAutosave, Enable-AzDataCollection, Enable-AzContextAutosave…}
Script     1.1.1                 Az.Advisor                          Core,Desk {Get-AzAdvisorRecommendation, Enable-AzAdvisorRecommendation, Disable-AzAdvisorRecommendation, Get-AzAdvisorConfiguration…}
Script     2.1.0                 Az.Aks                              Core,Desk {Get-AzAksCluster, New-AzAksCluster, Remove-AzAksCluster, Import-AzAksCredential…}
Script     1.1.4                 Az.AnalysisServices                 Core,Desk {Resume-AzAnalysisServicesServer, Suspend-AzAnalysisServicesServer, Get-AzAnalysisServicesServer, Remove-AzAnalysisServicesServe…
Script     2.2.0                 Az.ApiManagement                    Core,Desk {Add-AzApiManagementApiToGateway, Add-AzApiManagementApiToProduct, Add-AzApiManagementProductToGroup, Add-AzApiManagementRegion…}
Script     1.0.0                 Az.AppConfiguration                 Core,Desk {Get-AzAppConfigurationStore, Get-AzAppConfigurationStoreKey, New-AzAppConfigurationStore, New-AzAppConfigurationStoreKey…}
Script     1.1.0                 Az.ApplicationInsights              Core,Desk {Get-AzApplicationInsights, New-AzApplicationInsights, Remove-AzApplicationInsights, Update-AzApplicationInsights…}
Script     1.7.0                 Az.Automation                       Core,Desk {Get-AzAutomationHybridWorkerGroup, Remove-AzAutomationHybridWorkerGroup, Get-AzAutomationJobOutputRecord, Import-AzAutomationDs…
Script     3.1.0                 Az.Batch                            Core,Desk {Remove-AzBatchAccount, Get-AzBatchAccount, Get-AzBatchAccountKey, New-AzBatchAccount…}
Script     2.0.0                 Az.Billing                          Core,Desk {Get-AzBillingInvoice, Get-AzBillingPeriod, Get-AzEnrollmentAccount, Get-AzConsumptionBudget…}
Script     1.7.0                 Az.Cdn                              Core,Desk {Get-AzCdnProfile, Get-AzCdnProfileSsoUrl, New-AzCdnProfile, Remove-AzCdnProfile…}
Script     1.8.0                 Az.CognitiveServices                Core,Desk {Get-AzCognitiveServicesAccount, Get-AzCognitiveServicesAccountKey, Get-AzCognitiveServicesAccountSku, Get-AzCognitiveServicesAc…
Script     4.12.0                Az.Compute                          Core,Desk {Remove-AzAvailabilitySet, Get-AzAvailabilitySet, New-AzAvailabilitySet, Update-AzAvailabilitySet…}
Script     1.0.3                 Az.ContainerInstance                Core,Desk {New-AzContainerGroup, Get-AzContainerGroup, Remove-AzContainerGroup, Get-AzContainerInstanceLog}
Script     2.2.2                 Az.ContainerRegistry                Core,Desk {New-AzContainerRegistry, Get-AzContainerRegistry, Update-AzContainerRegistry, Remove-AzContainerRegistry…}
Script     1.1.0                 Az.CosmosDB                         Core,Desk {Get-AzCosmosDBSqlContainer, Get-AzCosmosDBSqlContainerThroughput, Get-AzCosmosDBSqlDatabase, Get-AzCosmosDBSqlDatabaseThroughpu…
Script     1.1.0                 Az.DataBoxEdge                      Core,Desk {Get-AzDataBoxEdgeJob, Get-AzDataBoxEdgeDevice, Invoke-AzDataBoxEdgeDevice, New-AzDataBoxEdgeDevice…}
Script     1.1.0                 Az.Databricks                       Core,Desk {Get-AzDatabricksVNetPeering, Get-AzDatabricksWorkspace, New-AzDatabricksVNetPeering, New-AzDatabricksWorkspace…}
Script     1.12.0                Az.DataFactory                      Core,Desk {Set-AzDataFactoryV2, Update-AzDataFactoryV2, Get-AzDataFactoryV2, Remove-AzDataFactoryV2…}
Script     1.0.2                 Az.DataLakeAnalytics                Core,Desk {Get-AzDataLakeAnalyticsDataSource, New-AzDataLakeAnalyticsCatalogCredential, Remove-AzDataLakeAnalyticsCatalogCredential, Set-A…
Script     1.3.0                 Az.DataLakeStore                    Core,Desk {Get-AzDataLakeStoreTrustedIdProvider, Remove-AzDataLakeStoreTrustedIdProvider, Remove-AzDataLakeStoreFirewallRule, Set-AzDataLa…
Script     1.0.0                 Az.DataShare                        Core,Desk {New-AzDataShareAccount, Get-AzDataShareAccount, Remove-AzDataShareAccount, New-AzDataShare…}
Script     1.1.0                 Az.DeploymentManager                Core,Desk {Get-AzDeploymentManagerArtifactSource, New-AzDeploymentManagerArtifactSource, Set-AzDeploymentManagerArtifactSource, Remove-AzD…
Script     2.1.1                 Az.DesktopVirtualization            Core,Desk {Disconnect-AzWvdUserSession, Expand-AzWvdMsixImage, Get-AzWvdApplication, Get-AzWvdApplicationGroup…}
Script     1.0.2                 Az.DevTestLabs                      Core,Desk {Get-AzDtlAllowedVMSizesPolicy, Get-AzDtlAutoShutdownPolicy, Get-AzDtlAutoStartPolicy, Get-AzDtlVMsPerLabPolicy…}
Script     1.1.2                 Az.Dns                              Core,Desk {Get-AzDnsRecordSet, New-AzDnsRecordConfig, Remove-AzDnsRecordSet, Set-AzDnsRecordSet…}
Script     1.3.0                 Az.EventGrid                        Core,Desk {New-AzEventGridTopic, Get-AzEventGridTopic, Set-AzEventGridTopic, New-AzEventGridTopicKey…}
Script     1.7.2                 Az.EventHub                         Core,Desk {New-AzEventHubNamespace, Get-AzEventHubNamespace, Set-AzEventHubNamespace, Remove-AzEventHubNamespace…}
Script     1.8.0                 Az.FrontDoor                        Core,Desk {New-AzFrontDoor, Get-AzFrontDoor, Set-AzFrontDoor, Remove-AzFrontDoor…}
Script     2.0.0                 Az.Functions                        Core,Desk {Get-AzFunctionApp, Get-AzFunctionAppAvailableLocation, Get-AzFunctionAppPlan, Get-AzFunctionAppSetting…}
Script     4.2.1                 Az.HDInsight                        Core,Desk {Get-AzHDInsightJob, New-AzHDInsightSqoopJobDefinition, Wait-AzHDInsightJob, New-AzHDInsightStreamingMapReduceJobDefinition…}
Script     1.3.1                 Az.HealthcareApis                   Core,Desk {New-AzHealthcareApisService, Remove-AzHealthcareApisService, Set-AzHealthcareApisService, Get-AzHealthcareApisService}
Script     2.7.3                 Az.IotHub                           Core,Desk {Add-AzIotHubKey, Get-AzIotHubEventHubConsumerGroup, Get-AzIotHubConnectionString, Get-AzIotHubJob…}
Script     3.4.3                 Az.KeyVault                         Core,Desk {Add-AzKeyVaultCertificate, Update-AzKeyVaultCertificate, Stop-AzKeyVaultCertificateOperation, Get-AzKeyVaultCertificateOperatio…
Script     1.0.1                 Az.Kusto                            Core,Desk {Add-AzKustoClusterLanguageExtension, Add-AzKustoDatabasePrincipal, Get-AzKustoAttachedDatabaseConfiguration, Get-AzKustoCluster…
Script     1.5.0                 Az.LogicApp                         Core,Desk {Get-AzIntegrationAccountAgreement, Get-AzIntegrationAccountAssembly, Get-AzIntegrationAccountBatchConfiguration, Get-AzIntegrat…
Script     1.1.3                 Az.MachineLearning                  Core,Desk {Move-AzMlCommitmentAssociation, Get-AzMlCommitmentAssociation, Get-AzMlCommitmentPlanUsageHistory, Remove-AzMlCommitmentPlan…}
Script     1.1.0                 Az.Maintenance                      Core,Desk {Get-AzApplyUpdate, Get-AzConfigurationAssignment, Get-AzMaintenanceConfiguration, Get-AzMaintenanceUpdate…}
Script     2.0.0                 Az.ManagedServices                  Core,Desk {Get-AzManagedServicesAssignment, New-AzManagedServicesAssignment, Remove-AzManagedServicesAssignment, Get-AzManagedServicesDefi…
Script     1.0.2                 Az.MarketplaceOrdering              Core,Desk {Get-AzMarketplaceTerms, Set-AzMarketplaceTerms}
Script     1.1.1                 Az.Media                            Core,Desk {Sync-AzMediaServiceStorageKey, Set-AzMediaServiceKey, Get-AzMediaServiceKey, Get-AzMediaServiceNameAvailability…}
Script     1.0.1                 Az.Migrate                          Core,Desk {Get-AzMigrateDiscoveredServer, Get-AzMigrateJob, Get-AzMigrateProject, Get-AzMigrateReplicationFabric…}
Script     2.5.0                 Az.Monitor                          Core,Desk {Get-AzMetricDefinition, Get-AzMetric, Remove-AzLogProfile, Get-AzLogProfile…}
Script     4.7.0                 Az.Network                          Core,Desk {Add-AzApplicationGatewayAuthenticationCertificate, Get-AzApplicationGatewayAuthenticationCertificate, New-AzApplicationGatewayA…
Script     1.1.1                 Az.NotificationHubs                 Core,Desk {Get-AzNotificationHub, Get-AzNotificationHubAuthorizationRule, Get-AzNotificationHubListKey, Get-AzNotificationHubPNSCredential…
Script     2.3.0                 Az.OperationalInsights              Core,Desk {New-AzOperationalInsightsAzureActivityLogDataSource, New-AzOperationalInsightsCustomLogDataSource, Disable-AzOperationalInsight…
Script     1.4.1                 Az.PolicyInsights                   Core,Desk {Get-AzPolicyEvent, Get-AzPolicyState, Get-AzPolicyStateSummary, Get-AzPolicyRemediation…}
Script     1.1.2                 Az.PowerBIEmbedded                  Core,Desk {Remove-AzPowerBIWorkspaceCollection, Get-AzPowerBIWorkspaceCollection, Get-AzPowerBIWorkspaceCollectionAccessKey, Get-AzPowerBI…
Script     1.0.3                 Az.PrivateDns                       Core,Desk {Get-AzPrivateDnsZone, Remove-AzPrivateDnsZone, Set-AzPrivateDnsZone, New-AzPrivateDnsZone…}
Script     3.6.0                 Az.RecoveryServices                 Core,Desk {Get-AzRecoveryServicesBackupProperty, Get-AzRecoveryServicesVault, Get-AzRecoveryServicesVaultSettingsFile, New-AzRecoveryServi…
Script     1.4.0                 Az.RedisCache                       Core,Desk {Remove-AzRedisCachePatchSchedule, New-AzRedisCacheScheduleEntry, Get-AzRedisCachePatchSchedule, New-AzRedisCachePatchSchedule…}
Script     1.0.0                 Az.RedisEnterpriseCache             Core,Desk {Export-AzRedisEnterpriseCache, Get-AzRedisEnterpriseCache, Get-AzRedisEnterpriseCacheDatabase, Get-AzRedisEnterpriseCacheKey…}
Script     1.0.3                 Az.Relay                            Core,Desk {New-AzRelayNamespace, Get-AzRelayNamespace, Set-AzRelayNamespace, Remove-AzRelayNamespace…}
Script     1.0.0                 Az.ResourceMover                    Core,Desk {Add-AzResourceMoverMoveResource, Get-AzResourceMoverMoveCollection, Get-AzResourceMoverMoveResource, Get-AzResourceMoverRequire…
Script     3.5.0                 Az.Resources                        Core,Desk {Get-AzProviderOperation, Remove-AzRoleAssignment, Get-AzRoleAssignment, New-AzRoleAssignment…}
Script     1.5.0                 Az.ServiceBus                       Core,Desk {New-AzServiceBusNamespace, Get-AzServiceBusNamespace, Set-AzServiceBusNamespace, Remove-AzServiceBusNamespace…}
Script     2.4.0                 Az.ServiceFabric                    Core,Desk {Add-AzServiceFabricClientCertificate, Add-AzServiceFabricClusterCertificate, Add-AzServiceFabricNode, Add-AzServiceFabricNodeTy…
Script     1.2.0                 Az.SignalR                          Core,Desk {New-AzSignalR, Get-AzSignalR, Get-AzSignalRKey, New-AzSignalRKey…}
Script     2.17.1                Az.Sql                              Core,Desk {Get-AzSqlDatabaseTransparentDataEncryption, Get-AzSqlDatabaseTransparentDataEncryptionActivity, Set-AzSqlDatabaseTransparentDat…
Script     1.1.0                 Az.SqlVirtualMachine                Core,Desk {New-AzSqlVM, Get-AzSqlVM, Update-AzSqlVM, Remove-AzSqlVM…}
Script     3.6.0                 Az.Storage                          Core,Desk {Get-AzStorageAccount, Get-AzStorageAccountKey, New-AzStorageAccount, New-AzStorageAccountKey…}
Script     1.4.0                 Az.StorageSync                      Core,Desk {Invoke-AzStorageSyncCompatibilityCheck, New-AzStorageSyncService, Get-AzStorageSyncService, Set-AzStorageSyncService…}
Script     1.1.0                 Az.StreamAnalytics                  Core,Desk {Get-AzStreamAnalyticsFunction, Get-AzStreamAnalyticsDefaultFunctionDefinition, New-AzStreamAnalyticsFunction, Remove-AzStreamAn…
Script     1.0.0                 Az.Support                          Core,Desk {Get-AzSupportService, Get-AzSupportProblemClassification, Get-AzSupportTicket, Get-AzSupportTicketCommunication…}
Script     1.0.4                 Az.TrafficManager                   Core,Desk {Add-AzTrafficManagerCustomHeaderToEndpoint, Remove-AzTrafficManagerCustomHeaderFromEndpoint, Add-AzTrafficManagerCustomHeaderTo…
Script     2.5.0                 Az.Websites                         Core,Desk {Get-AzAppServicePlan, Set-AzAppServicePlan, New-AzAppServicePlan, Remove-AzAppServicePlan…}
Binary     2.0.2.130             AzureAD                             Desk
Script     4.10.1                Pester                              Desk      {Describe, Context, It, Should…}

Debug output

If you run the non-working and working examples above with -Debug, then diff the results, you can see how the failing example is caused by the PUT of the new app settings then PATCH of the old ones.

Here is a short snippet of the non-working call:

DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PUT

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings",
  "name": "appsettings",
  "type": "Microsoft.Web/sites/config",
  "location": "North Central US",
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PATCH

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/web?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "linuxFxVersion": "",
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "appSettings": [
      {
        "name": "MySetting",
        "value": "OriginalValue"
      }
    ],
    "connectionStrings": [],
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false
      }
    ],
    "loadBalancing": "LeastRequests",
    "experiments": {
      "rampUpRules": []
    },
    "autoHealEnabled": false,
    "vnetName": "",
    "localMySqlEnabled": false,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "ftpsState": "AllAllowed"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest",
  "name": "myappsettingstest",
  "type": "Microsoft.Web/sites",
  "location": "North Central US",
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "powerShellVersion": "",
    "linuxFxVersion": "",
    "windowsFxVersion": null,
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "azureMonitorLogCategories": null,
    "acrUseManagedIdentityCreds": false,
    "acrUserManagedIdentityID": null,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "publishingPassword": null,
    "appSettings": null,
    "azureStorageAccounts": {},
    "metadata": null,
    "connectionStrings": null,
    "machineKey": null,
    "handlerMappings": null,
    "documentRoot": null,
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "javaVersion": null,
    "javaContainer": null,
    "javaContainerVersion": null,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false,
        "virtualDirectories": null
      }
    ],
    "winAuthAdminState": 0,
    "winAuthTenantState": 0,
    "customAppPoolIdentityAdminState": false,
    "customAppPoolIdentityTenantState": false,
    "runtimeADUser": null,
    "runtimeADUserPassword": null,
    "loadBalancing": "LeastRequests",
    "routingRules": [],
    "experiments": {
      "rampUpRules": []
    },
    "limits": null,
    "autoHealEnabled": false,
    "autoHealRules": null,
    "tracingOptions": null,
    "vnetName": "",
    "vnetRouteAllEnabled": false,
    "vnetPrivatePortsCount": 0,
    "publicNetworkAccess": null,
    "siteAuthEnabled": false,
    "siteAuthSettings": {
      "enabled": null,
      "configVersion": null,
      "unauthenticatedClientAction": null,
      "tokenStoreEnabled": null,
      "allowedExternalRedirectUrls": null,
      "defaultProvider": null,
      "clientId": null,
      "clientSecret": null,
      "clientSecretSettingName": null,
      "clientSecretCertificateThumbprint": null,
      "issuer": null,
      "allowedAudiences": null,
      "additionalLoginParams": null,
      "isAadAutoProvisioned": false,
      "aadClaimsAuthorization": null,
      "googleClientId": null,
      "googleClientSecret": null,
      "googleClientSecretSettingName": null,
      "googleOAuthScopes": null,
      "facebookAppId": null,
      "facebookAppSecret": null,
      "facebookAppSecretSettingName": null,
      "facebookOAuthScopes": null,
      "gitHubClientId": null,
      "gitHubClientSecret": null,
      "gitHubClientSecretSettingName": null,
      "gitHubOAuthScopes": null,
      "twitterConsumerKey": null,
      "twitterConsumerSecret": null,
      "twitterConsumerSecretSettingName": null,
      "microsoftAccountClientId": null,
      "microsoftAccountClientSecret": null,
      "microsoftAccountClientSecretSettingName": null,
      "microsoftAccountOAuthScopes": null
    },
    "cors": null,
    "push": null,
    "apiDefinition": null,
    "apiManagementConfig": null,
    "autoSwapSlotName": null,
    "localMySqlEnabled": false,
    "managedServiceIdentityId": null,
    "xManagedServiceIdentityId": null,
    "keyVaultReferenceIdentity": null,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "scmMinTlsVersion": "1.0",
    "ftpsState": "AllAllowed",
    "preWarmedInstanceCount": 0,
    "functionAppScaleLimit": 0,
    "healthCheckPath": null,
    "fileChangeAuditEnabled": false,
    "functionsRuntimeScaleMonitoringEnabled": false,
    "websiteTimeZone": null,
    "minimumElasticInstanceCount": 0
  }
}


And here is the same section of the working call. Notice that the PATCH body is much shorter and doesn't contain the old app settings this time.

And if you compare the diff yourself, you'll see only the new app settings are used beyond this point in the logs, while the non-working logs will only show the old app settings.

DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PUT

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings",
  "name": "appsettings",
  "type": "Microsoft.Web/sites/config",
  "location": "North Central US",
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PATCH

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/web?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "numberOfWorkers": 1,
    "use32BitWorkerProcess": true,
    "minTlsVersion": "1.2",
    "ftpsState": "AllAllowed"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest",
  "name": "myappsettingstest",
  "type": "Microsoft.Web/sites",
  "location": "North Central US",
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "powerShellVersion": "",
    "linuxFxVersion": "",
    "windowsFxVersion": null,
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "azureMonitorLogCategories": null,
    "acrUseManagedIdentityCreds": false,
    "acrUserManagedIdentityID": null,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "publishingPassword": null,
    "appSettings": null,
    "azureStorageAccounts": {},
    "metadata": null,
    "connectionStrings": null,
    "machineKey": null,
    "handlerMappings": null,
    "documentRoot": null,
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "javaVersion": null,
    "javaContainer": null,
    "javaContainerVersion": null,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false,
        "virtualDirectories": null
      }
    ],
    "winAuthAdminState": 0,
    "winAuthTenantState": 0,
    "customAppPoolIdentityAdminState": false,
    "customAppPoolIdentityTenantState": false,
    "runtimeADUser": null,
    "runtimeADUserPassword": null,
    "loadBalancing": "LeastRequests",
    "routingRules": [],
    "experiments": {
      "rampUpRules": []
    },
    "limits": null,
    "autoHealEnabled": false,
    "autoHealRules": null,
    "tracingOptions": null,
    "vnetName": "",
    "vnetRouteAllEnabled": false,
    "vnetPrivatePortsCount": 0,
    "publicNetworkAccess": null,
    "siteAuthEnabled": false,
    "siteAuthSettings": {
      "enabled": null,
      "configVersion": null,
      "unauthenticatedClientAction": null,
      "tokenStoreEnabled": null,
      "allowedExternalRedirectUrls": null,
      "defaultProvider": null,
      "clientId": null,
      "clientSecret": null,
      "clientSecretSettingName": null,
      "clientSecretCertificateThumbprint": null,
      "issuer": null,
      "allowedAudiences": null,
      "additionalLoginParams": null,
      "isAadAutoProvisioned": false,
      "aadClaimsAuthorization": null,
      "googleClientId": null,
      "googleClientSecret": null,
      "googleClientSecretSettingName": null,
      "googleOAuthScopes": null,
      "facebookAppId": null,
      "facebookAppSecret": null,
      "facebookAppSecretSettingName": null,
      "facebookOAuthScopes": null,
      "gitHubClientId": null,
      "gitHubClientSecret": null,
      "gitHubClientSecretSettingName": null,
      "gitHubOAuthScopes": null,
      "twitterConsumerKey": null,
      "twitterConsumerSecret": null,
      "twitterConsumerSecretSettingName": null,
      "microsoftAccountClientId": null,
      "microsoftAccountClientSecret": null,
      "microsoftAccountClientSecretSettingName": null,
      "microsoftAccountOAuthScopes": null
    },
    "cors": null,
    "push": null,
    "apiDefinition": null,
    "apiManagementConfig": null,
    "autoSwapSlotName": null,
    "localMySqlEnabled": false,
    "managedServiceIdentityId": null,
    "xManagedServiceIdentityId": null,
    "keyVaultReferenceIdentity": null,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "scmMinTlsVersion": "1.0",
    "ftpsState": "AllAllowed",
    "preWarmedInstanceCount": 0,
    "functionAppScaleLimit": 0,
    "healthCheckPath": null,
    "fileChangeAuditEnabled": false,
    "functionsRuntimeScaleMonitoringEnabled": false,
    "websiteTimeZone": null,
    "minimumElasticInstanceCount": 0
  }
}

Error output

N/A

@elhutchi elhutchi added the needs-triage This is a new issue that needs to be triaged to the appropriate team. label May 14, 2021
@ghost ghost added question The issue doesn't require a change to the product in order to be resolved. Most issues start as that customer-reported labels May 14, 2021
@Kotasudhakarreddy Kotasudhakarreddy changed the title Set-AzWebApp is not honoring -AppSettings WebApp:Set-AzWebApp is not honoring -AppSettings May 15, 2021
@Kotasudhakarreddy Kotasudhakarreddy self-assigned this May 15, 2021
@Kotasudhakarreddy
Copy link
Contributor

@elhutchi Thanks for your feedback! i am able to repro this issue. We will fix this in the coming releases.

@dingmeng-xue dingmeng-xue added App Services aka WebSites Service Attention This issue is responsible by Azure service team. labels May 16, 2021
@ghost ghost removed the needs-triage This is a new issue that needs to be triaged to the appropriate team. label May 16, 2021
@ghost
Copy link

ghost commented May 16, 2021

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @antcp, @AzureAppServiceCLI.

Issue Details

Description

Within the last few days, when calling Set-AzWebApp to only change app settings, the old values stay in place rather than being updated with the value provided for -AppSettings.

This is because if no SiteConfig properties are passed in (see here), the existing SiteConfig object is loaded and PATCHed after the App Settings are PUT (see here).

Steps to reproduce

This doesn't update the App Settings:

PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting OriginalValue

PS ~>$webapp = $webapp | Set-AzWebApp -ResourceGroupName $ResourceGroupName -AppSettings @{"MySetting"="UpdatedValue"}
PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting OriginalValue

However this does update the App Settings, because we're setting another SiteConfig property (-Use32BitWorkerProcess).

PS ~>$webapp = $webapp | Set-AzWebApp -ResourceGroupName $ResourceGroupName -AppSettings @{"MySetting"="UpdatedValue"} -Use32BitWorkerProcess $true
PS ~>$webapp.SiteConfig.AppSettings

Name      Value
----      -----
MySetting UpdatedValue

Environment data

Name                           Value
----                           -----
PSVersion                      7.1.3
PSEdition                      Core
GitCommitId                    7.1.3
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Module versions

ModuleType Version    PreRelease Name                                PSEdition ExportedCommands
---------- -------    ---------- ----                                --------- ----------------
Script     5.9.0                 Az                                  Core,Desk
Script     2.2.8                 Az.Accounts                         Core,Desk {Disable-AzDataCollection, Disable-AzContextAutosave, Enable-AzDataCollection, Enable-AzContextAutosave…}
Script     1.1.1                 Az.Advisor                          Core,Desk {Get-AzAdvisorRecommendation, Enable-AzAdvisorRecommendation, Disable-AzAdvisorRecommendation, Get-AzAdvisorConfiguration…}
Script     2.1.0                 Az.Aks                              Core,Desk {Get-AzAksCluster, New-AzAksCluster, Remove-AzAksCluster, Import-AzAksCredential…}
Script     1.1.4                 Az.AnalysisServices                 Core,Desk {Resume-AzAnalysisServicesServer, Suspend-AzAnalysisServicesServer, Get-AzAnalysisServicesServer, Remove-AzAnalysisServicesServe…
Script     2.2.0                 Az.ApiManagement                    Core,Desk {Add-AzApiManagementApiToGateway, Add-AzApiManagementApiToProduct, Add-AzApiManagementProductToGroup, Add-AzApiManagementRegion…}
Script     1.0.0                 Az.AppConfiguration                 Core,Desk {Get-AzAppConfigurationStore, Get-AzAppConfigurationStoreKey, New-AzAppConfigurationStore, New-AzAppConfigurationStoreKey…}
Script     1.1.0                 Az.ApplicationInsights              Core,Desk {Get-AzApplicationInsights, New-AzApplicationInsights, Remove-AzApplicationInsights, Update-AzApplicationInsights…}
Script     1.7.0                 Az.Automation                       Core,Desk {Get-AzAutomationHybridWorkerGroup, Remove-AzAutomationHybridWorkerGroup, Get-AzAutomationJobOutputRecord, Import-AzAutomationDs…
Script     3.1.0                 Az.Batch                            Core,Desk {Remove-AzBatchAccount, Get-AzBatchAccount, Get-AzBatchAccountKey, New-AzBatchAccount…}
Script     2.0.0                 Az.Billing                          Core,Desk {Get-AzBillingInvoice, Get-AzBillingPeriod, Get-AzEnrollmentAccount, Get-AzConsumptionBudget…}
Script     1.7.0                 Az.Cdn                              Core,Desk {Get-AzCdnProfile, Get-AzCdnProfileSsoUrl, New-AzCdnProfile, Remove-AzCdnProfile…}
Script     1.8.0                 Az.CognitiveServices                Core,Desk {Get-AzCognitiveServicesAccount, Get-AzCognitiveServicesAccountKey, Get-AzCognitiveServicesAccountSku, Get-AzCognitiveServicesAc…
Script     4.12.0                Az.Compute                          Core,Desk {Remove-AzAvailabilitySet, Get-AzAvailabilitySet, New-AzAvailabilitySet, Update-AzAvailabilitySet…}
Script     1.0.3                 Az.ContainerInstance                Core,Desk {New-AzContainerGroup, Get-AzContainerGroup, Remove-AzContainerGroup, Get-AzContainerInstanceLog}
Script     2.2.2                 Az.ContainerRegistry                Core,Desk {New-AzContainerRegistry, Get-AzContainerRegistry, Update-AzContainerRegistry, Remove-AzContainerRegistry…}
Script     1.1.0                 Az.CosmosDB                         Core,Desk {Get-AzCosmosDBSqlContainer, Get-AzCosmosDBSqlContainerThroughput, Get-AzCosmosDBSqlDatabase, Get-AzCosmosDBSqlDatabaseThroughpu…
Script     1.1.0                 Az.DataBoxEdge                      Core,Desk {Get-AzDataBoxEdgeJob, Get-AzDataBoxEdgeDevice, Invoke-AzDataBoxEdgeDevice, New-AzDataBoxEdgeDevice…}
Script     1.1.0                 Az.Databricks                       Core,Desk {Get-AzDatabricksVNetPeering, Get-AzDatabricksWorkspace, New-AzDatabricksVNetPeering, New-AzDatabricksWorkspace…}
Script     1.12.0                Az.DataFactory                      Core,Desk {Set-AzDataFactoryV2, Update-AzDataFactoryV2, Get-AzDataFactoryV2, Remove-AzDataFactoryV2…}
Script     1.0.2                 Az.DataLakeAnalytics                Core,Desk {Get-AzDataLakeAnalyticsDataSource, New-AzDataLakeAnalyticsCatalogCredential, Remove-AzDataLakeAnalyticsCatalogCredential, Set-A…
Script     1.3.0                 Az.DataLakeStore                    Core,Desk {Get-AzDataLakeStoreTrustedIdProvider, Remove-AzDataLakeStoreTrustedIdProvider, Remove-AzDataLakeStoreFirewallRule, Set-AzDataLa…
Script     1.0.0                 Az.DataShare                        Core,Desk {New-AzDataShareAccount, Get-AzDataShareAccount, Remove-AzDataShareAccount, New-AzDataShare…}
Script     1.1.0                 Az.DeploymentManager                Core,Desk {Get-AzDeploymentManagerArtifactSource, New-AzDeploymentManagerArtifactSource, Set-AzDeploymentManagerArtifactSource, Remove-AzD…
Script     2.1.1                 Az.DesktopVirtualization            Core,Desk {Disconnect-AzWvdUserSession, Expand-AzWvdMsixImage, Get-AzWvdApplication, Get-AzWvdApplicationGroup…}
Script     1.0.2                 Az.DevTestLabs                      Core,Desk {Get-AzDtlAllowedVMSizesPolicy, Get-AzDtlAutoShutdownPolicy, Get-AzDtlAutoStartPolicy, Get-AzDtlVMsPerLabPolicy…}
Script     1.1.2                 Az.Dns                              Core,Desk {Get-AzDnsRecordSet, New-AzDnsRecordConfig, Remove-AzDnsRecordSet, Set-AzDnsRecordSet…}
Script     1.3.0                 Az.EventGrid                        Core,Desk {New-AzEventGridTopic, Get-AzEventGridTopic, Set-AzEventGridTopic, New-AzEventGridTopicKey…}
Script     1.7.2                 Az.EventHub                         Core,Desk {New-AzEventHubNamespace, Get-AzEventHubNamespace, Set-AzEventHubNamespace, Remove-AzEventHubNamespace…}
Script     1.8.0                 Az.FrontDoor                        Core,Desk {New-AzFrontDoor, Get-AzFrontDoor, Set-AzFrontDoor, Remove-AzFrontDoor…}
Script     2.0.0                 Az.Functions                        Core,Desk {Get-AzFunctionApp, Get-AzFunctionAppAvailableLocation, Get-AzFunctionAppPlan, Get-AzFunctionAppSetting…}
Script     4.2.1                 Az.HDInsight                        Core,Desk {Get-AzHDInsightJob, New-AzHDInsightSqoopJobDefinition, Wait-AzHDInsightJob, New-AzHDInsightStreamingMapReduceJobDefinition…}
Script     1.3.1                 Az.HealthcareApis                   Core,Desk {New-AzHealthcareApisService, Remove-AzHealthcareApisService, Set-AzHealthcareApisService, Get-AzHealthcareApisService}
Script     2.7.3                 Az.IotHub                           Core,Desk {Add-AzIotHubKey, Get-AzIotHubEventHubConsumerGroup, Get-AzIotHubConnectionString, Get-AzIotHubJob…}
Script     3.4.3                 Az.KeyVault                         Core,Desk {Add-AzKeyVaultCertificate, Update-AzKeyVaultCertificate, Stop-AzKeyVaultCertificateOperation, Get-AzKeyVaultCertificateOperatio…
Script     1.0.1                 Az.Kusto                            Core,Desk {Add-AzKustoClusterLanguageExtension, Add-AzKustoDatabasePrincipal, Get-AzKustoAttachedDatabaseConfiguration, Get-AzKustoCluster…
Script     1.5.0                 Az.LogicApp                         Core,Desk {Get-AzIntegrationAccountAgreement, Get-AzIntegrationAccountAssembly, Get-AzIntegrationAccountBatchConfiguration, Get-AzIntegrat…
Script     1.1.3                 Az.MachineLearning                  Core,Desk {Move-AzMlCommitmentAssociation, Get-AzMlCommitmentAssociation, Get-AzMlCommitmentPlanUsageHistory, Remove-AzMlCommitmentPlan…}
Script     1.1.0                 Az.Maintenance                      Core,Desk {Get-AzApplyUpdate, Get-AzConfigurationAssignment, Get-AzMaintenanceConfiguration, Get-AzMaintenanceUpdate…}
Script     2.0.0                 Az.ManagedServices                  Core,Desk {Get-AzManagedServicesAssignment, New-AzManagedServicesAssignment, Remove-AzManagedServicesAssignment, Get-AzManagedServicesDefi…
Script     1.0.2                 Az.MarketplaceOrdering              Core,Desk {Get-AzMarketplaceTerms, Set-AzMarketplaceTerms}
Script     1.1.1                 Az.Media                            Core,Desk {Sync-AzMediaServiceStorageKey, Set-AzMediaServiceKey, Get-AzMediaServiceKey, Get-AzMediaServiceNameAvailability…}
Script     1.0.1                 Az.Migrate                          Core,Desk {Get-AzMigrateDiscoveredServer, Get-AzMigrateJob, Get-AzMigrateProject, Get-AzMigrateReplicationFabric…}
Script     2.5.0                 Az.Monitor                          Core,Desk {Get-AzMetricDefinition, Get-AzMetric, Remove-AzLogProfile, Get-AzLogProfile…}
Script     4.7.0                 Az.Network                          Core,Desk {Add-AzApplicationGatewayAuthenticationCertificate, Get-AzApplicationGatewayAuthenticationCertificate, New-AzApplicationGatewayA…
Script     1.1.1                 Az.NotificationHubs                 Core,Desk {Get-AzNotificationHub, Get-AzNotificationHubAuthorizationRule, Get-AzNotificationHubListKey, Get-AzNotificationHubPNSCredential…
Script     2.3.0                 Az.OperationalInsights              Core,Desk {New-AzOperationalInsightsAzureActivityLogDataSource, New-AzOperationalInsightsCustomLogDataSource, Disable-AzOperationalInsight…
Script     1.4.1                 Az.PolicyInsights                   Core,Desk {Get-AzPolicyEvent, Get-AzPolicyState, Get-AzPolicyStateSummary, Get-AzPolicyRemediation…}
Script     1.1.2                 Az.PowerBIEmbedded                  Core,Desk {Remove-AzPowerBIWorkspaceCollection, Get-AzPowerBIWorkspaceCollection, Get-AzPowerBIWorkspaceCollectionAccessKey, Get-AzPowerBI…
Script     1.0.3                 Az.PrivateDns                       Core,Desk {Get-AzPrivateDnsZone, Remove-AzPrivateDnsZone, Set-AzPrivateDnsZone, New-AzPrivateDnsZone…}
Script     3.6.0                 Az.RecoveryServices                 Core,Desk {Get-AzRecoveryServicesBackupProperty, Get-AzRecoveryServicesVault, Get-AzRecoveryServicesVaultSettingsFile, New-AzRecoveryServi…
Script     1.4.0                 Az.RedisCache                       Core,Desk {Remove-AzRedisCachePatchSchedule, New-AzRedisCacheScheduleEntry, Get-AzRedisCachePatchSchedule, New-AzRedisCachePatchSchedule…}
Script     1.0.0                 Az.RedisEnterpriseCache             Core,Desk {Export-AzRedisEnterpriseCache, Get-AzRedisEnterpriseCache, Get-AzRedisEnterpriseCacheDatabase, Get-AzRedisEnterpriseCacheKey…}
Script     1.0.3                 Az.Relay                            Core,Desk {New-AzRelayNamespace, Get-AzRelayNamespace, Set-AzRelayNamespace, Remove-AzRelayNamespace…}
Script     1.0.0                 Az.ResourceMover                    Core,Desk {Add-AzResourceMoverMoveResource, Get-AzResourceMoverMoveCollection, Get-AzResourceMoverMoveResource, Get-AzResourceMoverRequire…
Script     3.5.0                 Az.Resources                        Core,Desk {Get-AzProviderOperation, Remove-AzRoleAssignment, Get-AzRoleAssignment, New-AzRoleAssignment…}
Script     1.5.0                 Az.ServiceBus                       Core,Desk {New-AzServiceBusNamespace, Get-AzServiceBusNamespace, Set-AzServiceBusNamespace, Remove-AzServiceBusNamespace…}
Script     2.4.0                 Az.ServiceFabric                    Core,Desk {Add-AzServiceFabricClientCertificate, Add-AzServiceFabricClusterCertificate, Add-AzServiceFabricNode, Add-AzServiceFabricNodeTy…
Script     1.2.0                 Az.SignalR                          Core,Desk {New-AzSignalR, Get-AzSignalR, Get-AzSignalRKey, New-AzSignalRKey…}
Script     2.17.1                Az.Sql                              Core,Desk {Get-AzSqlDatabaseTransparentDataEncryption, Get-AzSqlDatabaseTransparentDataEncryptionActivity, Set-AzSqlDatabaseTransparentDat…
Script     1.1.0                 Az.SqlVirtualMachine                Core,Desk {New-AzSqlVM, Get-AzSqlVM, Update-AzSqlVM, Remove-AzSqlVM…}
Script     3.6.0                 Az.Storage                          Core,Desk {Get-AzStorageAccount, Get-AzStorageAccountKey, New-AzStorageAccount, New-AzStorageAccountKey…}
Script     1.4.0                 Az.StorageSync                      Core,Desk {Invoke-AzStorageSyncCompatibilityCheck, New-AzStorageSyncService, Get-AzStorageSyncService, Set-AzStorageSyncService…}
Script     1.1.0                 Az.StreamAnalytics                  Core,Desk {Get-AzStreamAnalyticsFunction, Get-AzStreamAnalyticsDefaultFunctionDefinition, New-AzStreamAnalyticsFunction, Remove-AzStreamAn…
Script     1.0.0                 Az.Support                          Core,Desk {Get-AzSupportService, Get-AzSupportProblemClassification, Get-AzSupportTicket, Get-AzSupportTicketCommunication…}
Script     1.0.4                 Az.TrafficManager                   Core,Desk {Add-AzTrafficManagerCustomHeaderToEndpoint, Remove-AzTrafficManagerCustomHeaderFromEndpoint, Add-AzTrafficManagerCustomHeaderTo…
Script     2.5.0                 Az.Websites                         Core,Desk {Get-AzAppServicePlan, Set-AzAppServicePlan, New-AzAppServicePlan, Remove-AzAppServicePlan…}
Binary     2.0.2.130             AzureAD                             Desk
Script     4.10.1                Pester                              Desk      {Describe, Context, It, Should…}

Debug output

If you run the non-working and working examples above with -Debug, then diff the results, you can see how the failing example is caused by the PUT of the new app settings then PATCH of the old ones.

Here is a short snippet of the non-working call:

DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PUT

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings",
  "name": "appsettings",
  "type": "Microsoft.Web/sites/config",
  "location": "North Central US",
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PATCH

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/web?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "linuxFxVersion": "",
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "appSettings": [
      {
        "name": "MySetting",
        "value": "OriginalValue"
      }
    ],
    "connectionStrings": [],
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false
      }
    ],
    "loadBalancing": "LeastRequests",
    "experiments": {
      "rampUpRules": []
    },
    "autoHealEnabled": false,
    "vnetName": "",
    "localMySqlEnabled": false,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "ftpsState": "AllAllowed"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest",
  "name": "myappsettingstest",
  "type": "Microsoft.Web/sites",
  "location": "North Central US",
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "powerShellVersion": "",
    "linuxFxVersion": "",
    "windowsFxVersion": null,
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "azureMonitorLogCategories": null,
    "acrUseManagedIdentityCreds": false,
    "acrUserManagedIdentityID": null,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "publishingPassword": null,
    "appSettings": null,
    "azureStorageAccounts": {},
    "metadata": null,
    "connectionStrings": null,
    "machineKey": null,
    "handlerMappings": null,
    "documentRoot": null,
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "javaVersion": null,
    "javaContainer": null,
    "javaContainerVersion": null,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false,
        "virtualDirectories": null
      }
    ],
    "winAuthAdminState": 0,
    "winAuthTenantState": 0,
    "customAppPoolIdentityAdminState": false,
    "customAppPoolIdentityTenantState": false,
    "runtimeADUser": null,
    "runtimeADUserPassword": null,
    "loadBalancing": "LeastRequests",
    "routingRules": [],
    "experiments": {
      "rampUpRules": []
    },
    "limits": null,
    "autoHealEnabled": false,
    "autoHealRules": null,
    "tracingOptions": null,
    "vnetName": "",
    "vnetRouteAllEnabled": false,
    "vnetPrivatePortsCount": 0,
    "publicNetworkAccess": null,
    "siteAuthEnabled": false,
    "siteAuthSettings": {
      "enabled": null,
      "configVersion": null,
      "unauthenticatedClientAction": null,
      "tokenStoreEnabled": null,
      "allowedExternalRedirectUrls": null,
      "defaultProvider": null,
      "clientId": null,
      "clientSecret": null,
      "clientSecretSettingName": null,
      "clientSecretCertificateThumbprint": null,
      "issuer": null,
      "allowedAudiences": null,
      "additionalLoginParams": null,
      "isAadAutoProvisioned": false,
      "aadClaimsAuthorization": null,
      "googleClientId": null,
      "googleClientSecret": null,
      "googleClientSecretSettingName": null,
      "googleOAuthScopes": null,
      "facebookAppId": null,
      "facebookAppSecret": null,
      "facebookAppSecretSettingName": null,
      "facebookOAuthScopes": null,
      "gitHubClientId": null,
      "gitHubClientSecret": null,
      "gitHubClientSecretSettingName": null,
      "gitHubOAuthScopes": null,
      "twitterConsumerKey": null,
      "twitterConsumerSecret": null,
      "twitterConsumerSecretSettingName": null,
      "microsoftAccountClientId": null,
      "microsoftAccountClientSecret": null,
      "microsoftAccountClientSecretSettingName": null,
      "microsoftAccountOAuthScopes": null
    },
    "cors": null,
    "push": null,
    "apiDefinition": null,
    "apiManagementConfig": null,
    "autoSwapSlotName": null,
    "localMySqlEnabled": false,
    "managedServiceIdentityId": null,
    "xManagedServiceIdentityId": null,
    "keyVaultReferenceIdentity": null,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "scmMinTlsVersion": "1.0",
    "ftpsState": "AllAllowed",
    "preWarmedInstanceCount": 0,
    "functionAppScaleLimit": 0,
    "healthCheckPath": null,
    "fileChangeAuditEnabled": false,
    "functionsRuntimeScaleMonitoringEnabled": false,
    "websiteTimeZone": null,
    "minimumElasticInstanceCount": 0
  }
}


And here is the same section of the working call. Notice that the PATCH body is much shorter and doesn't contain the old app settings this time.

And if you compare the diff yourself, you'll see only the new app settings are used beyond this point in the logs, while the non-working logs will only show the old app settings.

DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PUT

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/appsettings",
  "name": "appsettings",
  "type": "Microsoft.Web/sites/config",
  "location": "North Central US",
  "properties": {
    "MySetting": "UpdatedValue"
  }
}


DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
PATCH

Absolute Uri:
https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest/config/web?api-version=2020-06-01

Headers:
...

Body:
{
  "properties": {
    "numberOfWorkers": 1,
    "use32BitWorkerProcess": true,
    "minTlsVersion": "1.2",
    "ftpsState": "AllAllowed"
  }
}


DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
...

Body:
{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RG-AppSettingsTest/providers/Microsoft.Web/sites/myappsettingstest",
  "name": "myappsettingstest",
  "type": "Microsoft.Web/sites",
  "location": "North Central US",
  "properties": {
    "numberOfWorkers": 1,
    "defaultDocuments": [
      "Default.htm",
      "Default.html",
      "Default.asp",
      "index.htm",
      "index.html",
      "iisstart.htm",
      "default.aspx",
      "index.php",
      "hostingstart.html"
    ],
    "netFrameworkVersion": "v4.0",
    "phpVersion": "5.6",
    "pythonVersion": "",
    "nodeVersion": "",
    "powerShellVersion": "",
    "linuxFxVersion": "",
    "windowsFxVersion": null,
    "requestTracingEnabled": false,
    "remoteDebuggingEnabled": false,
    "remoteDebuggingVersion": "VS2019",
    "httpLoggingEnabled": false,
    "azureMonitorLogCategories": null,
    "acrUseManagedIdentityCreds": false,
    "acrUserManagedIdentityID": null,
    "logsDirectorySizeLimit": 35,
    "detailedErrorLoggingEnabled": false,
    "publishingUsername": "$myappsettingstest",
    "publishingPassword": null,
    "appSettings": null,
    "azureStorageAccounts": {},
    "metadata": null,
    "connectionStrings": null,
    "machineKey": null,
    "handlerMappings": null,
    "documentRoot": null,
    "scmType": "None",
    "use32BitWorkerProcess": true,
    "webSocketsEnabled": false,
    "alwaysOn": false,
    "javaVersion": null,
    "javaContainer": null,
    "javaContainerVersion": null,
    "appCommandLine": "",
    "managedPipelineMode": "Integrated",
    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": false,
        "virtualDirectories": null
      }
    ],
    "winAuthAdminState": 0,
    "winAuthTenantState": 0,
    "customAppPoolIdentityAdminState": false,
    "customAppPoolIdentityTenantState": false,
    "runtimeADUser": null,
    "runtimeADUserPassword": null,
    "loadBalancing": "LeastRequests",
    "routingRules": [],
    "experiments": {
      "rampUpRules": []
    },
    "limits": null,
    "autoHealEnabled": false,
    "autoHealRules": null,
    "tracingOptions": null,
    "vnetName": "",
    "vnetRouteAllEnabled": false,
    "vnetPrivatePortsCount": 0,
    "publicNetworkAccess": null,
    "siteAuthEnabled": false,
    "siteAuthSettings": {
      "enabled": null,
      "configVersion": null,
      "unauthenticatedClientAction": null,
      "tokenStoreEnabled": null,
      "allowedExternalRedirectUrls": null,
      "defaultProvider": null,
      "clientId": null,
      "clientSecret": null,
      "clientSecretSettingName": null,
      "clientSecretCertificateThumbprint": null,
      "issuer": null,
      "allowedAudiences": null,
      "additionalLoginParams": null,
      "isAadAutoProvisioned": false,
      "aadClaimsAuthorization": null,
      "googleClientId": null,
      "googleClientSecret": null,
      "googleClientSecretSettingName": null,
      "googleOAuthScopes": null,
      "facebookAppId": null,
      "facebookAppSecret": null,
      "facebookAppSecretSettingName": null,
      "facebookOAuthScopes": null,
      "gitHubClientId": null,
      "gitHubClientSecret": null,
      "gitHubClientSecretSettingName": null,
      "gitHubOAuthScopes": null,
      "twitterConsumerKey": null,
      "twitterConsumerSecret": null,
      "twitterConsumerSecretSettingName": null,
      "microsoftAccountClientId": null,
      "microsoftAccountClientSecret": null,
      "microsoftAccountClientSecretSettingName": null,
      "microsoftAccountOAuthScopes": null
    },
    "cors": null,
    "push": null,
    "apiDefinition": null,
    "apiManagementConfig": null,
    "autoSwapSlotName": null,
    "localMySqlEnabled": false,
    "managedServiceIdentityId": null,
    "xManagedServiceIdentityId": null,
    "keyVaultReferenceIdentity": null,
    "ipSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictions": [
      {
        "ipAddress": "Any",
        "action": "Allow",
        "priority": 1,
        "name": "Allow all",
        "description": "Allow all access"
      }
    ],
    "scmIpSecurityRestrictionsUseMain": false,
    "http20Enabled": false,
    "minTlsVersion": "1.2",
    "scmMinTlsVersion": "1.0",
    "ftpsState": "AllAllowed",
    "preWarmedInstanceCount": 0,
    "functionAppScaleLimit": 0,
    "healthCheckPath": null,
    "fileChangeAuditEnabled": false,
    "functionsRuntimeScaleMonitoringEnabled": false,
    "websiteTimeZone": null,
    "minimumElasticInstanceCount": 0
  }
}

Error output

N/A

Author: elhutchi
Assignees: Kotasudhakarreddy
Labels:

App Services, Service Attention, customer-reported, needs-triage, question

Milestone: -

@TheoroiMS
Copy link

Hi @Kotasudhakarreddy . Not sure if you are aware of. The same issue also happen for Set-AzWebAppSlot.

@MaxChal
Copy link

MaxChal commented May 18, 2021

Hi @Kotasudhakarreddy, we are having a similar issue. We are using Set-AzWebAppSlot and the config temporarily updates whilst the command is running, but then all changes disappears once the command is complete.

No errors in the log and the Powershell command completes successfully.

@Kotasudhakarreddy
Copy link
Contributor

Yes Set-AzWebAppSlot also has been take care in the given fix.

@leshy84
Copy link

leshy84 commented May 18, 2021

Hello, we also bumped into the problem a couple of days ago, but I do not remember that we updated the powershell modules last weeks.
Is anything changed in Azure the last week?

@panchagnula
Copy link
Contributor

Yes Set-AzWebAppSlot also has been take care in the given fix.

@Kotasudhakarreddy is this a regression? Do we know what regressed this? Do we have a test to catch such regressions in future?

@Kotasudhakarreddy
Copy link
Contributor

Yes Set-AzWebAppSlot also has been take care in the given fix.

@Kotasudhakarreddy is this a regression? Do we know what regressed this? Do we have a test to catch such regressions in future?
Yes it is a regression from this fix. Checking with PR owner on the same.

wyunchi-ms added a commit that referenced this issue May 18, 2021
#15011)

* Fixes: #14884: `Set-AzWebAppSlot` to set FtpsState, #14998:`Set-AzWebApp` to set the AppSettings, #15005: `Set-AzAppServicePlan` to keep existing Tags when adding new Tags

* Build issue fixed

* Update ChangeLog.md

* Build fix

Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>
@vivere-dally
Copy link

I can also reproduce this. I was wondering why it isn't working. Nothing has changed on my side, I guess the Cloud Api got updated or something. Please look into this since all deployments are failing with the lack of this feature. I have to manually add the app settings to have a working environment.

@LukeDearden
Copy link

Set-AzWebApp impacting us here. New deployments being created without AppSettings.

As a workaround I found PowerShell 5 and Set-AzureRmWebApp still works.

Is there any ETA on the next release?

@LukeDearden
Copy link

Also as per #15038 (comment) you can work around by adding -HttpLoggingEnabled $true

wyunchi-ms added a commit that referenced this issue May 19, 2021
#15011)

* Fixes: #14884: `Set-AzWebAppSlot` to set FtpsState, #14998:`Set-AzWebApp` to set the AppSettings, #15005: `Set-AzAppServicePlan` to keep existing Tags when adding new Tags

* Build issue fixed

* Update ChangeLog.md

* Build fix

Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>
@AWahlqvist
Copy link

AWahlqvist commented May 19, 2021

Also eagerly awaiting a fix for this.

We also discovered another issue with this cmdlet today though, it seems to unintentionally disable AlwaysOn even if that parameter is not specified. For example:
Set-AzWebAppSlot -FtpsState FtpsOnly -ResourceGroupName my-rg -Name my-web -Slot slot

Will set AlwaysOn to Off when ran on a few of our subscriptions. It doesn't seem to be completely consistent but I can reproduce the error easily on the affected web apps.

Will a fix for that be part of this one or should I open a separate issue for it?

@panchagnula
Copy link
Contributor

Also eagerly awaiting a fix for this.

We also discovered another issue with this cmdlet today though, it seems to unintentionally disable AlwaysOn even if that parameter is not specified. For example:
Set-AzWebAppSlot -FtpsState FtpsOnly -ResourceGroupName my-rg -Name my-web -Slot slot

Will set AlwaysOn to Off when ran on a few of our subscriptions. It doesn't seem to be completely consistent but I can reproduce the error easily on the affected web apps.

Will a fix for that be part of this one or should I open a separate issue for it?

Yes please file a separate issue so we can track it.

wyunchi-ms added a commit that referenced this issue May 20, 2021
#15011) (#15055)

* Fixes: #14884: `Set-AzWebAppSlot` to set FtpsState, #14998:`Set-AzWebApp` to set the AppSettings, #15005: `Set-AzAppServicePlan` to keep existing Tags when adding new Tags

* Build issue fixed

* Update ChangeLog.md

* Build fix

Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

Co-authored-by: Kota Sudhakar Reddy <60102891+Kotasudhakarreddy@users.noreply.github.com>
@AWahlqvist
Copy link

Done, see issue #15066. Thanks!

@lerlacher-haylix
Copy link

lerlacher-haylix commented May 20, 2021

Can we get any clarification as to why this got broken a few days ago without any change on the client (Azure Powershell / Az.Website) side, has there been a change to the validation or processing logic on the server (Azure Webapp API) side?

If yes, this is a serious problem going beyond the site config update logic: Either the client (Azure Powershell) does not properly specify the API version when making the API call, or the server (Azure Webapp API) has improperly changed the behavior of a versioned API call. Glancing at the Debug logs in OP, it looks like both API calls are specifying ?api-version=2020-06-01 so that suggests the latter 🤯

@panchagnula
Copy link
Contributor

Can we get any clarification as to why this got broken a few days ago without any change on the client (Azure Powershell / Az.Website) side, has there been a change to the validation or processing logic on the server (Azure Webapp API) side?

If yes, this is a serious problem going beyond the site config update logic: Either the client (Azure Powershell) does not properly specify the API version when making the API call, or the server (Azure Webapp API) has improperly changed the behavior of a versioned API call. Glancing at the Debug logs in OP, it looks like both API calls are specifying ?api-version=2020-06-01 so that suggests the latter 🤯

This was a regression from a PS command change - #12107 the reason we believe most customers are setting this now because new PowerShell version with this fix is now being used. This was a definite miss on our end & we have ensured to add better testing on our end to not repeat the. Hope this helps.

@lerlacher-haylix
Copy link

lerlacher-haylix commented May 21, 2021

Hi @panchagnula, thank you for your response. How can I identify whether I am using an affected version? I am using powershell on Ubuntu 18.04 and I have not recently updated powershell or any modules.

Here are the module versions I am using:

PS /> Get-Module                                                                                                                                                                                                                                                                                                                                                                                                                                        ModuleType Version    PreRelease Name                                ExportedCommands                                                                                                                                                                                          ---------- -------    ---------- ----                                ----------------
Script     1.9.4                 Az.Accounts                         {Add-AzEnvironment, Clear-AzContext, Clear-AzDefault, Connect-AzAccount…}
Script     1.11.0                Az.Websites                         {Add-AzWebAppAccessRestrictionRule, Add-AzWebAppTrafficRouting, Edit-AzWebAppBackupConfiguration, Enter-AzWebAppContainerPSSession…}
Manifest   7.0.0.0               Microsoft.PowerShell.Management     {Add-Content, Clear-Content, Clear-Item, Clear-ItemProperty…}
Manifest   7.0.0.0               Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object…}
Script     2.1.0                 PSReadLine                          {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PSReadLineKeyHandler, Set-PSReadLineKeyHandler…}

PS /> Get-Module Az

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     4.7.0                 Az

This is the powershell version I am using:

root@ubu:~# apt show powershell
Package: powershell
Version: 7.1.3-1.ubuntu.18.04
Priority: extra
Section: shells
Maintainer: PowerShell Team <PowerShellTeam@hotmail.com>
Installed-Size: 178 MB
Depends: libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, zlib1g, libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52, libssl1.1|libssl1.0.2|libssl1.0.0
Homepage: https://microsoft.com/powershell
License: MIT License
Vendor: Microsoft Corporation
Download-Size: 68.3 MB
APT-Manual-Installed: yes
APT-Sources: https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 Packages
Description: PowerShell is an automation and configuration management platform.
 It consists of a cross-platform command-line shell and associated scripting language.

@panchagnula
Copy link
Contributor

Hi @panchagnula, thank you for your response. How can I identify whether I am using an affected version? I am using powershell on Ubuntu 18.04 and I have not recently updated powershell or any modules.

Here are the module versions I am using:

PS /> Get-Module                                                                                                                                                                                                                                                                                                                                                                                                                                        ModuleType Version    PreRelease Name                                ExportedCommands                                                                                                                                                                                          ---------- -------    ---------- ----                                ----------------
Script     1.9.4                 Az.Accounts                         {Add-AzEnvironment, Clear-AzContext, Clear-AzDefault, Connect-AzAccount…}
Script     1.11.0                Az.Websites                         {Add-AzWebAppAccessRestrictionRule, Add-AzWebAppTrafficRouting, Edit-AzWebAppBackupConfiguration, Enter-AzWebAppContainerPSSession…}
Manifest   7.0.0.0               Microsoft.PowerShell.Management     {Add-Content, Clear-Content, Clear-Item, Clear-ItemProperty…}
Manifest   7.0.0.0               Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object…}
Script     2.1.0                 PSReadLine                          {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PSReadLineKeyHandler, Set-PSReadLineKeyHandler…}

PS /> Get-Module Az

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     4.7.0                 Az

This is the powershell version I am using:

root@ubu:~# apt show powershell
Package: powershell
Version: 7.1.3-1.ubuntu.18.04
Priority: extra
Section: shells
Maintainer: PowerShell Team <PowerShellTeam@hotmail.com>
Installed-Size: 178 MB
Depends: libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, zlib1g, libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52, libssl1.1|libssl1.0.2|libssl1.0.0
Homepage: https://microsoft.com/powershell
License: MIT License
Vendor: Microsoft Corporation
Download-Size: 68.3 MB
APT-Manual-Installed: yes
APT-Sources: https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 Packages
Description: PowerShell is an automation and configuration management platform.
 It consists of a cross-platform command-line shell and associated scripting language.

Looking at release history the regression was introduced in this release & existed since https://github.com/Azure/azure-powershell/releases/tag/v4.3.0-June2020

@lerlacher-haylix
Copy link

So that was released in June 2020 - how does that fit with the issues popping up this week?

@panchagnula
Copy link
Contributor

panchagnula commented May 21, 2021

So that was released in June 2020 - how does that fit with the issues popping up this week?

Like I mentioned above the issue was introduced & existed since. So any build being used since then to now; when using only app settings in the command without other SiteProperties in the same command would be seeing this. When was the time that you installed the version you have & when did you first run the Set-AzWebApp command to set/update AppSettings alone?

@leshy84
Copy link

leshy84 commented May 21, 2021

So that was released in June 2020 - how does that fit with the issues popping up this week?

Like I mentioned above the issue was introduced & existed since. So any build being used since then to now; when using only app settings in the command without other SiteProperties in the same command would be setting this.

We mean we used the same version of Az.WebSites module and the same deployment script (specifying only app settings in the function) for months, but the problem appeared last week only, though nothing changed on our side (neither deployment script, nor powershell modules)

@sadomovalex
Copy link

from our side I may also confirm that we used Az 5.6.0 for 2 months (switched from AzureRM) in the same script and the following command was working as expected i.e. app settings were saved properly:

Set-AzWebApp -Name "MyAppService" -ResourceGroupName "MyResourceGroup" -AppSettings $appSettings

and it stopped working only on the last week. So it doesn't look like this issue is caused by change made about year ago.

@Kotasudhakarreddy
Copy link
Contributor

Hi Fix is available in the latest Az.websites module. You can update your modules to latest one using update-module -Name "Az.Websites". Please check and let us know the status. thanks!

@elhutchi
Copy link
Author

This fixed it for me. I installed Az 6.0.0 which includes Az.Websites 2.6.0.

However as noted by others, previous versions of Az.Websites still have this newly introduced bug. Seems to me that maybe there was an underlying API change (fix?) that surfaced this bug in Az.Websites. Is it possible to fix this for older versions of the Az module too (such as 5.7.0 which is currently the latest available on Microsoft hosted pipeline agents)? If so, that should help prevent existing deployments from breaking.

@panchagnula
Copy link
Contributor

Closing this since the deployment of the fix is complete.

grizzlytheodore added a commit that referenced this issue Jun 15, 2021
* Onboard DigitalTwins to Private Link Common Cmdlets (#14613)

* Onboard DigitalTwins to Private Link Common Cmdlets

* Removed the change log

* Added DigitalTwins in lexicographical order

* Adding Private Range (No SNAT) Support to Firewall Policies (#14577)

* Add Azure Route Server CRUD cmdlets to deprecate Virtual Router cmdlets (#14036)

* change name from virtual router to route server

* add test records

* fix warning

* delete unused import

* no snat private ranges

* adding private range in firewall policies

* using AzPSArgumentException instead of PSArgumentException

* using Resources.resx for AzPSArgumentException

* reverting changes in Resources.Designer.cs that is not related to my code

* adding help instruction for set-AzFirewallPolicy

* updated changeLog

Co-authored-by: litchiyangMSFT <64560090+litchiyangMSFT@users.noreply.github.com>

* Added a new property "FlowTimeout" to Virtual Network (#14665)

* Adding new property to Virtual Network FlowTimeoutInMinutes

* Reverting local SDK changes

* Added recorded test and updated help files, changed FlowTimeoutInMinutes to FlowTimeout

* Update src/Network/Network/VirtualNetwork/NewAzureVirtualNetworkCommand.cs

Removing Abbreviation of mins and expanding to minutes

Co-authored-by: Beisi Zhou <zhoubeisi@gmail.com>

* Updated FlowTimeout Description

* Generated New Test Recording and updated PS Test script

* Adding local SDK for FlowTimeout

* Update the Network sdk version in test projects

* Update the Network sdk version in test projects

* Updated FlowTimeout Description

* Update the Network sdk version in test projects

Co-authored-by: Beisi Zhou <zhoubeisi@gmail.com>
Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Virtual Network Gateway NAT feature changes (#14685)

* workingCode

* VNGCommands

* ConnChanges

* Format

* helpFiles

* tests

* changeLog

* Revert "changeLog"

This reverts commit 8dbb8a2.

* ChangeLogMd

* fixing csProj

* Revert "Revert "changeLog""

This reverts commit 7f69613.

* Fixing nupkg

* TestCsProj

* testRecords

* fixing comments

* Fixing Comments

Co-authored-by: Khushboo Baheti <khbaheti@microsoft.com>

* Support for Preferred Routing Gateway for Virtual Hub (#14761)

* Fixed Azure Vnet peering build fix for new SDK

* Added support for VPN or ER selection

* Added default display

* Bug fixes

* Updated change log

* Reverting VNET Peering change mismatch with SDK

* Fixed help file

* correcting document example 1 of New-AzFirewallPolicyRuleCollectionGroup (#14777)

* Added more detailed description about GroupId in New-AzPrivateLinkServiceConnection (#14786)

Co-authored-by: Beisi Zhou <bez@microsoft.com>

* Fix (#14791)

Co-authored-by: Khushboo Baheti <khbaheti@microsoft.com>

* Added support for getting a single private link resource (#14785)

* Added support for getting a single private link resource

* update help file

* Update src/Network/Network/help/Get-AzPrivateLinkResource.md

* Update src/Network/Network/help/Get-AzPrivateLinkResource.md

Co-authored-by: Beisi Zhou <bez@microsoft.com>

* Exposing two  read-only properties of Application Gateway client certificate (#14784)

* expose two read-only client cert properties

* update appgw senario test to cover two new read-only properties of client cert

* create zonal public ip referred by appgw with zone redundancy

* update session record

* update ChangeLog

* use cert chain name from appgw

* check client cert properties from appgw output

* update test case and record

* Gateway Loadbalancer (#14683)

* new branch

* fix

* fix

* fix

* fix

* fix

* try restart json

* replace file

Co-authored-by: matyang222 <matthew.yang@microsoft.com>

* Add new properties a new commandlet to support the address space update in peered vNets  (#14730)

* Changes for adding new commandlet for sync operation

* Reverting the unintended change related to flow timeout

* Updating with the SDK that has the newer fields

Updating with the SDK that has the newer fields

* Updating the networking SDK for all references

Updating the networking SDK for all references

* Added Parameter Set & Updated Changelog.md & Recorded PS Test

* Minor update to changelog.md file and removed comment from VirtualNetworkTests.cs

* Added default parameter set and ShouldSupportProcess=false

* Added default parameter set and ShouldSupportProcess=false

* Sync-AzVirtualNetworkPeering.md Help file

* Updated links in help files

* Minor spacing issue in help files hyperlink

* Changed synopsis and description from comment to actual string

* Added Sync-AzVirtualNetworkPeering to StaticAnalysis exception to ignore the shouldProcess error

* Updating build steps

* Setting supportsshouldprocess = true in sync-azvnetpeering

* Reverting the Signature Issues

Co-authored-by: Hari Prasad Perabattula <haperaba@microsoft.com>
Co-authored-by: Satya-anshu <70507845+Satya-anshu@users.noreply.github.com>

* [Az.RecoveryServices.Backup] fixed sql CRR and security issue with SQL restore (#14599)

* fixing sql restore, breaking change

* Fixed TestCases

* Move migrate to release-2021-05-25 (#15050)

* Move Migrate to release-2021-05-25

* Update Changelog.md

Co-authored-by: azurepowershell <azurepowershell@ms.com>

* Move kusto to release-2021-05-25 (#15046)

* Move Kusto to release-2021-05-25

* Add change log for kusto

* Clean en-us from kusto help (#15048)

* Suppress breaking change warnings for kusto (#15051)

Co-authored-by: azurepowershell <azurepowershell@ms.com>
Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

* Correct the version (#15053)

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Fixes: #14884: `Set-AzWebAppSlot` to set FtpsState, #14998:`Set-AzWeb… (#15011) (#15055)

* Fixes: #14884: `Set-AzWebAppSlot` to set FtpsState, #14998:`Set-AzWebApp` to set the AppSettings, #15005: `Set-AzAppServicePlan` to keep existing Tags when adding new Tags

* Build issue fixed

* Update ChangeLog.md

* Build fix

Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

Co-authored-by: Kota Sudhakar Reddy <60102891+Kotasudhakarreddy@users.noreply.github.com>

* Fix issues for AzPreview and update description of Az.psd1 (#15052)

* Fix link typo in warning message (#15045)

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>
Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

* Remove the logic to update psd1 in artifacts. (#15057)

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Application Gateway AutoScale Example (#15071)

* Add Example # 2

Example to convert an Application Gateway from Manual Scaling to AutoScale.

* Added Example

Added an additional example to the New-AzApplicationGatewayAutoscaleConfiguration cmdlet.

* Update ChangeLog.md

Co-authored-by: Jin Lei <54836179+msJinLei@users.noreply.github.com>

* Remove the reference to container instance project in network solution (#15073)

* release-2021-05-25 (#15069)

Suppresses the issue of static analysis

* [DataFactroy] Updated ADF .Net SDK version to 4.19.0 (#15074)

* [DataFactroy] Updated ADF .Net SDK version to 4.18.0

* [DataFactroy] Updated ADF .Net SDK version to 4.19.0

Co-authored-by: Yabo Hu <yabhu@microsoft.com>
Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

* [App Service] Set-AzWebAppSlot defaults AlwaysOn to false [#15066] (#15077)

* Add HighAvailabilityReplicaCount to New-AzSqlDatabaseSecondary (#15079)

* Add HA replica param

* Update ChangeLog.md

Co-authored-by: Jin Lei <54836179+msJinLei@users.noreply.github.com>

* Update SignalR module (#15085)

* Update SignalR SDK to 1.1.2-preview

* Add "Trace" to networkAcl and allow empty list

* Add resource group name and resource name completers

* Obsolete PSSignalRResource.HostNamePrefix

* Add test

* update help files

* Update change log

* Update ChangeLog.md

Co-authored-by: Jin Lei <54836179+msJinLei@users.noreply.github.com>

* Fix the breaking change issues. (#15090)

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Update doc around supportability (#15075)

Force merge it due to timeout of macOS

* release-2021-05-25

* Update changelog

* update changelog

* Updated document to remove unsupported platform PowerShell Core 6

* Refined document

* Added support for PowerShell 7.1.3

Co-authored-by: Erich(Renyong) Wang <eriwan@microsoft.com>
Co-authored-by: Damien Caro <dcaro@microsoft.com>

* Add migration guide for Az.6.0 (#15088)

* Add migration guide for Az.6.0

* Update Az.6.0.0-migration-guide.md

* Hide subscription id

* Fix migration guide

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>
Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* [Az.EventHub] Get-AzEventHub accepts pipeline input from Get-AzEventHubNamespace. (#13732)

* Modified to accept pipeline input from Get-AzEventHubNamespace

* Successful Test Records

* Updating Help markdown files and changelog.md

* Added Static Analyser exception

* Correcting breaking change

* [Aks]Fix the issue Aks cannot be update in Automation Runbook. (#15109)

* Fix the issue Aks cannot be update in Automation Runbook.

* Fix the issue Aks cannot be update in Automation Runbook.

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Update Set-AzNotificationHubsNamespace.md (#15103)

Hi team,

Proposing to add the -SkuTier parameter to the examples, since the command fails with
"Set-AzNotificationHubsNamespace: The request content was invalid and could not be deserialized: Required property 'name' not found in 'sku'."
if it is not provided.

* SQL Ledger Cmdlets (#14997)

* ledger changes + changes for new SDK version

* adding tests, updating cmdlets

* adding tests, fixing cmdlets

* adding comments to locations model

* adding to changelog.md

* adding markdowe help files

* fixing merge problems with backup restore resources

* updating help file for new-azsqldatabase

* rerecording tests

* removing EnableLedger from Set-AzureSqlDatabase

* removing extra parameter

* adding whatif text

* upgrading Microsoft.Azure.Management.Sql to 1.52

* fixing online version link

* adding audit action group for ledger

* adding default parameter set

* adding default parameter set

* adding -EnableLedger description to new-azsqldatabase help file

* adding ResourceIdentityWithUserAssignedIdentities to breaking changes ignore list

* adding breaking change message

* fixing type name

* adding using directive

* updating breaking changes message

* testing updating TestDatabaseDataMaskingPrivilegedUsersChanges test

* adding first batch of test re-records

* adding more re-recordings

* more changes for re-recording

* adding re-recordings, adding ignore api version to some tests

* adding ignore API version to instance pools test

* removing ignore API version from Auditing

* adding auditing tests, removing database override from vulnerability assessment test

* addding test re-recordings

* updating version to newest SDK, removing breaking change warnings

* adding server crud test re-records, instance pool crud tests to ignore managed instance changes

* adding skip to managed instance tests

* Commenting out instance pool, adding vulnerability assessment tests

* Adding more test rescordings, skipping tests

* reverting unneeded file changes

* Update ChangeLog.md

* rerecording test

* update changelog

* ledger changes + changes for new SDK version

* adding tests, updating cmdlets

* adding tests, fixing cmdlets

* adding comments to locations model

* adding to changelog.md

* adding markdowe help files

* fixing merge problems with backup restore resources

* updating help file for new-azsqldatabase

* rerecording tests

* removing EnableLedger from Set-AzureSqlDatabase

* removing extra parameter

* adding whatif text

* upgrading Microsoft.Azure.Management.Sql to 1.52

* fixing online version link

* adding audit action group for ledger

* adding default parameter set

* adding default parameter set

* adding -EnableLedger description to new-azsqldatabase help file

* adding ResourceIdentityWithUserAssignedIdentities to breaking changes ignore list

* adding breaking change message

* fixing type name

* adding using directive

* updating breaking changes message

* testing updating TestDatabaseDataMaskingPrivilegedUsersChanges test

* adding first batch of test re-records

* adding more re-recordings

* more changes for re-recording

* adding re-recordings, adding ignore api version to some tests

* adding ignore API version to instance pools test

* removing ignore API version from Auditing

* adding auditing tests, removing database override from vulnerability assessment test

* addding test re-recordings

* updating version to newest SDK, removing breaking change warnings

* adding server crud test re-records, instance pool crud tests to ignore managed instance changes

* adding skip to managed instance tests

* Commenting out instance pool, adding vulnerability assessment tests

* Adding more test rescordings, skipping tests

* reverting unneeded file changes

* rerecording test

* Update ChangeLog.md

* update changelog

* re-recording named secondary test after rebase

Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>

* Update Set-AzNetworkInterface.md (#15112)

fix spelling of fourth in three places.

* AzPreview use latest Az.Accounts version (#15111)

* AzPreview use latest Az.Accounts version

* Update RunVersionController.ps1

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* [NetAppFiles] Update to api-version 2021-02-01 updates (#15104)

* Apply 2021-02-01 updates

* Remove accidental comment

Co-authored-by: Audunn Baldvinsson <audunn.baldvinsson@netapp.com>

* Enable short policy names for mi mw (#15105)

* Allow short policy names for MI update/create

* Update test

* Record test

* Remove unnecessary ;

* Update changelog

* Update Test Deployments to allow the user to specify a deployment name (#15082)

* Update TestAzureSubscriptionDeploymentCmdlet.cs

* For TestAzureSubscriptionDeployment - If deployment name is null, then generate the name, otherwise, pass the deployment name

* Allow to specify deployment name for validate on management group, subscription, and tenant deployments

* changelog Allow naming the deployment when testing deployments [#11497]

* change help message

* Update-MarkdownHelpModule

Co-authored-by: Jonathan Reynes <joreynes@microsoft.com>

* [Storage] Support NFS and SmbMultichannel (#15130)

* [Storage] Support NFS

* [Storage] Support EnableSmbMultichannel

* fix PR review comments

* [Az.Resources Policy] Add -NonComplianceMessage to Set/New-AzPolicyAssignment (#15060)

* Model changes

* Update help docs

* Re-record tests

* Fix examples

* Addressing mentat9 comments

* Gateway LoadBalancer property ParameterSetName requirement removal (#15108)

* fix

* fix

Co-authored-by: matyang222 <matthew.yang@microsoft.com>

* [Resource] Fixed issue that property  is cleaned by  [#15134]. (#15136)

* Add validation trigger setting to pipelines (#15143)

* add configuration in yarm file for test.

* Updated yml file for CI.

* Upgrade PowerShell to 7.0.6 (#15113)

Upgrade Linux Image of CI pipeline to Ubuntu 20.04

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Fix the random failure in CI pipeline (#15153)

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Release Az 4.1.1 (#15150)

* Release Az.Resources 4.1.1 (#15149)

* [Resource] Fixed issue that property  is cleaned by  [#15134]. (#15136)

* Az.Resources 4.1.1 release

* Update version of Az.Accounts in psd1

Co-authored-by: LucasYao93 <53558334+LucasYao93@users.noreply.github.com>

* Update ChangeLog.md

Co-authored-by: LucasYao93 <53558334+LucasYao93@users.noreply.github.com>

* [Storage] Fix oauthCopySameAccount (#15152)

* Update Az.SecurityInsights help files (#15144)

* Updating Az.SecurityInsights help files

* Update Get-AzSentinelAlertRule.md

* typo in examples resourcegroup parameter (#15146)

* Update the dependencies for Az.Accounts (#15154)

* Fix the issue that static analysis cannot find SupportsShouldProcess in cmdlet (#15155)

Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* [Az.DiskPool] First preview availability of Az.DiskPool (#15128)

* First availability of Az.DiskPool

* supress error

* remove unnecessary suppress

* Code changes for provisioning Server & ManagedInstance with AD Only Authentication & External Administrator Properties (#15151)

* Rebase master

* Update Changelog

* Switch to singular noun

* Fix bug

* Check for administrator object

* Fix test

* Release notes of Az.DiskPool v0.1.0 (#15160)

* correct the way to download keyvault certificate (#15163)

* Remove duplicate list item in Get-AzKeyVault (#15167)

* cmdlets for new compute resource: SSH Public Key  (#15120)

* four cmdlets

* location to follow resource group

* add supportshouldprocess

* update test

* update key save location

* capitalization

* change

* change

* add two new parameter sets

* ReadScale default to null on Set-AzSqlDatabase (#15168)

* Updated api version (#15169)

* [**URGENT**] Fix for Set-AzSqlServer and Set-AzSqlInstance cmdlets (#15176)

* Fix for Set cmdlets

* comma

* update changelog.md

* Update ChangeLog.md

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* Using FQDN when connecting to nodes and enabling Arc (#15174)

-Using fqdn while connecting to cluster and nodes.
-Using AAD retries in Arc AAD application setup.
-Returning ErrorDetails in PS output stream for WAC to handle incase of RegisteredButArcFailed.

* Adding Cross Tenant DS move (#15185)

updated help text
added new CRR regions

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* Add SecretManagement tag to module (#15187)

* [HDInsight] Support new azure monitor feature (#15068)

* Support new azure monitor feature

* Change the cmdlet name Get/Enable/Disable-AzHDInsightMonitor to Get/Enable/Disable-AzHDInsightAzureMonitor

* Update the help doc and sdk version and add tests

* Add online version link

* Add related test

* Change setbynameparameterset to bynameparameterset

* Change the parameter set names to verb+ByName|ResourceId|InputObject style

Co-authored-by: Zhenyu Zhou <zhezhou@microsoft.com>

* Hotfix for the issue on windows powershell (#15189)

* Hotfix for the issue on windows powershell

* Bump version for Az.DiskPool OOB

* Adding CMK changes for PS cmdlets (#15122)

* Adding CMK changes for PS cmdlets

* Add UMI. Address comments

* Added UMI related config

* Fix build error

* Fix static analysis errors

* UMI related fix.

* Fix test and build issues

* Update with UMI scenarios

* Fix generated files

* Fix identity issue

* Fix failing test

* Modified help files. Modified changelog.md

* Update AzureSqlDatabaseTransparentDataEncryptionCommunicator.cs

Remove legacy codes

Co-authored-by: Jin Lei <54836179+msJinLei@users.noreply.github.com>

* Polish changelog for upcoming release (#15191)

* Provide certificate file login method (#14738)

* Use certificate file as input

* Address review comments

* Change underline behavior of adding IP configuration to route server  (#15194)

* fix day 1 behavior for route server

* record and log

* Az.StackHCI - Pass GraphAccessToken to Connect-AzAccount (#15193)

New-AzRoleAssignment Cmdlet needs graph token, so during Connect-AzAccount pass GraphAccessToken

* [Storage] Removed StorageFileDataSmbShareOwner from value set of DefaultSharePermission (#15190)

* Revert "Az.StackHCI - Pass GraphAccessToken to Connect-AzAccount (#15193)" (#15201)

This reverts commit e1f82c9.

* 47 update version (#15172)

* Add Deep delete options for Disks and NICs (#15177)

* DeleteOptions for Disks and NetworkInterfaces

* DeleteOption fixes

* Upgrade to Microsoft.Azure.Management.Compute Version 47.0.0

* Updated help files

* temporyr change to move Compute package to version 47

Co-authored-by: Bashar Gharaibeh <basharghar@live.com>

* fix blank space issue (#15206)

* [ApplicationInsights] Fixed ApplicationInsightsLinkedStorageAccount CRUD command that complain missing resourcegroupName when using InputObject (#15166)

* [ApplicationInsights] ApplicationInsightsLinkedStorageAccount CRUD command that complain missing resourcegroupName when using InputObject [#14848].

* Update ChangeLog.md

* [ApplicationInsights] Add CRUD test cases of the LinkedStorageAccount for pipeline.

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* Az.StackHCI - Pass GraphAccessToken to Connect-AzAccount (#15193) (#15203)

New-AzRoleAssignment Cmdlet needs graph token, so during Connect-AzAccount pass GraphAccessToken

Co-authored-by: digot007 <digot@microsoft.com>

* should not try to use existed module version for new modules (#15217)

* Delete obsoleted libs from local feed (#15215)

* fix issue caused by blank (#15210)

* Add edge zone parameter to virtual network cmdlet (#15196)

* Update virtual network cmdlet

* Create PSExtendedLocation.cs

* Unit test is working

* Add session record

* Fix help message and change formatting

* Update test session record

* Add catch block to test

* Fix build error introduced during rebase

* UT metadata

* Run commands synchronously and upload new test session record

* Fix static analysis issue

Co-authored-by: Will Ehrich <william.ehrich@microsoft.com>

* Add retirement notice (#15227)

* Add retirement notice

* Added a note on module retirement

Co-authored-by: Damien Caro <dcaro@microsoft.com>

* [Synapse] - new cmdlets for Spark job definition (#15156)

* Save current status

* Save current status

* Upgrade artfacts to 1.0.0-preview.9

* Save current status

* Remvoe SQL script

* Add example files

* Update examples

* Update changelog

* Remove rename parameter set

* Fix changelog

* Fix online version

* Suppresses breaking change issues

* Remove serialized cmdlets config files for Synapse

Co-authored-by: Dongwei Wang <dongwwa@microsoft.com>

* add cmdlet open-azsurveylink (#15205)

* add cmdlet open-azsurveylink

* move new cmdlet under feedback folder

* remove white space

* add help markdown for new cmdlet

* update common version

* suppress signature issue

* update parent class

* update namespace for share assembly

* upgrade common version

* add example

* fix help markdown

* add required assembly

* Remove Write-Host leaking file share credentials (#15225)

* Remove Write-Host leaking file share credentials

Removed a Write-Host command that printed the Azure file share
credentials when calling `New-AzContainerGroupVolumeObject` as reported
in #15224.

* Update Changelog.md

Co-authored-by: Dingmeng Xue <dixue@microsoft.com>

* First version of DataDog  (#15218)

* Fix for output type and null subscriptions collection in ResourceGraph (#15135)

* Fixed null subscriptions exception, added change log

* Added output type fix and updated tests
Changes from PR #15125

* regenerated ps1xml, updated examples

* Updated md file for the output type and changelog

* added breaking change issues csv after rebasing with master

* added parenthesses to csv to fix parsing issue

Co-authored-by: makharch <makharch@microsoft.com>

* Move DataDog to master

* Add DataDog to documentation/azure-powershell-modules.md

* Add SignatureIssues.csv for skip static analysis pipeline.

Co-authored-by: fenwickt <69487545+fenwickt@users.noreply.github.com>
Co-authored-by: makharch <makharch@microsoft.com>
Co-authored-by: azurepowershell <azurepowershell@ms.com>
Co-authored-by: wyunchi-ms <yunwang@microsoft.com>

* Add edge zone parameter to create network interface cmdlet (#15184)

* Add edge zone parameter to create network interface cmdlet

* Regenerate new network interface help file

Co-authored-by: Will Ehrich <william.ehrich@microsoft.com>

* Gateway Load Balancer Cross tenant issue fix (#15195)

* fix

* name fix

* put await next to create update

Co-authored-by: matyang222 <matthew.yang@microsoft.com>

* Update Get-AzRecoveryServicesAsrRecoveryPoint Description (#15222)

Added information about the order of recovery points in the array.

* Updating the description of parameter RecoveryPoint in Start-AzRecoveryServicesAsrUnplannedFailoverJob (#15223)

Updating Description of RecoveryPoint parameter - to let customers know what would happen if it is not specified.

* Update Get-AzSynapseTriggerRun.md (#15231)

The current example throws an errors

```
Cannot bind parameter 'RunStartedAfter'. Cannot convert value "[DateTimeOffset]2018-09-01T21:00" to 
type "System.DateTimeOffset". Error: "String was not recognized as a valid DateTime."
```

* fixed Disable SQL AG AutoProtection (#15241)

* Add edge zone parameter to public ip prefix cmdlet (#15240)

* Add edge zone parameter to public ip prefix cmdlet

* Update documentation

* Add test session record

* Update change log

* Fix changelog

Co-authored-by: Will Ehrich <william.ehrich@microsoft.com>

* Enable viewing of Public IP address extended location (#15230)

* Add edge zone parameter to public ip address cmdlet

* Style issue

* Simple change to retrigger CI

* Fix indentation issue

* Updated change log

Co-authored-by: Will Ehrich <william.ehrich@microsoft.com>
Co-authored-by: Beisi Zhou <zhoubeisi@gmail.com>

* change the branch name from master to main (#15238)

* Fix typo in changelog (#15252)

* Release-2021-06-15 (#15255)

* Release 2021-06-15 RC3 (#15253)

* Update change log of Blockchain

* Polish change log of Blockchain

* Update Get-AzSynapsePipelineRun.md by adding more examples covering more scenarios (#15232)

* Update Get-AzSynapsePipelineRun.md

* Update Get-AzSynapsePipelineRun.md

* [Storage] Support secure SMB  and NFSV3  (#15209)

* [Storage] Support NFSV3 in create account

* [Storage] Support secure SMB

Co-authored-by: anakarparida <43203370+anakarparida@users.noreply.github.com>
Co-authored-by: kenchenMicrosoft <72167895+kenchenMicrosoft@users.noreply.github.com>
Co-authored-by: litchiyangMSFT <64560090+litchiyangMSFT@users.noreply.github.com>
Co-authored-by: Satya-anshu <70507845+Satya-anshu@users.noreply.github.com>
Co-authored-by: Beisi Zhou <zhoubeisi@gmail.com>
Co-authored-by: wyunchi-ms <yunwang@microsoft.com>
Co-authored-by: Khushboo Baheti <37917868+Khushboo-Baheti@users.noreply.github.com>
Co-authored-by: Khushboo Baheti <khbaheti@microsoft.com>
Co-authored-by: arvenka <arvenka@microsoft.com>
Co-authored-by: Beisi Zhou <bez@microsoft.com>
Co-authored-by: biaogao <biga@microsoft.com>
Co-authored-by: Matthew Yang <79727592+matyang22@users.noreply.github.com>
Co-authored-by: matyang222 <matthew.yang@microsoft.com>
Co-authored-by: Hari Prasad Perabattula <harics24@users.noreply.github.com>
Co-authored-by: Hari Prasad Perabattula <haperaba@microsoft.com>
Co-authored-by: Himanshu Agarwal <hiaga@microsoft.com>
Co-authored-by: Xiaogang <xidi@microsoft.com>
Co-authored-by: azurepowershell <azurepowershell@ms.com>
Co-authored-by: Yunchi Wang <54880216+wyunchi-ms@users.noreply.github.com>
Co-authored-by: Kota Sudhakar Reddy <60102891+Kotasudhakarreddy@users.noreply.github.com>
Co-authored-by: erich-wang <eriwan@microsoft.com>
Co-authored-by: Dingmeng Xue <dixue@microsoft.com>
Co-authored-by: sohaibMSFT <84540426+sohaibMSFT@users.noreply.github.com>
Co-authored-by: Jin Lei <54836179+msJinLei@users.noreply.github.com>
Co-authored-by: Jingshu923 <52914166+Jingshu923@users.noreply.github.com>
Co-authored-by: Yabo Hu <yabhu@microsoft.com>
Co-authored-by: bradrich-msft <53872276+bradrich-msft@users.noreply.github.com>
Co-authored-by: yzt <zityang@microsoft.com>
Co-authored-by: Damien Caro <dcaro@microsoft.com>
Co-authored-by: B Harsha Kashyap <hakashya@microsoft.com>
Co-authored-by: Tiago Antunes <11945717+tiantun@users.noreply.github.com>
Co-authored-by: rewongmicrosoft <57964114+rewongmicrosoft@users.noreply.github.com>
Co-authored-by: Scott <S-T-S@users.noreply.github.com>
Co-authored-by: Auðunn <audunn@netapp.com>
Co-authored-by: Audunn Baldvinsson <audunn.baldvinsson@netapp.com>
Co-authored-by: Ivan Kulezic <72797230+kukislav@users.noreply.github.com>
Co-authored-by: Jonathan Reynes <19974635+jontreynes@users.noreply.github.com>
Co-authored-by: Jonathan Reynes <joreynes@microsoft.com>
Co-authored-by: Wei Wei <weiwei@microsoft.com>
Co-authored-by: Chris Eggert <pilor@users.noreply.github.com>
Co-authored-by: LucasYao93 <53558334+LucasYao93@users.noreply.github.com>
Co-authored-by: Tiander Turpijn <tiandert@microsoft.com>
Co-authored-by: srozemuller <43162899+srozemuller@users.noreply.github.com>
Co-authored-by: strehan1993 <70013163+strehan1993@users.noreply.github.com>
Co-authored-by: Mikhail <mitryakh@microsoft.com>
Co-authored-by: digot007 <digot@microsoft.com>
Co-authored-by: aim-for-better <zhenyu.zhou@microsoft.com>
Co-authored-by: Zhenyu Zhou <zhezhou@microsoft.com>
Co-authored-by: viparek <78561564+viparek@users.noreply.github.com>
Co-authored-by: Adam Sandor <adsandor@microsoft.com>
Co-authored-by: basharg <basharg@microsoft.com>
Co-authored-by: Bashar Gharaibeh <basharghar@live.com>
Co-authored-by: William Ehrich <wdehrich@gmail.com>
Co-authored-by: Will Ehrich <william.ehrich@microsoft.com>
Co-authored-by: Dongwei Wang <bean0idear@163.com>
Co-authored-by: Dongwei Wang <dongwwa@microsoft.com>
Co-authored-by: Ashley Roll <ash@digitalnemesis.com>
Co-authored-by: fenwickt <69487545+fenwickt@users.noreply.github.com>
Co-authored-by: makharch <makharch@microsoft.com>
Co-authored-by: Rishabh Jain <73586309+rishjai-msft@users.noreply.github.com>
Co-authored-by: Mikey Bronowski <MikeyBronowski@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
App Services aka WebSites customer-reported question The issue doesn't require a change to the product in order to be resolved. Most issues start as that Service Attention This issue is responsible by Azure service team.
Projects
None yet
Development

No branches or pull requests