Terraform 0.11

google_project




terraform

google_project

Google क्लाउड प्लेटफ़ॉर्म प्रोजेक्ट के निर्माण और प्रबंधन की अनुमति देता है।

इस संसाधन के साथ बनाई गई परियोजनाएं किसी संगठन से संबद्ध होनी चाहिए। अधिक विवरण के लिए संगठन के दस्तावेज़ देखें।

google_project संसाधन बनाते समय Terraform को चलाने के लिए उपयोग किए जाने वाले सेवा खाते में roles/resourcemanager.projectCreator होनी चाहिए। अधिक जानकारी के लिए IAM डॉक्टर का उपयोग करके संगठनों के लिए एक्सेस कंट्रोल देखें।

ध्यान दें कि 0.8.5 से पहले, google_project डेटा स्रोत की तरह कार्य करता है, जिसका अर्थ है कि इसके द्वारा संदर्भित किसी भी प्रोजेक्ट को टेराफॉर्म के बाहर बनाया और प्रबंधित किया जाना था। 0.8.5 के रूप में, google_project किसी अन्य Terraform संसाधन की तरह कार्य करता है, जिसमें Terraform परियोजना का निर्माण और प्रबंधन करता है। पुराने व्यवहार को दोहराने के लिए या तो:

  • जो भी प्रोजेक्ट संदर्भित कर रहा है, उसमें सीधे प्रोजेक्ट आईडी का उपयोग करें, पुरानी policy_data संपत्ति को बदलने के लिए google_project_iam_policy का उपयोग करें।
  • टेराफॉर्म में अपनी पूर्व-मौजूदा परियोजना को आयात करने के लिए import कार्यक्षमता का उपयोग करें, जहां इसे हमेशा की तरह संदर्भित और उपयोग किया जा सकता है, यह ध्यान में रखते हुए कि टेराफॉर्म टेराफॉर्म के बाहर किए गए किसी भी बदलाव को पूर्ववत करने का प्रयास करेगा।

उदाहरण उपयोग

resource "google_project" "my_project" {
  name = "My Project"
  project_id = "your-project-id"
  org_id     = "1234567"
}

एक विशिष्ट फ़ोल्डर के तहत एक परियोजना बनाने के लिए

resource "google_project" "my_project-in-a-folder" {
  name = "My Project"
  project_id = "your-project-id"
  folder_id  = "${google_folder.department1.name}"
}

resource "google_folder" "department1" {
  display_name = "Department 1"
  parent     = "organizations/1234567"
}

संलग्न एक ऐप इंजन ऐप के साथ एक परियोजना बनाने के लिए

