我正在API Gateway
。
因此,我从我的AWS账户中的API Console
导出我的API,然后进入API Gateway
并创建一个新的API - "从swagger"导入。
我将导出的定义粘贴到并创建,这会导致大量错误。
从我的阅读 - 看来这是一个已知的问题/痛苦。
我怀疑错误的原因是因为我使用了自定义授权程序;
"security" : [ {
"TestAuthorizer" : [ ]
}, {
"api_key" : [ ]
} ]
我在每个方法上使用它,因此,我遇到了很多错误。
奇怪的是,我可以完美地克隆这个API,因此,我认为我可以采用导出的定义并重新导入而不会出现问题。
关于如何纠正这些错误的任何想法(最好是在我的API网关中,以便我可以导出/导入而没有任何问题)。
使用此授权程序的一个GET方法的示例是:
"/api/example" : {
"get" : {
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "Authorization",
"in" : "header",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "200 response",
"schema" : {
"$ref" : "#/definitions/exampleModel"
},
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
},
"security" : [ {
"TestAuthorizer" : [ ]
}, {
"api_key" : [ ]
} ]
}
提前致谢
更新
导入刚刚导出的定义时得到的错误是:
Your API was not imported due to errors in the Swagger file.
Unable to put method 'GET' on resource at path '/api/v1/MethodName': Invalid authorizer ID specified. Setting the authorization type to CUSTOM or COGNITO_USER_POOLS requires a valid authorizer.
我在API中获取了每个方法的消息 - 所以有很多。
额外性,就在消息的最后,我明白了:
Additionally, these warnings were found:
Unable to create authorizer from security definition: 'TestAuthorizer'. Extension x-amazon-apigateway-authorizer is required. Any methods with security: 'TestAuthorizer' will not be created. If this security definition is not a configured authorizer, remove the x-amazon-apigateway-authtype extension and it will be ignored.
我尝试过忽略错误,结果相同。
答案 0 :(得分:1)
对于任何可能遇到此问题的人。
经过大量的问题排查并最终涉及AWS Support Team
后,此问题已得到解决并被识别为AWS CLI
客户端错误(已从AWS Support Team
确认);
最终回复。
感谢您提供所要求的详细信息。在浏览AWS CLI版本和错误详细信息后,我可以确认错误是由于Powershell AWS CLI的已知问题。对由于错误导致的不便,我深表歉意。为了解决这个错误,我建议您完成以下步骤
在要执行powershell命令的当前目录中创建名为data.json的文件
将以下内容保存到文件{“extensions”:“authorizers,integration”}
在Powershell控制台中,确保当前工作目录与data.json所在的位置相同
- 醇>
执行以下命令aws apigateway get-export --parameters file://data.json --rest-api-id APIID --stage-name dev --export-type swagger C:\ temp \ export.json
使用它,最终解决了我的问题 - 我期待在即将推出的版本之一中修复。
PS - 目前是最新版本:
aws --version
aws-cli/1.11.44 Python/2.7.9 Windows/8 botocore/1.5.7
答案 1 :(得分:0)