api-management-developer-portal icon indicating copy to clipboard operation
api-management-developer-portal copied to clipboard

Should portal migration work between Developer SKU and StandardV2 Sku?

Open lantern-sam opened this issue 1 year ago • 11 comments

Bug description

I am unable to import the developer portal content from an APIM service of Developer Sku to one of Standardv2 sku.

The help article here: https://learn.microsoft.com/en-us/azure/api-management/automate-portal-deployments Suggests that StandardV2 is a supported Sku.

If I run the migrate v3 script between two developer skus I get:

api-management-developer-portal\scripts.v3> node ./migrate --sourceSubscriptionId "xxx" --sourceResourceGroupName "xxx" --sourceServiceName "xxx" --destSubscriptionId "yyy" --destResourceGroupName "yyy" --destServiceName "yyy"
Exporting...
Cleaning up...
Importing...
DONE

When running between Developer Sku -> StandardV2 Sku I get:

api-management-developer-portal\scripts.v3> node ./migrate --sourceSubscriptionId "xxx" --sourceResourceGroupName "xxx" --sourceServiceName "xxx" --destSubscriptionId "yyy" --destResourceGroupName "yyy" --destServiceName "yyy"
Exporting...
Cleaning up...
Unable to complete migration. Unable to complete cleanup. Unable to delete media files. Could not complete request to https://management.azure.com/subscriptions/yyy/resourceGroups/yyy/providers/Microsoft.ApiManagement/service/yyy/portalSettings/mediaContent/listSecrets?api-version=2021-08-01. Status: 400 Bad Request

Reproduction steps

Create a Developer Sku APIM instance Create a StandardV2 Instance run migrate v3 from one to the other

Expected behavior

I would expect this to work or a message on the help page to say that this isn't supported.

Is self-hosted portal?

No

API Management service name

lantern-test-apim

lantern-sam avatar Sep 28 '24 16:09 lantern-sam

Seems I'm hitting a similar issue. Getting the following error when running the command: Unable to complete export. Unable to download media files. Could not complete request to https://management.azure.com/subscriptions/../Microsoft.ApiManagement/service/../portalSettings/mediaContent/listSecrets?api-version=2021-08-01. Status: 400 Bad Request

It's not showing any additional details but when monitoring the network traffic and intercepting the API call, the following response is returned:

{
  "error": {
    "code": "MethodNotAllowedInPricingTier",
    "message": "Method not allowed in StandardV2 pricing tier",
    "details": null
  }
}

It's happening on the following API call: https://management.azure.com/subscriptions../resourceGroups/../providers/Microsoft.ApiManagement/service/../portalSettings/mediaContent/listSecrets?api-version=2021-08-01

thomasvdb avatar Sep 30 '24 08:09 thomasvdb

Hi @lantern-sam Unfortunately, the portal migration between V1 and V2 Skus is not supported for now.

ygrik avatar Oct 16 '24 18:10 ygrik

Hi @ygrik Is it supported V2->V2?

lantern-sam avatar Oct 17 '24 07:10 lantern-sam

Hi @lantern-sam V2-> V2 migration is partially supported. You can migrate contentTypes, contentItems, except media and custom items. To migrate Media items, we need to reimplement the import/export.

ygrik avatar Oct 18 '24 21:10 ygrik

I'm having the same issue.

I agree with @lantern-sam that it the automate portal deployments page references the v3 migration.js script and it indicates support for V2.

I've tried running the migration script between two V2 instances but i'm getting the same error. @ygrik how does partial support look like? creating a custom script that calls captureContent directly bypassing the downloadBlobs?

Is there ETA on when this will be supported?

frankfolsche avatar Jan 16 '25 09:01 frankfolsche

any news to migrate V1 (classic) (for example developer) to v2 ( for example StandardV2) ?

radhecksngular avatar Apr 07 '25 14:04 radhecksngular

Having a similar error since Developer SKU does not have a v2 version:

