我创建了一个带有lambda函数url的基本lambda。
auth_type = aws_iam
在基于lambda资源的策略中为ec2角色允许的权限。
在策略中为ec2实例创建了一个具有完全lambda权限的角色,并将其附加到ec2实例。
当从ec2调用它时,如下所示,它出现了被禁止的错误。
curl "https://<url-id>.lambda-url.<region>.on.aws"
我已尝试将auth_type设置为none。它有效,但当我尝试将auth_type作为aws_iam时不起作用。
如文档中所述,要用AWS_IAM
调用lambda url,您必须通过构造具有您签名的特殊url来对您的url请求进行签名。请查看有关如何为URL请求构造有效签名的文档。
只需在前面的答案中添加更多细节,就可以使用以下命令调用Lambda URL:
curl --aws-sigv4 "aws:amz:<REGION>:lambda"
--user "<ACCESS-KEY-ID>:<SECRET-KEY-ID>"
'https://<URL-ID>.lambda-url.<REGION>.on.aws/?message=HelloWorld'
-H 'content-type: application/json'
-d '{ "key": "value" }'
我在请求中添加了常用参数,以防您也需要传递它们。