【问题标题】:Using AWS Elastic Beanstalk custom variables in batch scripts在批处理脚本中使用 AWS Elastic Beanstalk 自定义变量
【发布时间】:2014-01-06 11:00:30
【问题描述】:

我们为一个应用程序使用 AWS Elastic Beanstalk,每个应用程序都有三个环境 test,uat 和 prod。

我们面临的问题是,每次应用程序激活缩放选项时,当缩放冷却下来时,我们都会丢失应用程序日志。

虽然我们重写应用程序以将其日志发送到 syslog 服务,但我们需要一个临时解决方案,它是通过 ebextensions 部署的批处理脚本。

批处理脚本的一部分是安排任务每天运行(目前),但我们无法传入 AWS Elastic Beanstalk 提供的自定义变量。

示例:

schtasks /create /SC daily /ST 00:00:00 /f /TN s3sync /TR "c:\s3sync.bat {PARAM2}"

我们已经尝试使用 *container_commands*,但运气为零。

示例:

02_schedule_s3sync:
  command: "c:\\s3sync.bat {$PARAM2}"

有什么建议、替代方法或解决方案最有帮助吗?

【问题讨论】:

    标签: batch-file amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    我完全忘记了这个问题,所以我会为遇到相同问题的任何人更新正确答案。

    02_schedule_s3sync: command: schtasks /create /sc hourly /st 00:00:00 /f /ru System /tn s3sync /tr "C:\s3sync.bat %PARAM2% %PARAM3% %PARAM4%" /v1

    【讨论】:

    • 这项工作是否有效,据我所知,Beanstalk 配置中指定的环境变量并未作为 EC2 环境变量公开。我打开了一个 CMD 提示符并使用了“设置”,但没有看到这些值。经过一番研究,我在 c:\inetpub\wwwroot 目录中找到了一个包含值的父 web.config。因此,它们显然只能作为 .net 配置值使用(在我的情况下)。我想按照您的建议做,还没有尝试过,但似乎行不通。这有什么更新吗?
    • 更新:我尝试了使用分配的环境变量的“命令”,但它不起作用。如果我遗漏了什么,请告诉我。
    • 更新:它确实有效,但前提是您使用的是“container_commands”。我最初使用的是“命令”。 config container_commands 上的文档证实了这一点,它确实说环境变量存在。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…。 +1
    【解决方案2】:

    自定义环境属性仅在容器内可用。设置这些属性后,它们将作为系统属性可供您的 AWS Elastic Beanstalk 应用程序使用。

    它们不能直接在 EC2 实例上使用。

    由于它只是一种解决方法,因此一种选择是将 API 添加到您的应用程序以返回参数值。

    希望对你有帮助。

    【讨论】:

    • 提到 API 触发了一个灯泡时刻。虽然我最终没有使用 API,但最终还是使用了 powershell 来获得我需要的东西。
    猜你喜欢
    • 2012-12-13
    • 1970-01-01
    • 2012-08-30
    • 2015-03-27
    • 2022-06-30
    • 1970-01-01
    • 2014-04-29
    • 2015-07-28
    • 2011-02-10
    相关资源
    最近更新 更多