Azure / azure-powershell

Microsoft Azure PowerShell
Other
4.21k stars 3.81k forks source link

Set-AzApiManagementApi does not persist changes from pipeline input object #11431

Closed henrylyons closed 1 year ago

henrylyons commented 4 years ago

Description

I am trying to change API properties by retrieving an API object with Get-AzApiManagementApi, changing property values, and piping the changed API object to Set-AzApiManagementApi.

I am trying to set these API property values: AuthorizationScope = "" SubscriptionRequired = False

However, these changes are not persisted in the service. Retrieving the same object again with Get-AzApiManagementApi shows that these values were not changed.

Steps to reproduce

$api = Get-AzApiManagementApi -Context $apimContext -ApiId $apiId
$api.SubscriptionRequired = $false
$api.AuthorizationScope = ""
$api | Set-AzApiManagementApi -Context $apimContext
$api = Get-AzApiManagementApi -Context $apimContext -ApiId $apiId

Environment data

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.18363
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    Name
---------- -------    ----
    Script 3.4.0      Az
    Script 1.7.1      Az.Accounts
    Script 1.1.1      Az.Advisor
    Script 1.0.3      Az.Aks
    Script 1.1.2      Az.AnalysisServices
    Script 1.3.4      Az.ApiManagement
    Script 1.0.3      Az.ApplicationInsights
    Script 1.3.5      Az.Automation
    Script 2.0.2      Az.Batch
    Script 1.0.2      Az.Billing
    Script 1.4.2      Az.Cdn
    Script 1.2.2      Az.CognitiveServices
    Script 3.4.0      Az.Compute
    Script 1.0.3      Az.ContainerInstance
    Script 1.1.1      Az.ContainerRegistry
    Script 1.1.0      Az.DataBoxEdge
    Script 1.6.1      Az.DataFactory
    Script 1.0.2      Az.DataLakeAnalytics
    Script 1.2.6      Az.DataLakeStore
    Script 1.1.0      Az.DeploymentManager
    Script 1.0.2      Az.DevTestLabs
    Script 1.1.2      Az.Dns
    Script 1.2.3      Az.EventGrid
    Script 1.4.3      Az.EventHub
    Script 1.3.0      Az.FrontDoor
    Script 3.0.3      Az.HDInsight
    Script 1.0.1      Az.HealthcareApis
    Script 2.0.1      Az.IotHub
    Script 1.5.0      Az.KeyVault
    Script 1.3.2      Az.LogicApp
    Script 1.1.3      Az.MachineLearning
    Script 1.0.2      Az.ManagedServices
    Script 1.0.2      Az.MarketplaceOrdering
    Script 1.1.1      Az.Media
    Script 1.5.0      Az.Monitor
    Script 2.3.0      Az.Network
    Script 1.1.1      Az.NotificationHubs
    Script 1.3.4      Az.OperationalInsights
    Script 1.2.0      Az.PolicyInsights
    Script 1.1.1      Az.PowerBIEmbedded
    Script 1.0.2      Az.PrivateDns
    Script 2.5.0      Az.RecoveryServices
    Script 1.2.1      Az.RedisCache
    Script 1.0.3      Az.Relay
    Script 1.10.0     Az.Resources
    Script 1.4.1      Az.ServiceBus
    Script 2.0.1      Az.ServiceFabric
    Script 1.1.1      Az.SignalR
    Script 2.2.0      Az.Sql
    Script 1.0.2      Az.SqlVirtualMachine
    Script 1.12.0     Az.Storage
    Script 1.2.2      Az.StorageSync
    Script 1.0.1      Az.StreamAnalytics
    Script 1.0.3      Az.TrafficManager
    Script 1.6.0      Az.Websites
    Script 3.6.1      Az
    Script 1.7.3      Az.Accounts
    Script 1.1.1      Az.Advisor
    Script 1.0.3      Az.Aks
    Script 1.1.2      Az.AnalysisServices
    Script 1.4.0      Az.ApiManagement
    Script 1.0.3      Az.ApplicationInsights
    Script 1.3.6      Az.Automation
    Script 2.0.2      Az.Batch
    Script 1.0.2      Az.Billing
    Script 1.4.2      Az.Cdn
    Script 1.2.3      Az.CognitiveServices
    Script 3.5.0      Az.Compute
    Script 1.0.3      Az.ContainerInstance
    Script 1.1.1      Az.ContainerRegistry
    Script 1.1.0      Az.DataBoxEdge
    Script 1.6.1      Az.DataFactory
    Script 1.0.2      Az.DataLakeAnalytics
    Script 1.2.7      Az.DataLakeStore
    Script 1.1.0      Az.DeploymentManager
    Script 1.0.2      Az.DevTestLabs
    Script 1.1.2      Az.Dns
    Script 1.2.3      Az.EventGrid
    Script 1.4.3      Az.EventHub
    Script 1.4.0      Az.FrontDoor
    Script 3.0.3      Az.HDInsight
    Script 1.0.1      Az.HealthcareApis
    Script 2.2.0      Az.IotHub
    Script 1.5.1      Az.KeyVault
    Script 1.3.2      Az.LogicApp
    Script 1.1.3      Az.MachineLearning
    Script 1.0.2      Az.ManagedServices
    Script 1.0.2      Az.MarketplaceOrdering
    Script 1.1.1      Az.Media
    Script 1.6.1      Az.Monitor
    Script 2.3.2      Az.Network
    Script 1.1.1      Az.NotificationHubs
    Script 1.3.4      Az.OperationalInsights
    Script 1.2.0      Az.PolicyInsights
    Script 1.1.1      Az.PowerBIEmbedded
    Script 1.0.2      Az.PrivateDns
    Script 2.7.0      Az.RecoveryServices
    Script 1.2.1      Az.RedisCache
    Script 1.0.3      Az.Relay
    Script 1.12.0     Az.Resources
    Script 1.4.1      Az.ServiceBus
    Script 2.0.1      Az.ServiceFabric
    Script 1.1.1      Az.SignalR
    Script 2.4.0      Az.Sql
    Script 1.1.0      Az.SqlVirtualMachine
    Script 1.13.0     Az.Storage
    Script 1.2.3      Az.StorageSync
    Script 1.0.1      Az.StreamAnalytics
    Script 1.0.3      Az.TrafficManager
    Script 1.7.0      Az.Websites
  Manifest 7.0.0.0    CimCmdlets
  Manifest 1.2.5      Microsoft.PowerShell.Archive
  Manifest 7.0.0.0    Microsoft.PowerShell.Diagnostics
  Manifest 7.0.0.0    Microsoft.PowerShell.Host
  Manifest 7.0.0.0    Microsoft.PowerShell.Management
  Manifest 7.0.0.0    Microsoft.PowerShell.Security
  Manifest 7.0.0.0    Microsoft.PowerShell.Utility
  Manifest 7.0.0.0    Microsoft.WSMan.Management
    Script 1.4.6      PackageManagement
    Script 2.2.3      PowerShellGet
    Script 2.0.5      PSDesiredStateConfiguration
    Script 7.0.0.0    PSDiagnostics
    Script 2.0.0      PSReadLine
    Binary 2.0.3      ThreadJob
    Script 2.7.0      Az
    Script 1.6.2      Az.Accounts
    Script 1.0.1      Az.Advisor
    Script 1.0.2      Az.Aks
    Script 1.1.1      Az.AnalysisServices
    Script 1.3.1      Az.ApiManagement
    Script 1.0.2      Az.ApplicationInsights
    Script 1.3.3      Az.Automation
    Script 1.1.1      Az.Batch
    Script 1.0.1      Az.Billing
    Script 1.3.1      Az.Cdn
    Script 1.2.1      Az.CognitiveServices
    Script 2.6.0      Az.Compute
    Script 1.0.1      Az.ContainerInstance
    Script 1.1.0      Az.ContainerRegistry
    Script 1.3.0      Az.DataFactory
    Script 1.0.1      Az.DataLakeAnalytics
    Script 1.2.2      Az.DataLakeStore
    Script 1.0.1      Az.DeploymentManager
    Script 1.0.0      Az.DevTestLabs
    Script 1.1.1      Az.Dns
    Script 1.2.2      Az.EventGrid
    Script 1.4.0      Az.EventHub
    Script 1.1.1      Az.FrontDoor
    Script 2.0.2      Az.HDInsight
    Script 1.3.0      Az.IotHub
    Script 1.3.1      Az.KeyVault
    Script 1.3.1      Az.LogicApp
    Script 1.1.1      Az.MachineLearning
    Script 1.0.1      Az.ManagedServices
    Script 1.0.1      Az.MarketplaceOrdering
    Script 1.1.0      Az.Media
    Script 1.3.0      Az.Monitor
    Script 1.14.0     Az.Network
    Script 1.1.0      Az.NotificationHubs
    Script 1.3.3      Az.OperationalInsights
    Script 1.1.3      Az.PolicyInsights
    Script 1.1.0      Az.PowerBIEmbedded
    Script 1.4.5      Az.RecoveryServices
    Script 1.1.0      Az.RedisCache
    Script 1.0.2      Az.Relay
    Script 1.7.0      Az.Resources
    Script 1.4.0      Az.ServiceBus
    Script 1.2.0      Az.ServiceFabric
    Script 1.1.0      Az.SignalR
    Script 1.14.2     Az.Sql
    Script 1.7.0      Az.Storage
    Script 1.2.0      Az.StorageSync
    Script 1.0.0      Az.StreamAnalytics
    Script 1.0.2      Az.TrafficManager
    Script 1.4.2      Az.Websites
    Binary 2.0.2.50   AzureAD
    Script 1.0.1      Microsoft.PowerShell.Operation.Validation
    Binary 1.0.0.1    PackageManagement
    Script 3.4.0      Pester
    Script 1.0.0.1    PowerShellGet
    Script 2.0.0      PSReadline
  Manifest 1.0.0.0    AppBackgroundTask
  Manifest 2.0.1.0    Appx
    Script 1.0.0.0    AssignedAccess
  Manifest 1.0.0.0    BitLocker
  Manifest 1.0.0.0    BranchCache
  Manifest 1.0        ConfigDefender
  Manifest 1.0        Defender
  Manifest 1.0.2.0    DeliveryOptimization
  Manifest 1.0.0.0    DirectAccessClientComponents
    Script 3.0        Dism
  Manifest 1.0.0.0    DnsClient
  Manifest 1.0.0.0    EventTracingManagement
  Manifest 2.0.0.0    International
  Manifest 3.0.0.0    Microsoft.PowerShell.Diagnostics
  Manifest 1.0.0.0    Microsoft.PowerShell.LocalAccounts
  Manifest 3.1.0.0    Microsoft.PowerShell.Management
  Manifest 1.0        MMAgent
  Manifest 2.0.0.0    NetAdapter
  Manifest 1.0.0.0    NetConnection
  Manifest 1.0.0.0    NetEventPacketCapture
  Manifest 2.0.0.0    NetLbfo
  Manifest 1.0.0.0    NetNat
  Manifest 2.0.0.0    NetQos
  Manifest 2.0.0.0    NetSecurity
  Manifest 1.0.0.0    NetSwitchTeam
  Manifest 1.0.0.0    NetTCPIP
  Manifest 1.0.0.0    NetworkConnectivityStatus
  Manifest 1.0.0.0    NetworkSwitchManager
  Manifest 1.0.0.0    NetworkTransition
  Manifest 1.0.0.0    PcsvDevice
  Manifest 1.0.0.0    PnpDevice
  Manifest 1.1        PrintManagement
    Binary 1.0.11     ProcessMitigations
  Manifest 1.0.0.0    ScheduledTasks
  Manifest 2.0.0.0    SecureBoot
  Manifest 2.0.0.0    SmbShare
  Manifest 2.0.0.0    SmbWitness
  Manifest 1.0.0.0    StartLayout
  Manifest 2.0.0.0    Storage
  Manifest 1.0.0.0    TroubleshootingPack
  Manifest 2.0.0.0    TrustedPlatformModule
    Binary 2.1.639.0  UEV
  Manifest 2.0.0.0    VpnClient
  Manifest 1.0.0.0    Wdac
  Manifest 2.0.0.0    Whea
  Manifest 1.0.0.0    WindowsDeveloperLicense
    Script 1.0        WindowsErrorReporting
  Manifest 1.0.0.0    WindowsSearch
  Manifest 1.0.0.0    WindowsUpdate
  Manifest 1.0.0.2    WindowsUpdateProvider
ghost commented 4 years ago

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

dingmeng-xue commented 4 years ago

Thanks for reporting. Involve API Management team.

Luperi commented 2 years ago

In my case, using:

$api.SubscriptionRequired = $false
Set-AzApiManagementApi -InputObject $api -Name $api.Name

Instead of:

$api.SubscriptionRequired = $false
$api | Set-AzApiManagementApi -Context $apimContext

worked like a charm.

mikebudzynski commented 1 year ago

We have made improvements to piping in the recent versions and @Luperi provided a workaround above, so I am closing this issue. If you're still experiencing the problem with the latest module version, please open a new issue.