#terraform #aws-security-group #terraform0.12
#terraform #aws-security-group #terraform0.12
Вопрос:
Я пытаюсь запросить список групп безопасности, используя источник данных в terraform verson 12. Получение приведенной ниже ошибки при планировании terraform.
variable "name" {
default = "test"
}
variable "region" {
default = "eu-west-1"
}
data "aws_security_groups" "test" {
filter {
name = "tag:Name"
values = ["${format("sg_%s_*_vpc%s-public", var.name, var.region)}"]
}
}
вывод aws ec2 describe-security-groups --group-ids "sg-0242e0b30a83d663c" "sg-06a144e01ca1fec0c" "sg-0d0fd65e511a59721"
{
"SecurityGroups": [
{
"Description": "bar",
"GroupName": "sg_test_foo_vpceu-west-1-public",
"IpPermissions": [],
"GroupId": "sg-0242e0b30a83d663c",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": []
}
],
"Tags": [
{
"Key": "Name",
"Value": "sg_test_foo_vpceu-west-1-public"
}
],
"VpcId": "vpc-3053cb58"
},
{
"Description": "foo",
"GroupName": "sg_test_bar_vpceu-west-1-public",
"IpPermissions": [],
"GroupId": "sg-0d0fd65e511a59721",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": []
}
],
"Tags": [
{
"Key": "Name",
"Value": "sg_test_bar_vpceu-west-1-public"
}
],
"VpcId": "vpc-3053cb58"
},
{
"Description": "test-sg",
"GroupName": "sg_test_foobar_vpceu-west-1-public",
"IpPermissions": [],
"GroupId": "sg-06a144e01ca1fec0c",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": []
}
],
"Tags": [
{
"Key": "Name",
"Value": "sg_test_foobar_vpceu-west-1-public"
}
],
"VpcId": "vpc-3053cb58"
}
]
}
Когда я запускаю план terraform, я получаю следующее сообщение.
Ваш запрос не вернул результатов. Пожалуйста, измените критерии поиска и повторите попытку
Похоже, terraform не понравилось, как я использовал функцию форматирования.
Не мог бы кто-нибудь помочь мне с этим, пожалуйста? Спасибо.
Также попробовал приведенный ниже формат, но ни один из них не работал.
data "aws_security_groups" "sg" {
filter {
name = "group-name"
values = ["sg_test_bar_vpceu-west-1-public"]
}
filter {
name = "vpc-id"
values = ["vpc-3053cb58"]
}
}
data "aws_security_groups" "sg_1" {
filter {
name = "tag:Name"
values = ["sg_test_bar_vpceu-west-1-public"]
}
filter {
name = "vpc-id"
values = ["vpc-3053cb58"]
}
}
data "aws_security_groups" "sg_2" {
tags = {
Name = "sg_test_bar_vpceu-west-1-public"
}
filter {
name = "vpc-id"
values = ["vpc-3053cb58"]
}
}
Комментарии:
1. Каково фактическое имя группы?
2. Также убедитесь, что вы не путаете имя группы SG с тегом ключа
Name
SG . Вы используете последнее.3. Пожалуйста, не могли бы вы отредактировать свой вопрос, включив в него вывод о
aws ec2 describe-security-groups --group-ids ...
том, где вы ищете конкретные группы безопасности, которые Terraform должен найти с помощью этого источника данных?4. @ydaetskcoR я добавил вывод. Не могли бы вы взглянуть на это?