如何在 Fargate 容器中启动 Rails 控制台

Fre*_*ais 7 console ruby-on-rails amazon-web-services amazon-ecs aws-fargate

我想在 Fargate 容器中打开 Rails 控制台以与我的生产安装进行交互

然而,在搜索网络并在 AWS 论坛上发帖后,我找不到这个问题的答案

有谁知道我该怎么做?这似乎是任何生产环境中都必须具备的东西,但对于像 AWS 这样受人尊敬的云提供商却没有简单的方法来做到这一点,这有点令人惊讶

谢谢

BTL*_*BTL 8

[2021 年更新]:现在可以使用 AWS Fargate 以交互模式运行命令!

新闻: https: //aws.amazon.com/fr/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/

运行的命令是:

aws ecs execute-command \
  --cluster cluster-name \
  --task task-id \
  --container container-name \ # optional
  --interactive \
  --command "rails c"
Run Code Online (Sandbox Code Playgroud)

故障排除

检查 AWS 文档以获取 IAM 权限:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-precessions


Fre*_*ais 5

经过尝试很多事情后,我找到了一种打开指向我的生产环境的 Rails 控制台的方法,因此我将其发布在这里,以防有人遇到相同的问题

总而言之,我添加了一个部署在连接到 RDS postgres 数据库的 Fargate 上的 Rails 应用程序

我所做的是为托管我的 Rails 应用程序和 RDS 数据库的 VPC 创建一个 VPN 客户端端点

然后,在连接到此 VPN 后,我只需运行我的 Rails 生产容器(具有相同的环境变量),覆盖容器命令来运行控制台启动脚本 ( bundle exec rails c production)

在我的本地计算机上运行时,我通常可以将 TTY 连接到此容器并访问我的生产控制台

我认为这个解决方案很好,因为它允许任何从事该项目的开发人员打开控制台而不会产生任何成本,并且AWS端的完善的安全策略确保控制台访问是安全的,而且您不必暴露您的数据库位于 VPC 之外

希望这对某人有帮助