Terraform 0.11
google_project

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 कार्यक्षमता का उपयोग करें, जहां इसे हमेशा की तरह संदर्भित और उपयोग किया जा सकता है, यह ध्यान में रखते हुए कि टेराफॉर्म टेराफॉर्म के बाहर किए गए किसी भी बदलाव को पूर्ववत करने का प्रयास करेगा।
यह ध्यान रखना महत्वपूर्ण है कि 0.8.5 से पहले आपके टेराफ़ॉर्म कॉन्फ़िगरेशन में शामिल किए गए किसी भी प्रोजेक्ट संसाधन कार्य करना जारी रखेंगे जैसा कि उनके पास हमेशा होता है, और टेराफ़ॉर्म द्वारा प्रबंधित नहीं किया जाएगा। केवल नए जोड़े गए प्रोजेक्ट प्रभावित होते हैं।
उदाहरण उपयोग
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