我在Beanstalk中部署的Node应用程序的根目录下添加了一个scripts.config文件到.ebextensions。我没有在控制台中看到EC2实例的标签。我也没有在beanstalk日志中看到任何提及1_add_tags的内容。我做错了什么以及如何确定script.config中的命令是否完全被调用了!
.ebextensions中的配置文件如下....
01_add_tags:
command: ec2-create-tags $(ec2-metadata -i | cut -d ' ' -f2) --tag Environment=Production --tag Name=Proxy-Server --tag Application=something
ENV:
EC2_HOME: /opt/aws/apitools/ec2
EC2_URL: https://ec2.ap-southeast-2.ama...
JAVA_HOME: /usr/lib/jvm/jre
PATH: /bin:/usr/bin:/opt/aws/bin/
干杯,
Prabin
答案 0 :(得分:4)
您可以利用ebextensions在实例启动时执行某些命令。 假设您要在基于Linux的容器上实现此功能。我已经为您制定了一个示例配置文件,并附在此案例中。
请遵循以下指南:
示例摘录如下:
{
"container_commands": {
"01_add_tags": {
"command": "aws ec2 create-tags --resources $(GET http://169.254.169.254/latest/meta-data/instance-id) --tags Key=ClientName,Value=testClient Key=NewTag,Value=new-value --region us-east-1"
}
}
}
请注意,我们正在使用“Container_commands”而不是博客中使用的“Command”。 在设置应用程序和Web服务器并且已提取应用程序版本文件之后但在部署应用程序版本之前运行容器命令。这很重要,因为这些命令可以访问环境变量,例如实例配置文件设置的AWS安全凭证。
我建议您完成http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions中提到的AWS资源标记限制 我想强调一下,每个资源的最大标记数为10。
同时检查表格是否标记了对某些资源的支持。例如,ELB不支持当前标记。
答案 1 :(得分:0)
我遇到了类似的问题,我尝试使用./ebextensions/foo.config文件安装libjpeg。我尝试了一切,但从来没有找到一个好的解决方案。
我能够通过设置一个全新的Elastic Beanstalk应用程序然后在新实例上部署我的相同版本来解决它。当我这样做时,一切都安装得很好,工作正常。
在这里查看我的答案:
希望这也可以解决您的问题。