Elastic Beanstalk:自定义Puma配置

mil*_*ner 4 ruby-on-rails amazon-web-services puma amazon-elastic-beanstalk

当前用于Ruby + Puma的Beanstalk解决方案堆栈使用处的配置文件,/opt/elasticbeanstalk/support/conf/pumaconf.rb并忽略config/puma.rbRails应用程序目录中的内部。

我可以用一个自定义的通孔覆盖上面的文件,.ebextensions但很犹豫,因为我想避免损坏,以防PID或(更重要的是-)unix套接字文件的路径在即将推出的解决方案堆栈版本中发生更改。

在Beanstalk上自定义Puma配置的最佳实践是什么?

ant*_*gel 6

在 Amazon Linux 2 上,您可以使用Procfile来执行此操作,例如

web: puma -C /var/app/current/config/puma.rb

有关更多信息,请参阅https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html上的文档。


Bri*_*ian 5

我们使用Ruby + Passenger,但这听起来与您的情况足够相似。我们需要自定义存储在的nginx配置文件/opt/elasticbeanstalk/support/conf/nginx_config.erb,因此我们通过.ebextensions和进行操作sed

这是一个使您入门的示例:

.ebextensions / 01-edit-nginx.config

container_commands:
  01backup_config:
    command: "cp -n /opt/elasticbeanstalk/support/conf/nginx_config.erb /opt/elasticbeanstalk/support/conf/nginx_config.erb.original"
  02edit_config:
    command: "sh -c \"sed '/string_to_insert_text_after/ i\
\    text_to_be_inserted;' /opt/elasticbeanstalk/support/conf/nginx_config.erb.original > /opt/elasticbeanstalk/support/conf/nginx_config.erb\""
Run Code Online (Sandbox Code Playgroud)

这将创建配置文件的备份副本(由于存在-n标记,因此不会覆盖该文件),然后在“ string_to_insert_text_after”行之后插入“ text_to_be_inserted”行。您可以通过管道将多个sed命令一起插入多行。