我正在使用Elastic Beanstalk Go Platform部署应用程序。
我需要为实例的当前私有ip设置一个环境变量。(我需要这个环境变量才能在我的应用程序本身可用,一旦它通过{{运行1}}。)
在我的Procfile
文件中,我已经尝试过所有但尚未运气的事情:
.ebextensions/options.config
此示例将{
"option_settings": [
{
"namespace": "aws:elasticbeanstalk:application:environment",
"option_name": "PRIVATE_IP",
"value": {
"Fn::GetAtt": [
"Ec2Instance",
"PrivateIp"
]
}
}
]
}
字面设置为整个PRIVATE_IP
json字符串。功能是否在Fn::GetAtt...
中解释?还有另一种方法可以解决这个问题吗?
答案 0 :(得分:1)
我不确切知道如何在.ebextensions中实现此解决方案,但AWS有一个特殊的网址http://169.254.169.254/latest/meta-data/,您可以使用它来请求此信息。查看更多信息here。对于IP地址,您可以使用http://169.254.169.254/latest/meta-data/public-ipv4。此URL检查http源并回复您的实例信息。
我认为您可以配置YAML以发出curl请求并获取数据。但是,您可能不需要在部署时保存此信息,因为该URL在运行时可用于您的实例。您可以直接在代码中提出此请求。