ruby-on-rails 通过ECS凭据配置ActiveStorage以使用S3

rqqzpn5f  于 2023-10-21  发布在  Ruby
关注(0)|答案(1)|浏览(111)

我正在尝试配置ActiveStorage以使用ECS凭据,但找不到有关如何配置它的任何文档。
现在我有:

staging:
  service: S3
  region: "MYREGION"
  bucket: "MYBUCKETNAME"
  credentials: Aws::ESCCredentials

但我不认为这是正确的?
我正在尝试遵循ActiveStorage网站上的文档:https://edgeguides.rubyonrails.org/active_storage_overview.html#s3-service-amazon-s3-and-s3-compatible-apis这导致https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html#initialize-instance_method。我只是不知道如何设置正确的值在这里的credentials字段是。

liwlm1x9

liwlm1x91#

什么对我起作用:
storage.yml中:

staging:
  service: S3
  region: "MYREGION"
  bucket: "MYBUCKETNAME"

然后,在config/initializers中创建一个名为aws.rb的额外文件,内容如下:

require 'aws-sdk-core'

if Rails.env === 'staging' || Rails.env === 'production'
  Aws.config.update(credentials: Aws::ECSCredentials.new)
end

当然,ECS容器本身必须设置为包含必要的环境变量(这两个资源帮助我做到了这一点:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.htmlDeploying dockerised web-app on AWS with Fargate with terraform
希望这能帮助其他人尝试做类似的事情。

相关问题