【问题标题】:How to set authorization to queryESFunction in Amazon ElasticSearch while deploying the application?部署应用程序时如何在 Amazon ElasticSearch 中设置对 queryESFunction 的授权?
【发布时间】:2021-02-01 11:16:55
【问题描述】:

我正在使用此博客作为参考构建一个可搜索的企业文档存储库:https://aws.amazon.com/blogs/compute/creating-a-searchable-enterprise-document-repository/

创建 Amazon ElasticSearch 域是成功的。 我也创建了一个 S3 存储桶。 我正在使用这个 repo(在博客中指定):https://github.com/aws-samples/s3-to-lambda-patterns/tree/master/docrepository 但是,部署应用程序不起作用。

我使用正确的存储桶名称和 ESdomain 更新了“samconfig.toml”文件。

“sam deploy”命令导致失败。 错误:queryESFunction 可能没有定义授权。 我应该进行哪些更改才能完成这项工作?

我认为我们可能需要在 'template.yaml' 文件中设置一些授权,但我应该在那里设置什么属性?

【问题讨论】:

    标签: amazon-web-services elasticsearch amazon-s3 aws-lambda


    【解决方案1】:

    报错说应用配置了API网关,API未经授权。

    这里有几个选项(未测试):

    1. 按照here 的描述定义 Lambda 请求授权方。

    2. 尝试在您的 template.yaml(api 资源)中禁用身份验证:

      Resources:
        MyApi:
          Type: AWS::Serverless::Api
          Properties:
            StageName: Dev
            Auth:
              Authorizer: 'NONE'
      
    3. 运行命令sam deploy --guided。按照屏幕提示操作,直到看到 queryESFunction 可能没有授权定义提示。

    对于提示HelloWorldFunction可能没有定义授权, 这个可以吗? [y/N] AWS SAM 通知您该示例 应用程序未经授权配置 API Gateway API。什么时候 您部署示例应用程序,AWS SAM 创建一个公开的 可用的网址。

    您可以通过对提示回答“Y”来确认此通知。 有关配置授权的信息,请参阅控制对 API 网关 API。

    来自Deploy your application to the AWS Cloud

    【讨论】:

    • @Sathyapriyan C 运气好吗?
    • 它没有用。使用第 2 点,我更新了我的 template.yaml 文件,但我得到了同样的错误。使用第 3 点,我再次遇到同样的错误。第 1 点似乎有点复杂。我阅读了链接中的指南,但无法清楚地理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多