2017-10-30 5 views
0

: - 定義されたhereとして地元の人々を使用する方法について説明します。テラフォーム:私は理解しようとしています使用したローカル変数

だから、私はこのようなディレクトリ構造を持っている: 私-例/ モジュール/ テスト/ セキュリティ・グループ/ main.tf VPC/ main.tf my-examples/modules/test/vpc/main.tf

コード:

variable "vpc_name" { 
    default = "Test" 
} 

resource "aws_vpc" "test_vpc" { 
    cidr_block   = "172.31.0.0/16" 
    enable_dns_support = true 
    enable_dns_hostnames = true 

    tags { 
    Name = "${var.vpc_name}:VPC" 
    Environment = "${var.vpc_name}" 
    } 
} 

locals { 
    id_vpc = "${aws_vpc.test_vpc.id}" 
} 

module "security_groups" { 
    source = "../security-groups" 
    id_vpc = "${local.id_vpc}" 
} 

アイデアはとても似my-examples/modules/security-group/main.tfid_vpcを使用できるようにすることです。

resource "aws_security_group" "bastion_sg" { 
    vpc_id = id_vpc 
    name = "Bastion-SG" 

    ingress { 
    from_port = 22 
    to_port = 22 
    protocol = "tcp" 
    cidr_blocks = ["0.0.0.0/0"] 
    } 

} 

しかし、私はこのエラーを得続ける: エラー:

* 1 error(s) occurred: 

    * module root: module security_groups: id_vpc is not a valid parameter 

ローカル変数が評価されていない理由を誰かが私に説明していただけますか?それは大いに評価されるだろう。ありがとうございました。モジュールsecurity_groups

答えて

2

名前は正常に見えます。しかし、あなたはモジュールsecurity_groups

のコードに問題があるん

resource "aws_security_group" "bastion_sg" { 
    vpc_id = ${var.id_vpc} 
    name = "Bastion-SG" 
    ... 
} 

resource "aws_security_group" "bastion_sg" { 
    vpc_id = id_vpc 
    name = "Bastion-SG" 
    ... 
} 

から

を変更し、同様にモジュール内の変数id_vpcを定義してください。

関連する問題