amazon-web-services - 部署应用程序时如何在 Amazon ElasticSearch 中设置对 queryESFunction 的授权?
问题描述
我正在使用此博客作为参考构建可搜索的企业文档存储库:https ://aws.amazon.com/blogs/compute/creating-a-searchable-enterprise-document-repository/
创建 Amazon ElasticSearch 域是成功的。我也创建了一个 S3 存储桶。我正在使用此存储库(如博客中所述):https ://github.com/aws-samples/s3-to-lambda-patterns/tree/master/docrepository 但是,部署应用程序不起作用。
我用正确的存储桶名称和 ESdomain 更新了“samconfig.toml”文件。
命令“sam deploy”导致失败。错误:queryESFunction 可能没有定义授权。 我应该进行哪些更改才能完成这项工作?
我认为我们可能必须在“template.yaml”文件中设置一些授权,但我应该在那里设置什么属性?
解决方案
该错误说应用程序配置了一个API网关,API未经授权。
以下是一些选项(未经测试):
按照此处所述定义 Lambda 请求授权方。
尝试在您的 template.yaml(api 资源)中禁用身份验证:
Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Dev Auth: Authorizer: 'NONE'
运行命令
sam deploy --guided
。按照屏幕上的提示操作,直到您看到 queryESFunction 可能没有授权定义提示。
对于提示 HelloWorldFunction 可能没有定义授权,可以吗?[y/N] AWS SAM 通知您,示例应用程序在未经授权的情况下配置了 API Gateway API。当您部署示例应用程序时,AWS SAM 会创建一个公开可用的 URL。
您可以通过对提示回答“Y”来确认此通知。有关配置授权的信息,请参阅控制对 API Gateway API 的访问。
推荐阅读
- java - Java Selenium - 获取跨度值
- python-3.x - 尝试在 Python 中比较两个整数
- c# - Jwt 有效载荷未加密
- c++ - 代码执行时出现代码运行错误:权限被拒绝
- azure-sql-database - AZURE SQL 托管实例中是否提供水平扩展(横向扩展)选项?
- python - 图片在 google colab 中不可见
- serilog - 是否可以将 Serilog 配置为截断(即清空)每个新进程的日志文件?
- storage - Ceph-ansible 添加新的 OSD 磁盘
- elasticsearch - Elasticsearch 更改内部时区
- paypal - Paypal - 为一个订单请求多个授权