问题标签 [ebextensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
241 浏览

amazon-web-services - Elastic Beanstalk 扩展:命令何时完成?

我有一个 AWS Elastic Beanstalk 设置,其中包含一些.ebextensions文件container_commands。这些命令之一是脚本。脚本完成,但下一个命令未运行。

如您所见,我的脚本是一个缺陷僵尸,但cfn-init没有为它进行 wait(2) 系统调用。

当我从命令行运行脚本时,它会正确终止。

我不得不假设cfn-init正在获取SIGCHLD. 为什么不等待(2)继续前进?

另外,有没有更好的方法来调查这个?我一直在查看正在运行的进程并阅读完全无用的/var/log/eb-*日志。

FWIW,脚本很简单:

它 nohups 的事情非常简单:

$RDS_USERNAME | tee ~ec2-user/nhlog > ~ec2-user/fifo

0 投票
0 回答
97 浏览

apache - AWS ebextensions 创建带有 logfomat 更改的 httpd.conf,如 AWS 文档中所述。但是apache日志打印了两次

我正在使用 AWS ElasticBeanstalk 进行产品部署。

我想在 apache 访问日志中为每个请求添加响应时间。根据 AWS 文档,我在源包中创建了一个配置文件.ebextensions/httpd/conf/httpd.conf(采用默认文件并修改了日志格式)

生成响应时间,但日志语句打印两次。

提前致谢。

0 投票
1 回答
293 浏览

windows - 从 .ebextensions 将可执行文件添加到 Windows PATH,然后在后续命令中调用可执行文件

我有一个 Windows Elastic Beanstalk 实例。commands.config我的项目中有以下内容.ebextensions

这两个命令正在工作。但是,我也有一个container-commands.config文件需要调用choco,但由于'choco' is not recognized as an internal or external command

如何获取后续命令以获取更新的PATH? 是否有更合适的方法来安装二进制文件并将它们设置为PATH在 ESB 实例创建期间的窗口?

我试图关注https://aws.amazon.com/blogs/developer/using-nuget-and-chocolatey-package-managers-in-aws-cloudformation-and-aws-elastic-beanstalk/

但即使这样也给了我类似的错误。

0 投票
0 回答
536 浏览

amazon-web-services - 在 .ebextensions 中调试 PowerShell 脚本

我正在尝试按照https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/SSLNET.SingleInstance.html上的说明在Elastic Beanstalk 开发实例上安装自签名证书。也就是说,我有(除了那里列出的其他先决条件),一个 .ebextensions/https-instance-dotnet.config 文件的形式:

我正在使用 AWS Toolkit 从 Visual Studio 发布到 AWS EB,但没有看到错误。根据 YAML 验证器,该文件的格式似乎正确。但我无法判断脚本是否正常工作,甚至是否正在运行,或者是否在我的环境中创建了 C:\certs\install-cert.ps1 和 log.txt。

我的问题是:我如何调试或跟踪它,以便我可以看到(例如)Echo 命令的结果?

0 投票
2 回答
1602 浏览

amazon-web-services - 如何在 .ebextensions 配置中为 crontab 多个环境使用条件(AWS Elastic Beanstalk)

我想在cron.config文件中添加一个条件。ENV_ID如果环境 ID 与生产服务器匹配,我需要检查(环境 ID)然后 cron 将在 crontab 中设置,否则 cron 将不设置检查。

cron.config

crontab

另外,我检查条件,但现在可以工作。

我无法找到缺少的内容和错误的脚本。

0 投票
1 回答
56 浏览

amazon-web-services - Elastic Beanstalk 实例未附加到自定义负载均衡器

我有一个带有以下.ebextensions配置文件的 Elastic Beanstalk 实例来设置自定义负载均衡器。

但是,每当重建 beanstalk 环境时,我的自定义负载均衡器都会按定义创建,但是 EC2 实例本身并未附加到它。

如何让实例使用我的自定义负载均衡器?

0 投票
1 回答
762 浏览

django - 使用 ebextensions 验证 apache 服务器的 HTTP_HOST 标头

我有一个托管在 AWS 上的 Django 应用程序。我使用 Elastic Beanstalk 并使用.ebextensions/django.config文件来输入我的所有自定义服务器端设置。

我已经ALLOWED_HOSTS设置好,如果有人试图从无效的主机头连接到我的网站,他们会被 Django 阻止。

我收到各种 Django 错误记录电子邮件说Invalid HTTP_HOST header: 123.456.789。-- 本质上是试图连接和/或上传恶意内容的机器人/扫描程序。

我想在服务器端阻止这些不良请求,因为拥有额外的阻止层似乎更安全,而且我不喜欢收到所有的电子邮件。

Django 文档中,他们写道“[他们建议] 配置您的 Web 服务器以确保它验证传入的 HTTP 主机标头。” 我想在我的.ebextensions/django.config文件中这样做。

这是我当前的.ebextensions/django.config文件:

我相信这都是 apache 配置。我在这个主题上找到了这个 SO 答案,上面写着“拒绝没有设置主机的请求,你可以使用:”

但是,我不确定该代码在做什么(以及它是否是我需要的),以及如何将其转换为 .ebextensions。

最终,我想找出可以添加到 .ebextensions 文件中的内容,以使其在 HTTP_HOST 标头到达 Django 之前对其进行验证。

0 投票
0 回答
2043 浏览

amazon-web-services - 如何在 ebextensions 中最好地使用 AWS Secrets Manager?

我希望使用 AWS Secrets Manager 来获取密钥并将它们设置为我的 Elastic Beanstalk 实例上的环境变量。

我在 ebextensions 文件上编写了一个脚本,该脚本调用 Secrets Manager CLI 来获取我的密钥,并使用该密钥填充我的 EB 实例的 env 变量。由于它是 linux 实例,我正在尝试export ENV_VAR_NAME=env_value. 这是我到目前为止所拥有的:

当我在 中运行脚本时container_commands,会打印出正确的环境变量,因为它是我在脚本中设置的环境变量以及我在 EB AWS 控制台上的 EB 环境变量中设置的内容。但是,在我的应用程序中打印它们时,我看不到我通过脚本设置的环境变量。

当我在 中运行脚本时commands,我似乎根本没有写入正确的环境变量集。

有没有办法按照我在这里尝试的方式设置 EB 环境变量?也许我应该使用一个特殊的命令而不是export

0 投票
1 回答
601 浏览

amazon-web-services - 如何通过 ebextensions 覆盖 Elastic Beanstalk 环境变量?

我的 EB 环境有一些我通过 AWS Web 控制台设置的环境变量。但是,我现在希望通过 ebextensions 设置这些环境变量。

问题是我似乎无法覆盖我最初通过 AWS Web 控制台设置的变量。

不过,覆盖由 ebextensions 显式设置的环境变量很好。

这是我的 ebextensions 文件的外观:

newVar每当我更新我的 ebextensions 文件时更新。但是oldVar,我通过控制台设置的 var 拒绝更新。

关于如何让 ebextensions 按需要工作的任何想法?我真的很想避免这样一种情况,即我必须删除我以前设置的环境变量并使用 ebextensions 更改快速部署更新。谢谢。

0 投票
1 回答
133 浏览

devops - 为什么在使用 AWSJavaScriptSDK 时忽略 ElasticBeanstalk .ebextensions?

当使用 AWS JavaScript SDK 更新 ElasticBeanstalk 环境时,我.ebextensions/*被忽略了。我将应用程序源包作为 .zip 文件上传到 S3,这会触发 Lambda 使用以下代码部署新的应用程序版本:

在 AWS 管理控制台中上传相同的源包时,我的所有内容.ebextensions都按预期执行。

*.config 文件内部没有什么特别之处。我只是根据环境变量创建一些文件以供以后使用,例如

因此,/home/ec2-user/prepare_key.sh不会生成(或更新)文件,并且set_up不会在 Lambda 部署期间执行命令。

我仔细检查了源包。我所有的.ebextensions/*.config文件都在那里。我的项目目录中没有.ebignore文件。