自定义授权方在与 AWS Chalice 一起使用时不起作用
Custom Authorizer not working when used with AWS Chalice
我正在使用 AWS Custom Authorizer 来保护 lambda 函数。由于某些配置问题,我无法使用自定义授权方。
当我尝试从 API 网关控制台附加授权方时,它工作正常。当授权者从代码附加时,它不会给出任何错误。我尝试检查 cloudwatch 日志,日志不是为 lambda 函数生成的(对于 authorizer 和 helloworld 函数)。
下面是我写的示例代码:
from chalice import Chalice
from chalice import CustomAuthorizer
app = Chalice(app_name='helloworld-python')
authorizer = CustomAuthorizer(
'MyCustomAuth', header='Authorization',
authorizer_uri=('arn:aws:apigateway:{region}:lambda:path/2015-03-31'
'/functions/arn:aws:lambda:{region}:{account-id}:'
'function:{function-name}/invocations'))
@app.route('/test/test_authorizer', authorizer=authorizer)
def index():
return {'hello': 'world'}
我配置了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"*"
]
}
]
}
我无法将授权方添加到 lambda 函数。当我触发端点时,出现以下错误:
End Point:
https://{rest-api-id}.execute-api.{region}.amazonaws.com/dev/test/test_authorizer
Http method: GET
Error Code: 500.
Error body: {
"message": null
}
我怎样才能做到这一点。请提供正确的信息给我。
看到这个问题:https://github.com/aws/chalice/issues/670#issuecomment-573637135
或者,有一个解决方法
- 打开 Aws 控制台
- 去亚马逊API网关,
- 在右侧点击'Authorizers'
- 点击'Edit'授权人
- 点击保存并再次测试。
我正在使用 AWS Custom Authorizer 来保护 lambda 函数。由于某些配置问题,我无法使用自定义授权方。
当我尝试从 API 网关控制台附加授权方时,它工作正常。当授权者从代码附加时,它不会给出任何错误。我尝试检查 cloudwatch 日志,日志不是为 lambda 函数生成的(对于 authorizer 和 helloworld 函数)。
下面是我写的示例代码:
from chalice import Chalice
from chalice import CustomAuthorizer
app = Chalice(app_name='helloworld-python')
authorizer = CustomAuthorizer(
'MyCustomAuth', header='Authorization',
authorizer_uri=('arn:aws:apigateway:{region}:lambda:path/2015-03-31'
'/functions/arn:aws:lambda:{region}:{account-id}:'
'function:{function-name}/invocations'))
@app.route('/test/test_authorizer', authorizer=authorizer)
def index():
return {'hello': 'world'}
我配置了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"*"
]
}
]
}
我无法将授权方添加到 lambda 函数。当我触发端点时,出现以下错误:
End Point: https://{rest-api-id}.execute-api.{region}.amazonaws.com/dev/test/test_authorizer
Http method: GET
Error Code: 500.
Error body:
{ "message": null }
我怎样才能做到这一点。请提供正确的信息给我。
看到这个问题:https://github.com/aws/chalice/issues/670#issuecomment-573637135
或者,有一个解决方法
- 打开 Aws 控制台
- 去亚马逊API网关,
- 在右侧点击'Authorizers'
- 点击'Edit'授权人
- 点击保存并再次测试。