【问题标题】:How do I tell my Elastic Beanstalk instance not to go to sleep?如何告诉我的 Elastic Beanstalk 实例不要进入睡眠状态?
【发布时间】:2017-01-17 22:52:13
【问题描述】:

我在 .NET (Windows/IIS) 平台上设置了一个 Elastic Beanstalk 实例。我在那里部署了一个 .NET Core 应用程序,它做了两件事:

  1. 以 Hello world 响应!当我到达终点时 - 但我不在乎。
  2. 为 RabbitMQ(也托管在 AWS 中)设置侦听器。每次我在 RabbitMQ 中发送消息时,此侦听器都会触发一条 SMS。

第 2 项效果很好 - 我发送了一条消息,不到一秒钟后,我在手机上收到了一条 SMS 消息。

问题在于 AWS 在一段时间不活动后让应用程序进入睡眠状态。这会导致 RabbitMQ 侦听器也进入睡眠状态。这会导致 SMS 消息未送达。直到我通过转到 Elastic Beanstalk 分配给我的 URL 来唤醒实例。

如何让我的 Elastic Beanstalk 实例不进入睡眠状态?我可以从 C# 代码中调用什么来阻止它这样做吗?

【问题讨论】:

  • AWS 不会因为不活动而使 Elastic Beanstalk 应用程序进入睡眠状态。听起来您的应用程序配置不正确。您应该搜索在 C#/IIS 环境中通常导致此行为的原因,它不是由 AWS/Elastic Beanstalk 引起的。
  • 默认情况下,AWS 外部的 @MarkB IIS 环境将在未使用时将应用程序置于睡眠状态。但是在 IIS 设置中更改它很简单。在 Elastic Beanstalk 中,我看不到任何控件可以做到这一点。没有任何界面可做,除非我缺少一些基本的东西。
  • 您将使用此页面上描述的技术来修改该设置docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
  • @AngryHacker 你找到了如何通过 Elastic BeanStalk 配置 IIS 服务器的解决方案吗?
  • @dyesdyes 没有。可能有办法,但我转向了不同的解决方案。

标签: c# amazon-web-services iis asp.net-core amazon-elastic-beanstalk


【解决方案1】:

这是我在this article之后实现的。

  1. 在您的 api/web 项目的根目录下创建一个 .ebextensions 文件夹。
  2. 在这个项目中,任何 .config 文件都将用作弹性 beanstalk 的配置,它们将按字母顺序应用。所以创建一个包含以下内容的文件:(请参阅链接,空白很重要,我似乎无法在这里得到它......)

    命令: setIdleTimeoutToZero: cwd: "C:\windows\system32\inetsrv" 命令:“appcmd 设置 apppool /apppool.name:DefaultAppPool /.processModel.idleTimeout:0.00:00:00”

  3. 确保始终将文件复制到输出。

  4. 您应该一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多