gpt4 book ai didi

node.js - 使用 .ebextensions 中的 .config 文件标记 AWS beanstalk 部署

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:23 26 4
gpt4 key购买 nike

我在 beanstalk 中部署的 Node 应用程序的根目录下的 .ebextensions 中添加了一个 script.config 文件。我在控制台中没有看到 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

环境:

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/

干杯,

普拉宾

最佳答案

亚马逊对问题的回答。 (这对我有用)...

您可以利用 ebextensions 在实例启动时执行某些命令。假设您想在基于 Linux 的容器上实现这一点。我为您制定了一个示例配置文件并附在本案例中。

请遵循以下准则:

  1. 在 AWS 管理控制台中,检查 beanstalk 使用的 IAM 角色/实例配置文件。默认情况下,它使用“aws-elasticbeanstalk-ec2-role”。为该角色添加创建新标签的权限 (ec2:CreateTags)。
  2. 如果您的应用程序根目录下没有“.ebextensions”文件夹或“WEB-INF”文件夹,请创建该文件夹。
  3. 修改配置文件中的键值对。多个对之间用空格分隔。

示例片段如下:

   {
"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"
}
}
}
  1. 将修改后的配置文件添加到“.ebextensions”文件夹中。
  2. 将此版本上传到 beanstalk。它应该启动新实例并执行配置文件。
  3. 请给它一些时间,最好等到实例通过 EC2 实例状态检查。刷新页面即可显示其他标签。

请注意,我们使用的是“Container_commands”而不是博客中使用的“Command”。容器命令在设置应用程序和 Web 服务器并且提取应用程序版本文件之后、部署应用程序版本之前运行。这很重要,因为这些命令可以访问环境变量,例如实例配置文件设置的 AWS 安全凭证。

我建议您仔细阅读 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions 中提到的 AWS 资源标记限制。我想强调的是,每个资源的最大标签数量为 10。

另请检查该表以了解对某些资源的标记支持。例如,目前 ELB 不支持标记。

关于node.js - 使用 .ebextensions 中的 .config 文件标记 AWS beanstalk 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com