ruby-on-rails - Searchkick AWS凭证到期

标签 ruby-on-rails amazon-web-services elasticsearch searchkick aws-sdk-ruby

我已经通过elasticsearch.rb初始化器使用以下aws_credentials进行设置。

  Searchkick.aws_credentials = {
    credentials: Aws::InstanceProfileCredentials.new.credentials,
    region: 'us-west-2',
  }

当我第一次重新部署时,此方法工作正常,但是在12小时后,我的凭据过期,并且最终出现了以下错误:
Elasticsearch::Transport::Transport::Errors::Forbidden ([403] {"message":"The security token included in the request is expired"})

鉴于我的一组凭据的有效期似乎为12小时,因此这是有道理的。 Aws::InstanceProfileCredentials.new.expiration = 2020-02-13 21:36:30 UTC
鉴于我想继续轮换凭证,我如何让Searchkick为每个请求提取最新的凭证?

最佳答案

传入整个Aws::InstanceProfileCredentials可以解决此问题

  Searchkick.aws_credentials = {
    credentials: Aws::InstanceProfileCredentials.new,
    region: 'us-west-2',
  }

关于ruby-on-rails - Searchkick AWS凭证到期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60211747/

相关文章:

java - ElasticSearch - JavaApi 按每个字符而不是术语(单词)进行搜索

ruby-on-rails - 如何在 jbuilder View 中返回空字符串而不是 null?

amazon-web-services - CodeDeploy 中的服务角色 ARN 为空

elasticsearch - ElasticSearch 可以返回单个文档数组的元素吗?

django - 使用 django-haystack rebuild_index 命令重建 ElasticSearch 索引

c# - SQS : Getting Number of message in the SQS Queue

javascript - 检查 Youtube 视频是否为直播

ruby-on-rails - Rails/Devise session 中的管理员数据由什么组成?

ruby-on-rails - Rails 4 模型有效,但不会保存?

amazon-web-services - AWS cloudformation Spot实例参数