وحدة Terraform التي تنشئ دلو S3 على AWS مع جميع الميزات (أو جميعها تقريبًا) التي يقدمها شركة Terraform AWS.
يتم دعم هذه الميزات من تكوينات دلو S3:
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket "
acl = " private "
control_object_ownership = true
object_ownership = " ObjectWriter "
versioning = {
enabled = true
}
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true # Required for ALB logs
attach_lb_log_delivery_policy = true # Required for ALB/NLB logs
}
في بعض الأحيان ، يجب أن يكون لديك طريقة لإنشاء موارد S3 بشكل مشروط ، لكن Terraform لا يسمح باستخدام count
Inside module
Block ، وبالتالي فإن الحل هو تحديد الوسيطة create_bucket
.
# This S3 bucket will not be created
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
create_bucket = false
# ... omitted
}
variable "..." { type = any }
هناك خطأ #1211 في Terragrunt يتعلق بالطريقة التي يتم بها تمرير متغيرات any
إلى Terraform.
تحل هذه الوحدة هذه المشكلة من خلال دعم jsonencode()
-string بالإضافة إلى النوع المتوقع ( list
أو map
).
في terragrunt.hcl
يمكنك الكتابة:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
يمكن لمستخدمي وحدة Terraform هذه إنشاء موارد مماثلة متعددة باستخدام for_each
Meta-Argument داخل كتلة module
التي أصبحت متوفرة في Terraform 0.13.
يمكن لمستخدمي Terragrunt تحقيق نتائج مماثلة باستخدام الوحدات النمطية المتوفرة في دليل الأغلفة ، إذا كانوا يفضلون تقليل مقدار ملفات التكوين.
اسم | إصدار |
---|---|
terraform | > = 1.0 |
AWS | > = 5.70 |
اسم | إصدار |
---|---|
AWS | > = 5.70 |
لا وحدات.
اسم | يكتب |
---|---|
AWS_S3_BUCKET. هذا | الموارد |
AWS_S3_BUCKET_ACCELERATE_CONFIGURATION.TH | الموارد |
AWS_S3_BUCKET_ACL.THIS | الموارد |
AWS_S3_BUCKET_ANALYTICS_CONFIGURATION.TH | الموارد |
AWS_S3_BUCKET_CORS_CONFIGURATION.TH | الموارد |
AWS_S3_BUCKET_INTELLIGENT_TIERING_CONFIGURATION.THIS | الموارد |
AWS_S3_BUCKET_INVENTORY.THIS | الموارد |
AWS_S3_BUCKET_LIFECYCLE_CONFIGURATION.THIS | الموارد |
AWS_S3_BUCKET_LOGGAGE.TH | الموارد |
AWS_S3_BUCKET_METRIC.THIS | الموارد |
AWS_S3_BUCKET_OBJECT_LOCK_CONFIGURATION.TH | الموارد |
AWS_S3_BUCKET_OWNIRNING_CONTROLS.THIS | الموارد |
AWS_S3_BUCKET_POLICY.TH | الموارد |
AWS_S3_BUCKET_Public_access_block.this | الموارد |
AWS_S3_BUCKET_REPLICATION_CONFIGURATION.TIS | الموارد |
AWS_S3_BUCKET_REQUEST_PAYMENT_CONFIGURATION.THIS | الموارد |
AWS_S3_BUCKET_SERVER_SIDE_ENCRYPTION_CONFIGURINT.THIS | الموارد |
AWS_S3_BUCKET_VERSIONING.THIS | الموارد |
AWS_S3_BUCKET_WEBSITE_CONFIGURINT.THIS | الموارد |
AWS_CALLER_IDEDITY.Current | مصدر البيانات |
AWS_CANONICAL_USER_ID.THIS | مصدر البيانات |
AWS_IAM_POLICY_DOCUMPH.ACCESS_LOG_DELIVILY | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.comBINED | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.DENY_INCORRECT_ENCRYPTION_HEADERS | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.DENY_INCORRECT_KMS_KEY_SSE | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.DENY_INSECURE_TRANSPORT | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.DENY_UNENCRYPTED_OBJECT_UPLOADS | مصدر البيانات |
AWS_IM_POLICY_DOCUMITY.ELB_LOG_DELIVILY | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.INVENTORY_AND_ANALYTICS_DESTINENT_POLICY | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.LB_LOG_DELIVILY | مصدر البيانات |
AWS_IAM_POLICY_DOCUMITY.REQUIRE_LATEST_TLS | مصدر البيانات |
AWS_PARTITION.Current | مصدر البيانات |
AWS_REGION.Current | مصدر البيانات |
اسم | وصف | يكتب | تقصير | مطلوب |
---|---|---|---|---|
Acceleration_status | (اختياري) يعين تكوين تسريع من دلو موجود. يمكن تمكينها أو تعليقها. | string | null | لا |
Access_log_delivery_policy_source_accounts | (اختياري) يجب السماح بقائمة معرفات حساب AWS بتسليم سجلات الوصول إلى هذا الدلو. | list(string) | [] | لا |
Access_log_delivery_policy_source_buckets | (اختياري) قائمة S3 Bucket Arns التي ينبغي السماح لها بتسليم سجلات الوصول إلى هذا الدلو. | list(string) | [] | لا |
ACL | (اختياري) ACL المعلبة لتطبيق. تعارض مع grant | string | null | لا |
سمحت _kms_key_arn | مفتاح arn of KMS الذي يجب السماح به في putObject | string | null | لا |
Analytics_Configuration | خريطة تحتوي على تكوين تحليلات دلو. | any | {} | لا |
Analytics_self_source_destination | سواء كان دلو مصدر التحليلات هو أيضًا دلو الوجهة. | bool | false | لا |
Analytics_Source_Account_id | معرف حساب مصدر التحليلات. | string | null | لا |
Analytics_source_bucket_arn | مصدر التحليلات دلو آرن. | string | null | لا |
excay_access_log_delivery_policy | الضوابط إذا كان يجب أن يكون دلو S3 سياسة تسليم سجل الوصول S3 مرفقة | bool | false | لا |
excens_analytics_destination_policy | الضوابط إذا كان يجب أن يكون لدلو S3 سياسة وجهة تحليل دلو. | bool | false | لا |
excay_deny_incorrect_encryption_headers | الضوابط إذا كان يجب على دلو S3 حرمان من سياسة رؤوس التشفير غير الصحيحة المرفقة. | bool | false | لا |
إرفاق _deny_incorrect_kms_key_sse | الضوابط إذا كان يجب أن تنكر سياسة دلو S3 استخدام KMS Key SSE غير صحيح. | bool | false | لا |
إرفاق_ددين_زنيكور_transport_policy | الضوابط إذا كان يجب أن يكون دلو S3 ينكر سياسة النقل غير SSL المرفقة | bool | false | لا |
إرفاق_ددين _unencrypted_object_uploads | الضوابط إذا كان يجب أن ينكر دلو S3 سياسة تحميل الكائن غير المشفرة. | bool | false | لا |
excay_elb_log_delivery_policy | الضوابط إذا كان يجب أن يكون لدلو S3 سياسة تسليم سجل ELB مرفقة | bool | false | لا |
encles_inventory_destination_policy | الضوابط إذا كان يجب أن يكون لدلو S3 سياسة وجهة جرد الجرد المرفقة. | bool | false | لا |
excay_lb_log_delivery_policy | الضوابط إذا كان يجب أن يكون دلو S3 سياسة تسليم السجل ALB/NLB | bool | false | لا |
إرفاق _policy | الضوابط إذا كان يجب أن يكون دلو S3 سياسة دلو مرفقة (تم تعيينها على true لاستخدام قيمة policy كسياسة دلو) | bool | false | لا |
إرفاق _public_policy | أدوات التحكم في حالة تحديد سياسة الدلو العام المعرّفة للمستخدم (تم تعيينها على false للسماح للمثليين بتطبيق الإعدادات الافتراضية على الدلو) | bool | true | لا |
Access_require_latest_tls_policy | الضوابط إذا كان يجب أن يتطلب دلو S3 أحدث إصدار من TLS | bool | false | لا |
block_public_acls | ما إذا كان يجب على Amazon S3 منع ACLs العامة لهذا الجرافة. | bool | true | لا |
block_public_policy | ما إذا كان يجب على Amazon S3 منع سياسات الجرافة العامة لهذا الجرافة. | bool | true | لا |
دلو | (اختياري ، يفرض مورد جديد) اسم الدلو. إذا تم حذفه ، فسيقوم Terraform بتعيين اسم عشوائي فريد. | string | null | لا |
bucket_prefix | (اختياري ، قوى مورد جديد) ينشئ اسم دلو فريد يبدأ من البادئة المحددة. تعارض مع دلو. | string | null | لا |
control_object_ownerired | ما إذا كان لإدارة عناصر التحكم في ملكية دلو S3 على هذا الدلو. | bool | false | لا |
cors_rule | قائمة الخرائط التي تحتوي على قواعد لمشاركة الموارد عبر الأصل. | any | [] | لا |
create_bucket | الضوابط إذا كان ينبغي إنشاء دلو S3 | bool | true | لا |
المتوقع _bucket_onner | معرف الحساب لمالك الجرافة المتوقع | string | null | لا |
force_destroy | (اختياري ، افتراضي: خطأ) منطقية تشير إلى حذف جميع الكائنات من الدلو بحيث يمكن تدمير الجرافة دون خطأ. هذه الأشياء غير قابلة للاسترداد. | bool | false | لا |
منحة | منحة سياسة ACL. تعارض مع acl | any | [] | لا |
تجاهل _public_acls | ما إذا كان يجب على Amazon S3 تجاهل ACLs العامة لهذا الجرافة. | bool | true | لا |
الذكاء | خريطة تحتوي على تكوين الطبق الذكي. | any | {} | لا |
الجرد _configuration | خريطة تحتوي على تكوين المخزون S3. | any | {} | لا |
Inventory_self_source_destination | سواء كان دلو مصدر المخزون هو أيضًا دلو الوجهة. | bool | false | لا |
agne_source_account_id | معرف حساب مصدر المخزون. | string | null | لا |
Inventory_source_bucket_arn | مصدر المخزون دلو آرن. | string | null | لا |
دورة الحياة | قائمة الخرائط التي تحتوي على تكوين إدارة دورة حياة الكائن. | any | [] | لا |
قطع الأشجار | خريطة تحتوي على تكوين دلو الوصول. | any | {} | لا |
metric_configuration | خريطة تحتوي على تكوين مقياس دلو. | any | [] | لا |
Object_lock_configuration | خريطة تحتوي على تكوين قفل كائن S3. | any | {} | لا |
Object_lock_enabled | ما إذا كان يجب أن يكون دلو S3 يحتوي على تكوين قفل الكائن. | bool | false | لا |
Object_ownerivery | ملكية الكائن. قيم صالحة: bucketownerenforged ، bucketownerpreferred أو ObjectWriter. "bucketownerenforced": يتم تعطيل ACLs ، ومالك دلو يمتلك تلقائيًا ولديه تحكم كامل على كل كائن في الدلو. "BucketOwnerPreferred": تم تحميل الكائنات إلى ملكية دلو لتغيير ملكية الدلو إذا تم تحميل الكائنات باستخدام ACL المعلبة للمالك المملح. 'ObjectWriter': سوف يمتلك حساب التحميل الكائن إذا تم تحميل الكائن باستخدام ACL المعلبة للمالك المملح. | string | "BucketOwnerEnforced" | لا |
مالك | اسم عرض مالك دلو ومعرف. تعارض مع acl | map(string) | {} | لا |
سياسة | (اختياري) وثيقة JSON لسياسة دلو صالحة. لاحظ أنه إذا لم تكن وثيقة السياسة غير محددة بدرجة كافية (ولكنها لا تزال صالحة) ، فيجوز لـ Terraform أن ينظر إلى السياسة على أنها تتغير باستمرار في خطة terraform. في هذه الحالة ، يرجى التأكد من استخدام النسخة المطلة/المحددة من السياسة. لمزيد من المعلومات حول بناء وثائق سياسة AWS مع Terraform ، راجع دليل وثيقة سياسة AWS. | string | null | لا |
بوتين_خويلو | هل توافق على أن بوتين لا يحترم السيادة الأوكرانية والنزاهة الإقليمية؟ مزيد من المعلومات: https://en.wikipedia.org/wiki/putin_khuylo! | bool | true | لا |
REPLICATION_CONFIGURATION | الخريطة التي تحتوي على تكوين النسخ المتماثل عبر المنطقة. | any | {} | لا |
request_payer | (اختياري) يحدد من يجب أن يتحمل تكلفة نقل بيانات Amazon S3. يمكن أن يكون إما دلو أو الطالب. افتراضيًا ، سيتحمل مالك دلو S3 تكاليف أي نقل للبيانات. راجع دليل مطور دلاء المطلب المطلب لمزيد من المعلومات. | string | null | لا |
تقييد _public_buckets | ما إذا كان يجب على Amazon S3 تقييد سياسات الجرافة العامة لهذا الجرافة. | bool | true | لا |
server_side_encryption_configuration | خريطة تحتوي على تكوين تشفير من جانب الخادم. | any | {} | لا |
العلامات | (اختياري) تعيين العلامات لتعيين الدلو. | map(string) | {} | لا |
transition_default_minimum_object_size | يطبق سلوك الحد الأدنى لحجم الكائن الافتراضي على تكوين دورة الحياة. قيم صالحة: all_storage_classes_128k (افتراضي) ، varies_by_storage_class | string | null | لا |
الإصدار | خريطة تحتوي على تكوين الإصدار. | map(string) | {} | لا |
موقع إلكتروني | خريطة تحتوي على استضافة موقع ويب ثابت أو تكوين إعادة توجيه. | any | {} | لا |
اسم | وصف |
---|---|
S3_BUCKET_ARN | آرن من الدلو. سيكون من التنسيق ARN: AWS: S3 ::: BucketName. |
s3_bucket_bucket_domain_name | اسم مجال دلو. سيكون من التنسيق bucketname.s3.amazonaws.com. |
s3_bucket_bucket_regional_domain_name | اسم المجال الخاص منطقة دلو. اسم مجال الجرافة بما في ذلك اسم المنطقة ، يرجى الرجوع هنا للتنسيق. ملاحظة: يتيح AWS CloudFront تحديد نقطة نهاية S3 الخاصة بـ S3 عند إنشاء أصل S3 ، وسيمنع مشكلات إعادة توجيه من CloudFront إلى S3 Origin url. |
S3_BUCKET_HOSTED_ZONE_ID | الطريق 53 استضاف معرف المنطقة لمنطقة هذا الجرافة. |
S3_BUCKET_ID | اسم الدلو. |
s3_bucket_lifecycle_configuration_rules | قواعد دورة الحياة للدلو ، إذا تم تكوين الجرافة بقواعد دورة الحياة. إذا لم يكن الأمر كذلك ، فستكون هذه سلسلة فارغة. |
S3_BUCKET_POLICY | سياسة الدلو ، إذا تم تكوين الدلو مع سياسة. إذا لم يكن الأمر كذلك ، فستكون هذه سلسلة فارغة. |
S3_BUCKET_REGION | منطقة AWS هذا الدلو الموجود في. |
s3_bucket_website_domain | مجال موقع نهاية موقع الويب ، إذا تم تكوين الدلو مع موقع ويب. إذا لم يكن الأمر كذلك ، فستكون هذه سلسلة فارغة. يستخدم هذا لإنشاء سجلات المستعار 53. |
s3_bucket_website_endpoint | نقطة نهاية الموقع ، إذا تم تكوين دلو مع موقع ويب. إذا لم يكن الأمر كذلك ، فستكون هذه سلسلة فارغة. |
يتم الحفاظ على الوحدة النمطية من قبل أنطون بابينكو بمساعدة هؤلاء المساهمين الرائعين.
Apache 2 مرخصة. انظر الترخيص للحصول على التفاصيل الكاملة.