2017-04-24 32 views
6

टेराफॉर्म 0.9.3 के साथ एक एडब्ल्यूएस लैम्ब्डा फ़ंक्शन बनाते समय, मैं इसे अपने चयनित वीपीसी में शामिल करने में विफल रहा हूं।टेराफॉर्म पर एडब्ल्यूएस लैम्ब्डा वीपीसी

resource "aws_lambda_function" "lambda_function" { 
    s3_bucket  = "${var.s3_bucket}" 
    s3_key   = "${var.s3_key}" 
    function_name = "${var.function_name}" 
    role    = "${var.role_arn}" 
    handler   = "${var.handler}" 

    runtime   = "${var.runtime}" 
    timeout   = "30" 
    memory_size  = 256 
    publish   = true 

    vpc_config { 
     subnet_ids = ["${var.subnet_ids}"] 
     security_group_ids = ["${var.security_group_ids}"] 
    } 
} 

नीति मैं इस भूमिका के लिए उपयोग कर रहा हूँ

data "aws_iam_policy_document" "lambda-policy_policy_document" { 
     statement { 
      effect = "Allow" 
      actions = [ 
      "ec2:DescribeSecurityGroups", 
      "ec2:DescribeSubnets", 
      "ec2:DescribeVpcs", 
      "logs:CreateLogGroup", 
      "logs:CreateLogStream", 
      "logs:PutLogEvents", 
      "ec2:CreateNetworkInterface", 
      "ec2:DescribeNetworkInterfaces", 
      "ec2:DeleteNetworkInterface" 
     ] 
     resources = ["*"] 
    } 
} 

संसाधनों ठीक बनाई गई हैं, अगर मैं VPC जोड़ने का प्रयास करते है:

इस तरह कैसे मेरे समारोह लग रहा है और एडब्ल्यूएस कंसोल के माध्यम से सबनेट्स यह सब काम करता है।

अद्यतन (निर्माण योजना):

module.******.aws_lambda_function.lambda_function 
arn:         "<computed>" 
environment.#:      "1" 
environment.0.variables.%:   "1" 
environment.0.variables.environment: "******" 
function_name:      "******" 
handler:        "******" 
last_modified:      "<computed>" 
memory_size:       "256" 
publish:        "true" 
qualified_arn:      "<computed>" 
role:        "******" 
runtime:        "******" 
s3_bucket:       "******" 
s3_key:        "******" 
source_code_hash:     "<computed>" 
timeout:        "30" 
version:        "<computed>" 
vpc_config.#:      "1" 
vpc_config.0.vpc_id:     "<computed>" 

हालांकि, अगर मैं terraform योजना को पुन: चलाने, VPC config हमेशा बदल जाता है।

vpc_config.#: "0" => "1" (forces new resource) 
+0

क्या आप योजना उत्पादन दिखा सकते हैं जब आपके पास लैम्ब्डा कार्य नहीं है? – ydaetskcoR

+0

@ydaetskcoR सिर्फ सृजन योजना – joaofs

+1

के साथ अपडेट किया गया है जो मुझे गलत लगता है। मैंने अभी अपने स्वयं के लैम्ब्डा कार्यों में से एक की योजना बनाई है जो वीपीसी के अंदर होती है और मुझे सुरक्षा समूह आईडी और सबनेट आईडी के लिए योजना पर अतिरिक्त लाइनें दिखाई देती हैं जो आपकी योजना नहीं दिखाती हैं। कुछ ऐसा: 'vpc_config.0.subnet_ids.1220732747:" सबनेट-12345678 "'। क्या आपने अपनी सबनेट आईडी की जांच की है और सुरक्षा समूह आईडी सही तरीके से पारित की जा रही हैं? – ydaetskcoR

उत्तर

0

लैम्बडा मॉड्यूल में एक मानचित्रण गायब था। इसे ठीक करने के बाद यह योजना वीपीसी कॉन्फ़िगरेशन की तरह दिखनी चाहिए:

vpc_config.#:        "1" 
vpc_config.0.security_group_ids.#:   "1" 
vpc_config.0.security_group_ids.571116572: "******" 
vpc_config.0.subnet_ids.#:     "3" 
vpc_config.0.subnet_ids.1396457994:  "****" 
vpc_config.0.subnet_ids.1722519307:  "****" 
vpc_config.0.subnet_ids.830820656:   "****" 
vpc_config.0.vpc_id:      "<computed>" 
संबंधित मुद्दे