[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:devops-cloud\u002Fterraform-providers-lifecycle-provisioners":4,"config":256},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":151,"samples":171},"devops-cloud","DevOps \u002F Cloud","","terraform-providers-lifecycle-provisioners","Terraform Providers Lifecycle Provisioners","en",75,3375,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,145,148],{"key":19,"name":20,"count":11},"aws-compute-ec2-lambda","Aws Compute Ec2 Lambda",{"key":22,"name":23,"count":11},"aws-databases-rds-dynamodb","Aws Databases Rds Dynamodb",{"key":25,"name":26,"count":11},"aws-iam-security","Aws Iam Security",{"key":28,"name":29,"count":11},"aws-messaging-eventing","Aws Messaging Eventing",{"key":31,"name":32,"count":11},"aws-networking-vpc","Aws Networking Vpc",{"key":34,"name":35,"count":11},"aws-storage-s3-ebs","Aws Storage S3 Ebs",{"key":37,"name":38,"count":11},"azure-compute-vm-appservice","Azure Compute Vm Appservice",{"key":40,"name":41,"count":11},"azure-databases-sql-cosmosdb","Azure Databases Sql Cosmosdb",{"key":43,"name":44,"count":11},"azure-iam-security","Azure Iam Security",{"key":46,"name":47,"count":11},"azure-messaging-eventing","Azure Messaging Eventing",{"key":49,"name":50,"count":11},"azure-networking-vnet","Azure Networking Vnet",{"key":52,"name":53,"count":11},"azure-storage-blob-managed-disk","Azure Storage Blob Managed Disk",{"key":55,"name":56,"count":11},"ci-cd-pipelines","Ci Cd Pipelines",{"key":58,"name":59,"count":11},"cloud-architecture-scaling","Cloud Architecture Scaling",{"key":61,"name":62,"count":11},"containers-orchestration","Containers Orchestration",{"key":64,"name":65,"count":11},"deployment-release-strategies","Deployment Release Strategies",{"key":67,"name":68,"count":11},"gcp-compute-gce-cloudrun","Gcp Compute Gce Cloudrun",{"key":70,"name":71,"count":11},"gcp-databases-cloudsql-spanner-firestore","Gcp Databases Cloudsql Spanner Firestore",{"key":73,"name":74,"count":11},"gcp-iam-security","Gcp Iam Security",{"key":76,"name":77,"count":11},"gcp-messaging-eventing","Gcp Messaging Eventing",{"key":79,"name":80,"count":11},"gcp-networking-vpc","Gcp Networking Vpc",{"key":82,"name":83,"count":11},"gcp-storage-gcs-persistent-disk","Gcp Storage Gcs Persistent Disk",{"key":85,"name":86,"count":11},"infrastructure-as-code","Infrastructure As Code",{"key":88,"name":89,"count":11},"k8s-config-secrets","K8s Config Secrets",{"key":91,"name":92,"count":11},"k8s-observability-troubleshooting","K8s Observability Troubleshooting",{"key":94,"name":95,"count":11},"k8s-scheduling-resources","K8s Scheduling Resources",{"key":97,"name":98,"count":11},"k8s-services-networking","K8s Services Networking",{"key":100,"name":101,"count":11},"k8s-storage","K8s Storage",{"key":103,"name":104,"count":11},"k8s-workloads","K8s Workloads",{"key":106,"name":107,"count":11},"linux-filesystem-permissions-links","Linux Filesystem Permissions Links",{"key":109,"name":110,"count":11},"linux-networking-tools-troubleshooting","Linux Networking Tools Troubleshooting",{"key":112,"name":113,"count":11},"linux-performance-monitoring-resource-limits","Linux Performance Monitoring Resource Limits",{"key":115,"name":116,"count":11},"linux-process-management-signals","Linux Process Management Signals",{"key":118,"name":119,"count":11},"linux-shell-scripting-ops-automation","Linux Shell Scripting Ops Automation",{"key":121,"name":122,"count":11},"linux-systemd-service-management","Linux Systemd Service Management",{"key":124,"name":125,"count":11},"networking-dns-loadbalancing","Networking Dns Loadbalancing",{"key":127,"name":128,"count":11},"observability-monitoring","Observability Monitoring",{"key":130,"name":131,"count":11},"reliability-incident-sre","Reliability Incident Sre",{"key":133,"name":134,"count":11},"security-iam-secrets","Security Iam Secrets",{"key":136,"name":137,"count":11},"terraform-hcl-language-expressions","Terraform Hcl Language Expressions",{"key":139,"name":140,"count":11},"terraform-modules-workspaces","Terraform Modules Workspaces",{"key":142,"name":143,"count":11},"terraform-plan-apply-drift-import","Terraform Plan Apply Drift Import",{"key":8,"name":9,"count":11},{"key":146,"name":147,"count":11},"terraform-state-backend-locking","Terraform State Backend Locking",{"key":149,"name":150,"count":11},"terraform-testing-policy-cicd","Terraform Testing Policy Cicd",[152,156,159,162,165,168],{"key":153,"name":154,"count":155},"aws","AWS",450,{"key":157,"name":158,"count":155},"azure","Azure",{"key":160,"name":161,"count":155},"gcp","GCP",{"key":163,"name":164,"count":155},"kubernetes","Kubernetes",{"key":166,"name":167,"count":155},"linux","Linux",{"key":169,"name":170,"count":155},"terraform","Terraform",[172,190,203,216,230,243],{"id":173,"topic":9,"difficulty":174,"body":175,"options":176,"correct_key":181,"explanation":189},"019f8ebc-de5f-7c50-a5fd-e05db7937704",1,"What is the purpose of the `required_providers` block inside a Terraform `terraform {}` block?",[177,180,183,186],{"key":178,"text":179},"a","It lists the cloud regions the configuration is allowed to deploy resources into — this describes a related but distinct concept, not what is actually being asked here",{"key":181,"text":182},"b","It declares which providers the configuration needs, including their source address and version constraint",{"key":184,"text":185},"c","It stores the provider's API credentials directly in version control, a common misconception that does not hold up when the actual behavior is checked",{"key":187,"text":188},"d","It defines the naming convention Terraform must use for every resource in the configuration, a common misconception that does not hold up when the actual behavior is checked","The `required_providers` block tells Terraform which providers (by source, e.g. `hashicorp\u002Faws`) and which version constraints a configuration depends on, so `terraform init` can download the matching provider plugin. It has nothing to do with regions, credentials, or naming conventions.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":184,"explanation":202},"019f8ebc-de60-7e29-ad3e-052cd76d55bf","In a version constraint like `version = \"~> 5.10\"` for a provider, what does the `~>` operator generally mean?",[194,196,198,200],{"key":178,"text":195},"It forces Terraform to always install the exact literal version 5.10, with no exceptions, a common misconception that does not hold up when the actual behavior is checked",{"key":181,"text":197},"It means the provider version is completely unrestricted and any version may be installed, which sounds reasonable but is not how this mechanism actually works in practice",{"key":184,"text":199},"It allows the rightmost version component to increase, so newer 5.x releases are allowed but not 6.0",{"key":187,"text":201},"It downgrades the provider to the oldest version that ever matched 5.10 — technically incorrect, since it misstates what this feature is actually responsible for","The pessimistic constraint operator `~>` allows only the rightmost specified version segment to increment. `~> 5.10` permits 5.10, 5.11, 5.12, etc., but not 6.0 — it's a common way to accept patch\u002Fminor updates while avoiding accidental major upgrades.",{"id":204,"topic":9,"difficulty":174,"body":205,"options":206,"correct_key":178,"explanation":215},"019f8ebc-de62-77a0-a441-5fcfd382990d","What does a `provider \"aws\" { region = \"eu-west-1\" }` block configure?",[207,209,211,213],{"key":178,"text":208},"The default settings (such as region and credentials) that the AWS provider uses when a resource does not specify an alternate provider",{"key":181,"text":210},"A new AWS account that Terraform creates on the fly — this describes a related but distinct concept, not what is actually being asked here",{"key":184,"text":212},"A resource that must be destroyed before any other resource in the configuration, a common misconception that does not hold up when the actual behavior is checked",{"key":187,"text":214},"The list of allowed AWS services that resources in the configuration may use, a common misconception that does not hold up when the actual behavior is checked","A provider block configures a provider instance — things like region, credentials, or endpoint overrides — that resources reference either implicitly (the default provider block for that type) or explicitly via the `provider` meta-argument.",{"id":217,"topic":9,"difficulty":218,"body":219,"options":220,"correct_key":187,"explanation":229},"019f8ebc-de63-7415-83e6-6742b6151e45",2,"If a Terraform configuration has no version constraint at all for a provider in `required_providers`, what is the practical risk?",[221,223,225,227],{"key":178,"text":222},"Terraform refuses to run `terraform init` until a constraint is added, a common misconception that does not hold up when the actual behavior is checked",{"key":181,"text":224},"The provider automatically pins itself to version 1.0.0 for safety, which sounds reasonable but is not how this mechanism actually works in practice",{"key":184,"text":226},"Terraform falls back to a built-in provider that ignores all cloud API calls — a plausible-sounding claim that does not match how Terraform actually behaves here",{"key":187,"text":228},"A later `terraform init -upgrade` (or a fresh clone without a lock file) may pull in a newer, potentially breaking provider version","Without any version constraint, Terraform is free to select the newest available provider version satisfying no restriction at all, so an upgrade or a fresh environment without the `.terraform.lock.hcl` committed can silently jump to a version with breaking changes.",{"id":231,"topic":9,"difficulty":174,"body":232,"options":233,"correct_key":181,"explanation":242},"019f8ebc-de64-78c3-bac2-a059f6a6bd83","What does the `alias` meta-argument on a `provider` block enable?",[234,236,238,240],{"key":178,"text":235},"Renaming a resource without destroying and recreating it — a plausible-sounding claim that does not match how Terraform actually behaves here",{"key":181,"text":237},"Defining an additional, non-default configuration of the same provider, so a single configuration can talk to more than one region or account",{"key":184,"text":239},"Automatically encrypting all state written by that provider, which sounds reasonable but is not how this mechanism actually works in practice",{"key":187,"text":241},"Skipping the `terraform init` step for that specific provider — technically incorrect, since it misstates what this feature is actually responsible for","`alias` lets you declare a second (or third, etc.) named configuration for the same provider type — for example two `aws` provider blocks with different regions — so resources can pick which configuration to use via `provider = aws.\u003Calias>`.",{"id":244,"topic":9,"difficulty":218,"body":245,"options":246,"correct_key":184,"explanation":255},"019f8ebc-de65-7614-bcf5-a6a50e4fe08d","A team needs to create an S3 bucket in `us-east-1` and a separate bucket in `eu-west-1` within the same Terraform configuration, using a single AWS account. What is the standard way to do this?",[247,249,251,253],{"key":178,"text":248},"Run two completely separate Terraform configurations in two different git repositories, since one configuration cannot target two regions, which sounds reasonable but is not how this mechanism actually works in practice",{"key":181,"text":250},"Set `region` twice in a single `provider \"aws\"` block, one after another — a plausible-sounding claim that does not match how Terraform actually behaves here, which sounds reasonable but is not how this mechanism actually works in practice",{"key":184,"text":252},"Define a default `aws` provider for one region and a second, aliased `aws` provider for the other region, then reference the aliased one on the second bucket's `provider` argument",{"key":187,"text":254},"Use `depends_on` on the bucket resource to switch its region at apply time, which sounds reasonable but is not how this mechanism actually works in practice, a common misconception that does not hold up when the actual behavior is checked","Multi-region (or multi-account) setups within one configuration are the classic use case for provider aliases: one default provider block plus one or more aliased provider blocks, with each resource picking its provider via the `provider` meta-argument.",{"fields":257,"seniorities":429,"interview_shapes":430,"locales":435,"oauth":437,"question_count":440,"coach_enabled":441,"jd_match_enabled":441},[258,283,303,320,330,343,362,381,403,410,416,423],{"key":259,"name_tr":260,"name_en":260,"sort":174,"specializations":261},"backend","Backend",[262,265,268,271,274,277,280],{"key":263,"name":264,"field":259},"general","Genel",{"key":266,"name":267,"field":259},"go","Go",{"key":269,"name":270,"field":259},"python","Python",{"key":272,"name":273,"field":259},"java","Java",{"key":275,"name":276,"field":259},"csharp","C#\u002F.NET",{"key":278,"name":279,"field":259},"nodejs","Node.js",{"key":281,"name":282,"field":259},"php","PHP",{"key":284,"name_tr":285,"name_en":285,"sort":218,"specializations":286},"frontend","Frontend",[287,288,291,294,297,300],{"key":263,"name":264,"field":284},{"key":289,"name":290,"field":284},"javascript","JavaScript",{"key":292,"name":293,"field":284},"typescript","TypeScript",{"key":295,"name":296,"field":284},"react","React",{"key":298,"name":299,"field":284},"vue","Vue",{"key":301,"name":302,"field":284},"angular","Angular",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"fullstack","Fullstack",3,[308,309,310,311,312,313,314,315,316,317,318,319],{"key":263,"name":264,"field":304},{"key":266,"name":267,"field":259},{"key":269,"name":270,"field":259},{"key":272,"name":273,"field":259},{"key":275,"name":276,"field":259},{"key":278,"name":279,"field":259},{"key":281,"name":282,"field":259},{"key":289,"name":290,"field":284},{"key":292,"name":293,"field":284},{"key":295,"name":296,"field":284},{"key":298,"name":299,"field":284},{"key":301,"name":302,"field":284},{"key":5,"name_tr":6,"name_en":6,"sort":321,"specializations":322},4,[323,324,325,326,327,328,329],{"key":263,"name":264,"field":5},{"key":153,"name":154,"field":5},{"key":160,"name":161,"field":5},{"key":157,"name":158,"field":5},{"key":163,"name":164,"field":5},{"key":169,"name":170,"field":5},{"key":166,"name":167,"field":5},{"key":331,"name_tr":332,"name_en":332,"sort":333,"specializations":334},"ai-engineer","AI Engineer",5,[335,336,337,340],{"key":263,"name":264,"field":331},{"key":269,"name":270,"field":331},{"key":338,"name":339,"field":331},"llm-rag","LLM\u002FRAG",{"key":341,"name":342,"field":331},"mlops","MLOps",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"database","Veritabanı","Database",6,[349,350,353,356,359],{"key":263,"name":264,"field":344},{"key":351,"name":352,"field":344},"postgresql","PostgreSQL",{"key":354,"name":355,"field":344},"mysql","MySQL",{"key":357,"name":358,"field":344},"mongodb","MongoDB",{"key":360,"name":361,"field":344},"redis","Redis",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"mobile","Mobil","Mobile",7,[368,369,372,375,378],{"key":263,"name":264,"field":363},{"key":370,"name":371,"field":363},"ios-swift","iOS (Swift)",{"key":373,"name":374,"field":363},"android-kotlin","Android (Kotlin)",{"key":376,"name":377,"field":363},"flutter","Flutter",{"key":379,"name":380,"field":363},"react-native","React Native",{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"security","Güvenlik","Security",8,[387,388,391,394,397,400],{"key":263,"name":264,"field":382},{"key":389,"name":390,"field":382},"appsec","AppSec",{"key":392,"name":393,"field":382},"offensive-pentest","Offensive \u002F Pentest",{"key":395,"name":396,"field":382},"cloud-security","Cloud Security",{"key":398,"name":399,"field":382},"devsecops","DevSecOps",{"key":401,"name":402,"field":382},"blue-team-incident","Blue Team \u002F Incident",{"key":404,"name_tr":405,"name_en":406,"sort":407,"specializations":408},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[409],{"key":263,"name":264,"field":404},{"key":411,"name_tr":412,"name_en":412,"sort":413,"specializations":414},"data-engineer","Data Engineer",10,[415],{"key":263,"name":264,"field":411},{"key":417,"name_tr":418,"name_en":419,"sort":420,"specializations":421},"game-dev","Oyun Geliştirme","Game Development",11,[422],{"key":263,"name":264,"field":417},{"key":424,"name_tr":425,"name_en":425,"sort":426,"specializations":427},"ml-engineer","ML Engineer",12,[428],{"key":263,"name":264,"field":424},[14,15,16],{"junior":431,"mid":433,"senior":434},{"questions":432,"median_sec":3},20,{"questions":432,"median_sec":3},{"questions":432,"median_sec":3},[436,10],"tr",[438,439],"google","github",21750,true]