自定义授权器与AWS Chalice一起使用时不起作用

时间:2019-07-08 12:11:43

标签: python aws-lambda aws-api-gateway chalice lambda-authorizer

我正在使用AWS Custom Authorizer来保护lambda函数。由于某些配置问题,我无法使用自定义授权器。

当我尝试从API Gateway Console附加授权者时,它工作正常。从代码附加授权者时,它没有给出任何错误。我尝试检查cloudwatch日志,但未为lambda函数(对于授权者和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函数。当我触发端点时,它给了我以下错误:

  

终点:   https:// {rest-api-id} .execute-api。{region} .amazonaws.com / dev / test / test_authorizer

     

Http方法:GET

     

错误代码:500。

     

错误正文:{ "message": null }

如何实现这一目标。请为我提供适当的信息。

1 个答案:

答案 0 :(得分:1)

看到此问题:https://github.com/aws/chalice/issues/670#issuecomment-573637135

或者,有一种解决方法

  1. 打开Aws控制台
  2. 转到Amazon API Gateway,
  3. 在右侧单击“授权者”
  4. 点击“编辑”授权人
  5. 单击“保存并再次测试”。