DevOps Bootcamp · Ders

Özel Sağlayıcılar Oluşturma

Sağlayıcıların nasıl çalıştığını anlayıp Terraform Plugin Framework ile özel bir sağlayıcı yazarak Terraform’u mevcut tümleştirmelerin ötesine taşıyın.

4. ders / 413 adım

Özel Sağlayıcılar Oluşturma, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Mevcut Sağlayıcılar Yetersiz Kaldığında

Kayıt defteri platformların çoğunu kapsar, ancak kuruluşlar genellikle sağlayıcısı olmayan dahili API'ler çalıştırır. Özel bir sağlayıcı, Terraform'un bu kaynakları aynı plan/apply yaşam döngüsüyle yönetmesini sağlar.

Sağlayıcılar Nasıl Çalışır

Sağlayıcı, Terraform'un başlattığı ve gRPC üzerinden iletişim kurduğu ayrı bir eklenti ikilisidir. Eklenti, Terraform'un CRUD işlemlerini hedef sistemdeki API çağrılarına dönüştürür.

Eklenti Çerçevesi

HashiCorp'un modern Terraform Plugin Framework'ü (Go), eski SDKv2'nin yerini alarak sağlayıcı oluşturmanın önerilen yoludur. Sağlayıcılar Go ile yazılır.

import (
  "github.com/hashicorp/terraform-plugin-framework/provider"
)

Sağlayıcıyı Tanımlama

Sağlayıcı türü, adını ve sunduğu kaynaklarla veri kaynaklarını bildirir.

type widgetProvider struct{}

func (p *widgetProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) {
  resp.TypeName = "widget"
}

Kaynak Şeması

Her kaynak, türleri ve meta verileri olan özniteliklerden oluşan bir şema bildirir. Kullanıcıların HCL'lerinde ayarladığı şey budur.

resp.Schema = schema.Schema{
  Attributes: map[string]schema.Attribute{
    "name": schema.StringAttribute{Required: true},
    "id":   schema.StringAttribute{Computed: true},
  },
}

CRUD Uygulama

Bir kaynak Create, Read, Update ve Delete işlemlerini uygular. Her yöntem API'nizi çağırır ve sonucu Terraform durumuna geri yazar.

func (r *widgetResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
  // call API, then save state
}

Read Durumu Gerçeğe Uygun Tutar

Read yöntemi, durumu gerçek API'den yeniler. Uzak kaynak yoksa kaynağı durumdan kaldırırsınız; böylece Terraform onu yeniden oluşturmayı planlar.

Kabul Testleri

Sağlayıcılar, bir test ortamında gerçek plan/apply döngüleri çalıştıran kabul testlerini kullanır. Bu testler, yanlışlıkla çalışmamaları için bir ortam değişkeninin arkasında tutulur.

TF_ACC=1 go test ./... -v

Yerel Geliştirme Geçersiz Kılması

Bir sağlayıcıyı yayımlamadan önce test etmek için CLI yapılandırmanızda bir geliştirme geçersiz kılması kullanın; böylece Terraform kayıt defterinden indirmek yerine yerel ikilinizi yükler.

provider_installation {
  dev_overrides {
    "acme/widget" = "/home/dev/go/bin"
  }
  direct {}
}

Sağlayıcıyı Yayımlama

Bir sürümü etiketleyip ikilileri bir GPG anahtarıyla imzalayarak kayıt defterine yayımlayın. Tüketiciler daha sonra sağlayıcıyı required_providers içinde bildirir.

terraform {
  required_providers {
    widget = {
      source  = "acme/widget"
      version = "~> 1.0"
    }
  }
}

Bakım Konuları

Bir sağlayıcı uzun vadeli bir taahhüttür: API değişiklikleri, sürüm uyumluluğu ve belgelemenin tümü bakım gerektirir. Tek seferlik ihtiyaçlar için external veri kaynağı veya bir betik, tam bir sağlayıcıdan daha basit olabilir.

Kısa Kontrol

Özel sağlayıcı bilginizi sınayın.

Özet: Terraform'u Genişletme

Özel sağlayıcılar oluşturmayı öğrendiniz:

  • Sağlayıcılar, çekirdekle gRPC üzerinden iletişim kuran Go eklentileridir.
  • Eklenti Çerçevesi, şemaları ve CRUD yöntemlerini tanımlar.
  • Geliştirme geçersiz kılmaları yerel testi mümkün kılar; kabul testleri davranışı doğrular.
  • Yayımlama, etiketler ve imzalı ikililer gerektirir.
Başlamak ücretsiz

Yapay zeka eğitmeniyle DevOps Bootcamp öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
142
Dersler
568

Sıkça Sorulan Sorular

“Özel Sağlayıcılar Oluşturma” dersi ücretsiz mi?

Evet — “Özel Sağlayıcılar Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Özel Sağlayıcılar Oluşturma” dersinde ne öğreneceğim?

Sağlayıcıların nasıl çalıştığını anlayıp Terraform Plugin Framework ile özel bir sağlayıcı yazarak Terraform’u mevcut tümleştirmelerin ötesine taşıyın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Özel Sağlayıcılar Oluşturma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Çoklu Bulut ve Hibrit Bulut Örüntüleri
  2. Yönetişim için Sentinel Politikaları
  3. Terraform Cloud ve Enterprise
  4. Özel Sağlayıcılar Oluşturma
← DevOps Bootcamp Sayfasına Dön