Importing...
Unable to complete import. Unable to upload media files. Could not complete request to https://management.azure.com/subscriptions/xxx/resourceGroups/yyy/providers/Microsoft.ApiManagement/service/zzz/portalSettings/mediaContent/listSecrets?api-version=2021-08-01. Status: 400 Bad Request

Is it possible to skip media files?

viniciushsantana avatar Apr 28 '25 19:04 viniciushsantana

Hi, I am in the same situation. Are there any solutions? Has anyone succeeded with a custom script?

eiffel-commits avatar Nov 13 '25 07:11 eiffel-commits

Hi, here is the error when i try to migrate from Developer SKU to Standard V2 SKU. I don't understand if the limit is on source or destination ? it's possible to increase limit ? An idea ?

node ./migrate --sourceSubscriptionId "xxx" --sourceResourceGroupName "xxx" --sourceServiceName "xxx" --destSubscriptionId "xxx" --destResourceGroupName "xxx" --destServiceName "xxxt" Exporting... Cleaning up... Importing... Unable to complete migration. Unable to complete import. Unable to generate the content. Could not complete reques t to https://management.azure.com/subscriptions/xxx/resourceGroups/apim-prd/providers/Microsoft.ApiManagement/service/apim-prd-management/contentTypes/blob/contentItems/xxx?api-version=2021-08-01. Status: 400 Bad Request, Data: {"error":{"code":"ValidationError","message":"You've reached the maximum number of Content Items (50) in Content Type. Please delete one or more Content Item(s) from Content Type to continue, or consider upgrading your plan to increase the limit. For more information se-prd/providers/Microsoft.ApiManagement/service/apim-prd-management/contentTypes/blob/contentItems/xxxx?api-version=2021-08-01. Status: 400 Bad Request, Data: {"error":{"code":"ValidationError","message":"You've reached the maximum number of Content Items (50) in Content Type. Please delete one or more Content It em(s) from Content Type to continue, or consider upgrading your plan to increase the limit. For more information st to https://management.azure.com/subscriptions/xxx/resourceGroups/apim-prd/providers/Microsoft.ApiManagement/service/ap im-prd-management/contentTypes/blob/contentItems/xxx?api-version=2021-08-01. Status: 400 Bad Request, Data: {"error":{"code":"ValidationErr t to https://management.azure.com/subscriptions/xxx/resourceGroups/apim-prd /providers/Microsoft.ApiManagement/service/apim-prd-management/contentTypes/blob/contentItems/xxx?api-version=2021-08-01. Status: 400 Bad Request, Data: {"error":{"code":"ValidationError",t to https://management.azure.com/subscriptions/xxx/resourceGroups/apim -prd/providers/Microsoft.ApiManagement/service/apim-prd-management/contentTypes/blob/contentItems/xxx?api-version=2021-08-01. Status: 400 Bad Request, Data: {"error":{"code":"Validatio nError","message":"You've reached the maximum number of Content Items (50) in Content Type. Please delete one or m ore Content Item(s) from Content Type to continue, or consider upgrading your plan to increase the limit. For more information see: https://learn.microsoft.com/en-us/azure/api-management/v2-service-tiers-overview#resource-limits ","details":null}}

eiffel-commits avatar Nov 13 '25 16:11 eiffel-commits

I found these powershell scripts in another repository and reworked them to work with the v2 SKU. Provided as is! Haven't used them for half a year :D Export-APIMDeveloperPortal.ps1.txt Import-APIMDeveloperPortal.ps1.txt

gittyNico avatar Nov 14 '25 09:11 gittyNico

Hello, thank you gittyNico for your scripts. I tested them by migrating my classic apim levels to a new standard apim sku v2, but the results are mixed. I don't have all the images and I'm stuck because v2 doesn't support custom widgets, and I need them to display my subscriptions via token access.

eiffel-commits avatar Dec 03 '25 22:12 eiffel-commits