resource "google_project" "my-app-engine-app" {
  name = "App Engine Project"
  project_id = "app-engine-project"
  org_id = "1234567"

  app_engine {
    location_id = "us-central"
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) परियोजना का प्रदर्शन नाम।

  • project_id - (आवश्यक) प्रोजेक्ट ID। इस परिवर्तन से एक नई परियोजना बनने के लिए बाध्य होती है।

  • org_id - (वैकल्पिक) इस परियोजना का संगठन की संख्यात्मक आईडी से संबंधित है। इस परिवर्तन से एक नई परियोजना बनने के लिए बाध्य होती है। केवल एक org_id या folder_id निर्दिष्ट किया जा सकता है। यदि org_id निर्दिष्ट है, तो परियोजना शीर्ष स्तर पर बनाई गई है। इस परिवर्तन से परियोजना को नए निर्दिष्ट संगठन में स्थानांतरित करने के लिए मजबूर होना पड़ता है।

  • folder_id - (वैकल्पिक) इस परियोजना के अंतर्गत फ़ोल्डर की संख्यात्मक आईडी बनाई जानी चाहिए। केवल एक org_id या folder_id निर्दिष्ट किया जा सकता है। यदि folder_id निर्दिष्ट है, तो प्रोजेक्ट निर्दिष्ट फ़ोल्डर के तहत बनाया गया है। इस परिवर्तन से प्रोजेक्ट को नए निर्दिष्ट फ़ोल्डर में माइग्रेट होने के लिए बाध्य किया जाता है।

  • billing_account - (वैकल्पिक) इस परियोजना के बिलिंग खाते की अल्फ़ान्यूमेरिक आईडी है। टेराफॉर्म के साथ इस ऑपरेशन को करने वाले उपयोगकर्ता या सेवा खाते के पास संगठन में बिलिंग खाता प्रशासक विशेषाधिकार ( roles/billing.admin ) होना चाहिए। अधिक विवरण के लिए Google क्लाउड बिलिंग एपीआई एक्सेस कंट्रोल देखें।

  • skip_delete - (वैकल्पिक) यदि सही है, तो Google API के माध्यम से परियोजना को हटाए बिना टेराफॉर्म संसाधन को हटाया जा सकता है।

  • policy_data - (अस्वीकृत) परियोजना से जुड़ी IAM नीति। यह तर्क अब समर्थित नहीं है, और टेराफॉर्म के भविष्य के संस्करण में हटा दिया जाएगा। इसे google_project_iam_policy संसाधन से बदला जाना चाहिए।

  • labels - (वैकल्पिक) परियोजना को असाइन करने के लिए कुंजी / मान लेबल जोड़े का एक सेट।

  • auto_create_network - (वैकल्पिक) स्वचालित रूप से 'डिफ़ॉल्ट' नेटवर्क बनाएँ। डिफ़ॉल्ट सत्य। नोट: इसे और अधिक सटीक रूप से "डिलीट डिफॉल्ट नेटवर्क" के रूप में वर्णित किया जा सकता है, क्योंकि नेटवर्क स्वचालित रूप से बनाया जाता है, फिर प्रोजेक्ट निर्माण रिटर्न से पहले हटा दिया जाता है, लेकिन हम इस नाम को जीसीपी कंसोल यूआई से मिलान करने के लिए चुनते हैं। इस फ़ील्ड को गलत पर सेट करने से कंप्यूट इंजन API सक्षम होगा जो नेटवर्क को हटाने के लिए आवश्यक है।

  • app_engine - (वैकल्पिक) ऐप इंजन ऐप को सक्षम करने के लिए कॉन्फ़िगरेशन का एक ब्लॉक। इस फ़ील्ड को सेट करने से ऐप इंजन व्यवस्थापक API सक्षम हो जाएगा, जिसे ऐप को प्रबंधित करना आवश्यक है।

app_engine ब्लॉक में निम्नलिखित विन्यास विकल्प हैं:

  • location_id - (आवश्यक) ऐप से सेवा देने का location
  • auth_domain - (वैकल्पिक) अनुप्रयोग इंजन के उपयोगकर्ता एपीआई का उपयोग करते समय उपयोगकर्ताओं को प्रमाणित करने के लिए डोमेन।
  • serving_status - (ऑप्शनल) ऐप की सर्विंग स्टेटस। ध्यान दें कि इस समय इसे अपडेट नहीं किया जा सकता है।
  • feature_settings - (वैकल्पिक) विशिष्ट अनुप्रयोग इंजन सुविधाओं को कॉन्फ़िगर करने के लिए वैकल्पिक सेटिंग्स का एक ब्लॉक:
    • split_health_checks - (वैकल्पिक) split_health_checks चेक के बजाय लीगेसी हेल्थ चेक का उपयोग करने के लिए गलत पर सेट करें।

संदर्भ संदर्भित करता है

ऊपर सूचीबद्ध तर्कों के अलावा, निम्नलिखित गणना की गई विशेषताएँ निर्यात की जाती हैं:

  • number - परियोजना का संख्यात्मक पहचानकर्ता।

  • policy_etag - (पदावनत) परियोजना की IAM नीति का policy_etag , यह निर्धारित करने के लिए उपयोग किया जाता है कि क्या IAM नीति बदल गई है। कृपया इसके बजाय google_project_iam_policy की etag संपत्ति का उपयोग करें; Terraform के भविष्य के संस्करण policy_etag विशेषता को हटा देंगे

  • app_engine.0.name - ऐप का विशिष्ट नाम, आमतौर पर apps/{PROJECT_ID}

  • app_engine.0.url_dispatch_rule - प्रेषण नियम ब्लॉकों की एक सूची। प्रत्येक ब्लॉक में एक domain , path और service क्षेत्र होता है।

  • app_engine.0.code_bucket - इस एप्लिकेशन के लिए GCS बाल्टी कोड संग्रहीत किया जा रहा है।

  • app_engine.0.default_hostname - इस एप्लिकेशन के लिए डिफ़ॉल्ट होस्टनाम।

  • app_engine.0.default_bucket - इस एप्लिकेशन के लिए GCS बाल्टी सामग्री संग्रहीत की जा रही है।

  • app_engine.0.gcr_domain - इस एप्लिकेशन के लिए प्रबंधित Docker छवियों को संग्रहीत करने के लिए उपयोग किया गया GCR डोमेन।

आयात

प्रोजेक्ट्स का उपयोग कर प्रोजेक्ट्स आयात किए जा सकते हैं। उदा

$ terraform import google_project.my_project your-project-id