az apim api import to existing API clears serviceUrl when the optional --service-url parameter isn't provided
Clearing/removing/blanking the serviceUrl property of an APIM API is a risk that the runtime breaks down.
including API definition (paths, API level policies), (API) Products, subscriptions and such
On the API solution (deploy-time pipeline) we take the OpenAPI spec, and (re)import the operations into the predefined APIM API
The serviceUrl is to be configured and maintained in the former, also to have an environment agnostic OpenAPI specification file. Currently that is impossible as I can't instruct the az apim api import to stay "hands of" the serviceUrl that was configured, and is no cleared as result, breaking the runtime and resulting into unavailability.
Can be reproduced via
Checking the serviceUrl of an API after az apim api list --resource-group rg-something-weu --service-name apim-something-weu
(re)import that API, without specifying a --service-url
Check again the serviceUrl of the same API, which is now converted into a null value.
The error directly after that
GatewayError:
at forward-request
Backend service URL is not defined.
Describe the bug
az apim api import to existing API clears serviceUrl when the optional --service-url parameter isn't provided Clearing/removing/blanking the
serviceUrl
property of an APIM API is a risk that the runtime breaks down.Related command
Errors
N/A
Issue script & Debug output
Expected behavior
Ensure properties that are not provided, as they are (intentionally) optional, won't be changed via the resulting resource provider deployment.
Environment Summary
Additional context
We aim to have this split
The serviceUrl is to be configured and maintained in the former, also to have an environment agnostic OpenAPI specification file. Currently that is impossible as I can't instruct the
az apim api import
to stay "hands of" the serviceUrl that was configured, and is no cleared as result, breaking the runtime and resulting into unavailability.Can be reproduced via
serviceUrl
of an API afteraz apim api list --resource-group rg-something-weu --service-name apim-something-weu
--service-url
serviceUrl
of the same API, which is now converted into anull
value.The error directly after that