如何解决AWS ElasticBeanstalk Terraform DisableIMDSv1未知配置设置
我正在尝试在我正在编写的ElasticBeanstalk模块中禁用IMDSv1。我正在查看可用的EB自动缩放设置选项here。它表明DisableIMDSv1是有效设置,但是当我运行terraform apply
时,它给了我这个错误。
ConfigurationValidationException: Configuration validation exception: Invalid option specification (Namespace: 'aws:autoscaling:launchconfiguration',OptionName: 'DisableIMDSv1'): Unknown configuration setting.
status code: 400
我正在使用变量来遍历我的设置,所以这就是带有DisableIMDSv1的变量代码的样子。
launch_configuration = {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "some-role"
}
disable_imds_v1 = {
namespace = "aws:autoscaling:launchconfiguration"
name = "DisableIMDSv1"
value = "true"
}
如果我注释掉disable_imds_v1部分,则可以成功运行terraform apply
。
DisableIMDSv1选项似乎是可用beantalk设置选项的新增功能。 Added June 2020。
这是terraform问题,他们没有可用的选项,或者我需要升级到terraform 0.13.x?我正在将terraform version 0.12.23
与aws provider 3.2.0
一起使用。我运行了terraform init -upgrade
,将我的AWS提供商从3.1.0提升到了3.2.0,认为可以解决该问题,但我仍然看到Unknown configuration setting
消息。
解决方法
对于基于 Amazon Linux 1 (AL1)的EB环境,我遇到了同样的问题。我认为AL1不支持该选项。但这在AL2中对我有用。
下面是我使用的示例。我还使用setting
作为设置的名称,而不是launch_configuration
和disable_imds_v1
,就像您的情况一样。
例如,我使用了aws_elastic_beanstalk_environment:
resource "aws_elastic_beanstalk_environment" "ebenv" {
# ...
# DisableIMDSv1 option will NOT work in AL1
#solution_stack_name = "64bit Amazon Linux 2018.03 v2.9.9 running PHP 7.2"
# but it will work with AL2
solution_stack_name = "64bit Amazon Linux 2 v3.1.0 running PHP 7.4"
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = aws_key_pair.key.key_name
}
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "DisableIMDSv1"
value = "true"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。