- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将在 Elastic Beanstalk 上运行 Rails 应用程序,并且同时拥有 Web 和 Sidekiq Worker 环境。问题是,由于它们共享相同的代码,我需要在工作环境上运行一些特定的 ebextensions(以初始化工作进程和所有内容)以及 Web 上的一些特定脚本(以初始化应用程序服务器和所有内容)。
如何根据 EB 上的环境运行特定的 ebextension,或者分离两个脚本并告诉 Elastic Beanstalk 根据环境运行。
sidekiq Worker 是否需要位于 Web 服务器的同一个 APP 中,但位于不同的 ENV 上?例如:我的应用程序环境暂存env_staging_worker环境产品env_prod_worker
Sidekiq 工作线程应该部署为工作线程还是 webapp EB 环境? (AWS 默认情况下不支持 sidekiq 工作线程)。
如何将 Sidekiq Worker 连接到应用程序,例如将 env_staging 连接到 env_staging_worker,将 env_prod 连接到 env_prod_worker?
如果您能提供有关架构的详细信息或您可以提供的任何帮助,我将不胜感激。
最佳答案
如果您想坚持使用 Sidekiq 作为工作线程后端,则无需启动额外的 Elastic Beanstalk 工作线程环境。您可以在 Web 环境中启动 Sidekiq 进程。请看看这个question and answers from a similar situation .
关于 Elastic Beanstalk Web 和工作环境背后的实际想法和架构,我将尝试总结 Amazon 的 official documentation :
Web 环境托管 HTTP 服务器和响应用户 HTTP 请求的 Web 应用程序。
工作环境托管一个应用程序(可以与 Web 应用程序相同,但不是必须),该应用程序执行后台作业、长时间运行的任务等。
Web 和 Worker 环境应通过 Amazon SQS message queue 连接(额外的 AWS 功能/服务)。您的 Web 应用程序应将消息发送到此队列,并且工作环境将使用此队列中的消息。当您启动工作线程环境时,您可以选择它应连接到哪个 SQS 队列。 Elastic Beanstalk 将自动安装并启动一个守护程序,该守护程序使用此队列中的消息并将其转换为 HTTP POST 请求。这些请求将发送到本地主机和您也可以定义的路径。请求的正文将包含队列中消息的内容。您的应用程序应该解析内容并相应地触发后台作业。
你看,这实际上会使 Sidekiq 过时,因为 SQS 队列将处理排队逻辑。
如果您不限于使用 Sidekiq 并且您的应用程序是使用 Rails >= 4.2 编写的,那么您可以使用 Active Elastic Job gem 用于您的后台任务。它负责所有消息发送和解析,并允许您保持部署设置简单。无需编写和维护 ebextension 脚本。
关于amazon-web-services - Elastic Beanstalk - 如何根据环境和 Sidekiq Worker 运行特定的 ebextensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615932/
我正在尝试将我的应用程序上载到Elastic Beanstalk,但是在节点预gyp安装--fallback-to-build上,npm安装失败。我尝试了各种版本的节点,但无济于事。似乎正在尝试获取一
每当我在 Elastic Beanstalk 中创建新环境时,我都会手动配置自定义 AMI ID、SNS 通知等,但我想自动完成,即,将设置(自定义 AMI ID、SNS、 key 对等)保存到一个配
我已使用以下方法连接到 Elastic Beanstalk: eb ssh XXXXXX --profile=xx 现在我想将一个文件复制到我的本地机器上,我该怎么做? 最佳答案 找出与 scp 一起
对于典型的 Java Web 应用程序,使用 Elastic Beanstalk 相对于手动创建 EC2 实例、设置 tomcat 服务器和部署等有哪些优势?负载平衡、监控和自动缩放是唯一的优势吗?
我有两个Elastic Search版本,一个是 7.3 ,另一个是 7.1 。我正在将flattened数据类型用于 Elastic Search 7.3 ,并且我也想在 Elastic Searc
我是 Elastic 和 spring-data-elastic 的新手。我一直在此处和网络的其他区域进行搜索,但到目前为止尚未找到我的问题的答案。我希望 SO 能够提供帮助。 我正在为我的Users
我有一个运行 PHP 的弹性 beanstalk 环境。在我的项目中,我有一个 .ebextensions 文件夹和一个名为“15-memorymonitor.config”的文件,其中包含以下内容;
我有 “更新”:Dockerrun.aws.json 中的“真” 当我更新 ECR 中的图像时,它应该自动更新 EC2 iontance 中的图像和容器。 但是当我在推送新图像后通过 ssh 进入实例
我有一个定义 Elastic Beanstalk 应用程序的 CloudFormation 模板。 我想扩展这个应用程序,即我希望端口 80 上的监听器重定向到 HTTPS。 AWS::Elastic
我在使用自定义 .ebextensions 文件部署 EB 实例时遇到问题。这是该文件中的相关部分: container_commands: 01_migrate: command: 'p
我已经使用带负载均衡器的 Elastic Beanstalk 创建了一个环境,并在各自的配置中分配了所有健康检查值 我也为ELB设置了应用健康检查url 但是当我检查自动缩放组配置时,健康检查类型是
我想使用 OpenTelemetry 将跟踪/指标数据导出到 Elastic Search,但我更愿意避免使用 Elastic APM。是否可以?opentelemetry 贡献 repo显然暗示这是
我正在尝试部署我的 角申请通过GitHub Actions到 Elastic Beanstalk 。我正在使用这个 GitHub actions用于部署到 ELB。 我的问题是,部署失败,因为 ELB
我已阅读有关 Deploying Versions with Zero Downtime 的 AWS 文档,又名 CNAME 交换。 如 yegor256在 this answer 中有解释: The
我们在我们的一个应用程序服务器上安装了 Elastic 5.6.10 和 HibernateSearch ORM 5.11.4.Final,现在我们计划通过我们的一个微服务(spring boot,但
我正在使用 AWS Elastic beanstalk 并希望为不同的环境配置不同的 ENV 变量。我发现的唯一方法是使用 ebextensions,但如果我将同一个数据包部署到多个环境,则无法覆盖在
我有一个应用程序,其中包含 nodejs 和 php 代码。 nodejs 用于运行应用程序所需的几个脚本。我如何使用 aws Elastic beanstalk 部署此类应用程序? 最佳答案 有两种
我打算将 MP4(1920x1080,比特率可能因 mp4 而异)转换为 HLS(不同类型的分辨率)。 不同类型的分辨率,我正在寻找 1080p = 1920x1080 720p = 1280x720
我不断收到以下消息。但是在我的 nginx 日志中没有任何内容表明返回的请求状态为 5xx。此外,应用程序似乎按预期工作。我可能会得到这些的任何指示? 留言: Environment health h
我们如何使用 bitbucket 管道更新 aws elastic beanstalk 上的 asp.net 核心网站? 最佳答案 我知道这是迟到的答案,但几天前我做了同样的事情,所以这里是我是如何做
我是一名优秀的程序员,十分优秀!