我正在尝试从 WSO2 API Manager v3.2 导出 API,并使用 APICTL 2 版本 v3.2 和 v4.3 工具将其导入 WSO2 API Manager v4.3。使用 APICTL v3.2 从 v3.2 导出的过程工作正常,但在使用 APICTL v4.3 导入 APIM v4.3 的过程中遇到问题。
我做了什么
使用 APICTL v3.2.0 从 WSO2 APIM v3.2 导出 API,并且工作正常。 apictl 导出 api -n 银行账户 -v 1.0.0 -e dev
并使用 APICTL v4.3.0 将导出的 API 导入到 WSO2 APIM v4.3 及其获取错误 apictl import api -f BankAccounts-1.0.0/ -e dev --update --preserve-provider --skip-deployments --verbose
当我尝试导入 API 时,收到以下错误:
Executed ImportExportCLI (apictl) on Tue, 15 Oct 2024 15:37:37 +0530
[INFO]: Insecure: false
[INFO]: api called
[INFO]: connecting to https://localhost:9443/oauth2/token
[INFO]: Resolving for API path...
[INFO]: API Location: /Users/anujayaranathunge/Desktop/apiexport/apis/dev/BankAccounts-1.0.0
[INFO]: Creating workspace
[INFO]: Copying from /Users/anujayaranathunge/Desktop/apiexport/apis/dev/BankAccounts-1.0.0 to /var/folders/z5/z5bwkv6d1r56nbhc0xcx8g8m0000gn/T/apim1444671150
[INFO]: Substituting environment variables in API files...
[INFO]: Removing the deployment environments file from /var/folders/z5/z5bwkv6d1r56nbhc0xcx8g8m0000gn/T/apim1444671150/BankAccounts-1.0.0/deployment_environments.yaml
[INFO]: Creating the project artifact /var/folders/z5/z5bwkv6d1r56nbhc0xcx8g8m0000gn/T/project-artifact373201054.zip
[INFO]: Creating: BankAccounts-1.0.0/
[INFO]: Creating: BankAccounts-1.0.0/.DS_Store
[INFO]: Creating: BankAccounts-1.0.0/Meta-information/
[INFO]: Creating: BankAccounts-1.0.0/api.yaml
[INFO]: Creating: BankAccounts-1.0.0/api_params.yaml
[INFO]: Creating: BankAccounts-1.0.0/swagger.yaml
[INFO]: Import URL: https://localhost:9443/api/am/publisher/v4/apis/import?overwrite=true&preserveProvider=true&rotateRevision=false
Response : {"code":500,"message":"Internal server error","description":"The server encountered an internal error. Please contact administrator.","moreInfo":"","error":[]}Error importing API.
Status: 500
Response: {"code":500,"message":"Internal server error","description":"The server encountered an internal error. Please contact administrator.","moreInfo":"","error":[]}
[INFO]: Deleting /var/folders/z5/z5bwkv6d1r56nbhc0xcx8g8m0000gn/T/project-artifact373201054.zip
[INFO]: Deleting /var/folders/z5/z5bwkv6d1r56nbhc0xcx8g8m0000gn/T/apim1444671150/BankAccounts-1.0.0
apictl: Error importing API Reason: 500
Exit status 1
问题: 将 API 导入 WSO2 API Manager v4.3 时,可能导致此 500 内部服务器错误的原因是什么?如何解决该错误?使用 APICTL 将 API 从 v3.2 迁移到 v4.3 时是否需要进行特定更改或步骤?
我已经尝试过:
验证导出的 API ZIP 文件正常工作且有效。 检查导出的 API 中的 OpenAPI 定义并确保其遵循正确的格式 (OpenAPI 3.0.1)。 在 WSO2 服务器上查找错误日志。 我尝试使用相同的 wso2 APIM 版本和相同的 APICTL 版本(例如:v4.3)导出和导入部件,因此它工作正常。
您可能需要检查服务器日志以找出导入过程中实际出现的问题。从 APIM 3.2.0 导出的 API 可能不直接与 APIM 4.3.0 的预期格式兼容,因为 APIM 运行时发生了主要版本更改。这里的一个选择是在 4.3.0 中创建一个示例 API,并将其导出以找出 4.3.0 和 3.2.0 之间的差异。这样,您可以手动对导出的 3.2.0 API 进行这些更改并将其导入到 4.3.0。
顺便说一句,APICTL 并不是用于跨 APIM 版本迁移 API,而是用于跨同一 APIM 运行时版本的不同环境(dev、uat、prod)移动 API。