x-api-key 仅保护部分资源
x-api-key only secures some resources
我的设置:
flask - awsLambda - zappa - api 网关
通过上述服务,我确实有一个简单的应用程序 运行。
在我的 zappa_settings.json 中,我将 'api_key_required' 设置为 true。
是否有可能设置它,我将为每个资源端点使用 api 密钥,但只有一个(swagger 文档)。
如果,是的,我实际上必须在哪里设置它。我的烧瓶应用程序中没有任何 api 键设置,所以我认为它必须在 aws.console 中的某个地方完成 - 但我找不到它。
编辑:
只是添加到正确答案(下)。如果您使用 flasgger,仅添加一个指向 /apidocs 的 public 端点是不够的。为了在没有 api 键的情况下使文档工作,我必须打开这些点:
- /apidocs 和 /apidocs/{proxy+}
- /apispec_1.json - 您的情况可能有所不同
- /flasgger_static 和 /flasgger_static/{proxy+}
是的,这可以通过在 AWS 控制台中进行一些配置来实现。
在您的 API 网关设置中,您可能拥有使用 Zappa 部署创建的默认资源:/
和 /{proxy+}
。
您现在可以手动创建与您的文档端点对应的新资源(例如 /docs
)。
单击 "Actions" -> "Create Resource" 您可以创建新资源:
资源创建完成后,点击"Actions" -> "Create Method",选择"ANY"。在对话框中将方法和资源指向您的 Lambda 函数。
默认情况下,新资源不需要 API 键。
注意:您可能需要在更改生效之前重新部署网关。 "Actions" -> "Deploy API".
我的设置:
flask - awsLambda - zappa - api 网关
通过上述服务,我确实有一个简单的应用程序 运行。 在我的 zappa_settings.json 中,我将 'api_key_required' 设置为 true。
是否有可能设置它,我将为每个资源端点使用 api 密钥,但只有一个(swagger 文档)。
如果,是的,我实际上必须在哪里设置它。我的烧瓶应用程序中没有任何 api 键设置,所以我认为它必须在 aws.console 中的某个地方完成 - 但我找不到它。
编辑: 只是添加到正确答案(下)。如果您使用 flasgger,仅添加一个指向 /apidocs 的 public 端点是不够的。为了在没有 api 键的情况下使文档工作,我必须打开这些点:
- /apidocs 和 /apidocs/{proxy+}
- /apispec_1.json - 您的情况可能有所不同
- /flasgger_static 和 /flasgger_static/{proxy+}
是的,这可以通过在 AWS 控制台中进行一些配置来实现。
在您的 API 网关设置中,您可能拥有使用 Zappa 部署创建的默认资源:/
和 /{proxy+}
。
您现在可以手动创建与您的文档端点对应的新资源(例如 /docs
)。
单击 "Actions" -> "Create Resource" 您可以创建新资源:
资源创建完成后,点击"Actions" -> "Create Method",选择"ANY"。在对话框中将方法和资源指向您的 Lambda 函数。
默认情况下,新资源不需要 API 键。
注意:您可能需要在更改生效之前重新部署网关。 "Actions" -> "Deploy API".