Terraform 0.11

flexibleengine_s3_bucket




terraform

flexibleengine_s3_bucket

एक S3 बाल्टी संसाधन प्रदान करता है।

उदाहरण उपयोग

निजी बाल्टी w / टैग

resource "flexibleengine_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"
}

स्टेटिक वेबसाइट होस्टिंग

resource "flexibleengine_s3_bucket" "b" {
  bucket = "s3-website-test.hashicorp.com"
  acl    = "public-read"
  policy = "${file("policy.json")}"

  website {
    index_document = "index.html"
    error_document = "error.html"

    routing_rules = <<EOF
[{
    "Condition": {
        "KeyPrefixEquals": "docs/"
    },
    "Redirect": {
        "ReplaceKeyPrefixWith": "documents/"
    }
}]
EOF
  }
}

कोर का उपयोग करना

resource "flexibleengine_s3_bucket" "b" {
  bucket = "s3-website-test.hashicorp.com"
  acl    = "public-read"

  cors_rule {
    allowed_headers = ["*"]
    allowed_methods = ["PUT", "POST"]
    allowed_origins = ["https://s3-website-test.hashicorp.com"]
    expose_headers  = ["ETag"]
    max_age_seconds = 3000
  }
}

वर्जनिंग का उपयोग करना

resource "flexibleengine_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"

  versioning {
    enabled = true
  }
}

लॉगिंग करने देना

resource "flexibleengine_s3_bucket" "log_bucket" {
  bucket = "my-tf-log-bucket"
  acl    = "log-delivery-write"
}

resource "flexibleengine_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"

  logging {
    target_bucket = "${flexibleengine_s3_bucket.log_bucket.id}"
    target_prefix = "log/"
  }
}

ऑब्जेक्ट जीवनचक्र का उपयोग करना

resource "flexibleengine_s3_bucket" "bucket" {
  bucket = "my-bucket"
  acl    = "private"

  lifecycle_rule {
    id      = "log"
    enabled = true

    prefix  = "log/"

    expiration {
      days = 90
    }
  }

  lifecycle_rule {
    id      = "tmp"
    prefix  = "tmp/"
    enabled = true

    expiration {
      date = "2016-01-12"
    }
  }
}

resource "flexibleengine_s3_bucket" "versioning_bucket" {
  bucket = "my-versioning-bucket"
  acl    = "private"

  versioning {
    enabled = true
  }

  lifecycle_rule {
    prefix  = "config/"
    enabled = true
  }
}

तर्क संदर्भ

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

  • bucket - (वैकल्पिक, नए संसाधन बल) बाल्टी का नाम। यदि छोड़ दिया जाता है, तो Terraform एक यादृच्छिक, अद्वितीय नाम निर्दिष्ट करेगा।
  • bucket_prefix - (वैकल्पिक, नए संसाधन) निर्दिष्ट उपसर्ग के साथ शुरुआत करने वाला एक अद्वितीय बाल्टी नाम बनाता है। bucket साथ संघर्ष।
  • acl - (वैकल्पिक) डिब्बाबंद एसीएल को लागू करने के लिए। "निजी" के लिए चूक।
  • policy - (वैकल्पिक) एक वैध बाल्टी नीति JSON दस्तावेज़। ध्यान दें कि यदि पॉलिसी दस्तावेज़ पर्याप्त विशिष्ट नहीं है (लेकिन अभी भी मान्य है), टेराफ़ॉर्म पॉलिसी को terraform plan में लगातार बदलते हुए देख सकता है। इस मामले में, कृपया सुनिश्चित करें कि आप नीति के वर्बोज़ / विशिष्ट संस्करण का उपयोग करते हैं।
  • force_destroy - (वैकल्पिक, डिफ़ॉल्ट: गलत) एक बूलियन जो इंगित करता है कि सभी वस्तुओं को बाल्टी से हटा दिया जाना चाहिए ताकि बाल्टी को बिना त्रुटि के नष्ट किया जा सके। ये ऑब्जेक्ट पुनर्प्राप्त करने योग्य नहीं हैं।
  • website - (वैकल्पिक) एक वेबसाइट ऑब्जेक्ट (नीचे दस्तावेज)।
  • cors_rule - (वैकल्पिक) क्रॉस- cors_rule रिसोर्स शेयरिंग (नीचे प्रलेखित) का नियम।
  • versioning - (ऑप्शनल) versioning की एक अवस्था (नीचे दस्तावेज)
  • logging - (वैकल्पिक) बाल्टी लॉगिंग की एक सेटिंग (नीचे दस्तावेज)।
  • lifecycle_rule - (वैकल्पिक) ऑब्जेक्ट जीवनचक्र प्रबंधन (नीचे प्रलेखित) का विन्यास।
  • region - (वैकल्पिक) यदि निर्दिष्ट किया गया है, तो इस क्षेत्र को बाल्टी में निवास करना चाहिए। अन्यथा, केली द्वारा उपयोग किया जाने वाला क्षेत्र।

website ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • index_document - (आवश्यक है, जब तक कि redirect_all_requests_to का उपयोग करके) अमेज़न S3 इस इंडेक्स डॉक्यूमेंट को तब लौटाता है जब रूट डोमेन या किसी सबफ़ोल्डर से अनुरोध किया जाता है।
  • error_document - (वैकल्पिक) 4XX त्रुटि के मामले में वापस जाने के लिए दस्तावेज़ का एक पूर्ण पथ।
  • redirect_all_requests_to - (वैकल्पिक) इस बाल्टी के लिए सभी वेबसाइट अनुरोधों को पुनर्निर्देशित करने के लिए एक होस्टनाम। होस्टनाम वैकल्पिक रूप से एक प्रोटोकॉल ( http:// या https:// ) के साथ उपसर्ग किया जा सकता है जब अनुरोधों को पुनर्निर्देशित किया जाता है। डिफ़ॉल्ट प्रोटोकॉल है जो मूल अनुरोध में उपयोग किया जाता है।
  • routing_rules - (वैकल्पिक) एक json सरणी जिसमें रूटिंग नियम होते हैं जो पुनर्निर्देशित व्यवहार का वर्णन करते हैं और जब पुनर्निर्देश लागू होते हैं।

CORS ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • allowed_headers (वैकल्पिक) निर्दिष्ट करता है कि कौन से हेडर की अनुमति है।
  • allowed_methods (आवश्यक) निर्दिष्ट करता है कि कौन से तरीकों की अनुमति है। GET , PUT , POST , DELETE या HEAD
  • allowed_origins (आवश्यक) निर्दिष्ट करता है कि कौन से मूल की अनुमति है।
  • expose_headers (वैकल्पिक) प्रतिक्रिया में expose_headers हेडर को निर्दिष्ट करता है।
  • max_age_seconds (वैकल्पिक) सेकंड में समय निर्दिष्ट करता है जो ब्राउज़र max_age_seconds अनुरोध के लिए प्रतिक्रिया को कैश कर सकता है।

versioning वस्तु निम्नलिखित का समर्थन करती है:

  • enabled - (वैकल्पिक) वर्जनिंग सक्षम करें। एक बार जब आप एक बाल्टी को संस्करण-सक्षम कर लेते हैं, तो यह कभी भी बिना पढ़े नहीं लौट सकता। हालाँकि, आप उस बाल्टी पर संस्करण को निलंबित कर सकते हैं।
  • mfa_delete - (वैकल्पिक) MFA हटाने के लिए सक्षम करें या तो Change the versioning state of your bucket या Permanently delete an object version । डिफ़ॉल्ट false

logging ऑब्जेक्ट निम्न का समर्थन करता है:

  • target_bucket - (आवश्यक) बाल्टी का नाम जो लॉग ऑब्जेक्ट प्राप्त करेगा।
  • target_prefix - (वैकल्पिक) लॉग ऑब्जेक्ट्स के लिए एक महत्वपूर्ण उपसर्ग निर्दिष्ट करने के लिए।

lifecycle_rule ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • id - (वैकल्पिक) नियम के लिए विशिष्ट पहचानकर्ता।
  • prefix - (वैकल्पिक) एक या एक से अधिक वस्तुओं की पहचान करने के लिए वस्तु प्रधान उपसर्ग जिसमें नियम लागू होता है।
  • enabled - (आवश्यक) जीवनचक्र नियम स्थिति को निर्दिष्ट करता है।
  • abort_incomplete_multipart_upload_days (वैकल्पिक) मल्टीपार्ट अपलोड आरंभ करने के बाद दिनों की संख्या निर्दिष्ट करता है जब मल्टीपार्ट अपलोड पूरा होना चाहिए।
  • expiration - (वैकल्पिक) वस्तु की अवधि समाप्त होने की अवधि निर्दिष्ट करता है (नीचे प्रलेखित)।
  • noncurrent_version_expiration - (वैकल्पिक) निर्दिष्ट करता है जब noncurrent ऑब्जेक्ट संस्करण समाप्त हो जाते हैं (नीचे दस्तावेज़ में)।

expiration कम से कम, noncurrent_version_expiration को निर्दिष्ट किया जाना चाहिए।

expiration वस्तु निम्नलिखित का समर्थन करती है

  • date (वैकल्पिक) वह तिथि निर्दिष्ट करता है जिसके बाद आप प्रभावी कार्रवाई करना चाहते हैं।
  • days (वैकल्पिक) वस्तु निर्माण के बाद दिनों की संख्या को निर्दिष्ट करता है जब विशिष्ट नियम कार्रवाई प्रभावी होती है।
  • समय सीमा समाप्त हो चुकी एक बाल्टी (संस्करण-सक्षम या संस्करण-निलंबित बाल्टी) पर, आप इस तत्व को जीवनचक्र विन्यास में जोड़ सकते हैं, जो समाप्त हो चुके ऑब्जेक्ट डिलीट मार्करों को हटाने के लिए अमेज़ॅन एस 3 को निर्देशित करते हैं।

noncurrent_version_expiration वस्तु निम्नलिखित का समर्थन करती है

  • days (आवश्यक) निर्दिष्ट करता है कि एक वस्तु कितने दिनों तक गैर-समांतर ऑब्जेक्ट संस्करण समाप्त होती है।

rules ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • id - (वैकल्पिक) नियम के लिए विशिष्ट पहचानकर्ता।
  • destination - (आवश्यक) नियम के लिए गंतव्य निर्दिष्ट करता है (नीचे दस्तावेज)।
  • prefix - (आवश्यक) वस्तु कीनेम उपसर्ग एक या एक से अधिक वस्तुओं की पहचान करने के लिए जो नियम लागू होता है। पूरे बाल्टी को दोहराने के लिए एक खाली स्ट्रिंग के रूप में सेट करें।
  • status - (आवश्यक) नियम की स्थिति। या तो Enabled या Disabled । यदि स्थिति सक्षम नहीं है तो नियम की अनदेखी की जाती है।

destination वस्तु निम्नलिखित का समर्थन करती है:

  • bucket - (आवश्यक) S3 बाल्टी का ARN, जहाँ आप चाहते हैं कि अमेज़न S3 नियम द्वारा पहचानी गई वस्तु की प्रतिकृतियों को संग्रहीत करे।
  • storage_class - (वैकल्पिक) ऑब्जेक्ट को संग्रहीत करने के लिए उपयोग किए जाने वाले संग्रहण का वर्ग।

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

निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - बाल्टी का नाम।
  • arn - बाल्टी का ARN। प्रारूप arn:aws:s3:::bucketname
  • bucket_domain_name - बाल्टी डोमेन नाम। bucketname.s3.amazonaws.com
  • hosted_zone_id - इस बकेट के क्षेत्र के लिए रूट 53 होस्टेड ज़ोन आईडी
  • region - यह बाल्टी जिस क्षेत्र में रहती है।
  • website_endpoint - वेबसाइट एंडपॉइंट, अगर बाल्टी को वेबसाइट से कॉन्फ़िगर किया गया है। यदि नहीं, तो यह एक रिक्त स्ट्रिंग होगी।
  • website_domain - यदि वेबसाइट किसी वेबसाइट के साथ कॉन्फ़िगर की जाती है, तो वेबसाइट का डोमेन समापन बिंदु होता है। यदि नहीं, तो यह एक रिक्त स्ट्रिंग होगी। इसका उपयोग रूट 53 उर्फ ​​रिकॉर्ड बनाने के लिए किया जाता है।

आयात

S3 बाल्टी को बाल्टी का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import flexibleengine_s3_bucket.bucket bucket-name