Aracılığıyla paylaş


Öğretici: GitHub ve Azure Dağıtım Ortamlarını kullanarak CI/CD'de ortamları dağıtma

Bu öğreticide Azure Dağıtım Ortamlarını CI/CD işlem hattınızla tümleştirmeyi öğreneceksiniz. GitHub Actions, Azure Arc, GitLab veya Jenkins gibi CI/CD'yi destekleyen herhangi bir GitOps sağlayıcısını kullanabilirsiniz.

Sürekli tümleştirme ve sürekli teslim (CI/CD), ekiplerin yazılım değişikliklerini oluşturma, test etme ve dağıtma sürecini otomatikleştirmesine yardımcı olan bir yazılım geliştirme yaklaşımıdır. CI/CD, yazılım değişikliklerini daha sık ve daha güvenli bir şekilde yayınlamanızı sağlar.

Üç dal içeren bir iş akışı kullanırsınız: main, dev ve test.

  • Ana dal her zaman üretim olarak kabul edilir.
  • Ana daldan özellik dalları oluşturursunuz.
  • Özellik dallarını main ile birleştirmek için çekme istekleri oluşturursunuz.

Bu iş akışı, bu öğreticinin amaçlarına yönelik küçük bir örnektir. Gerçek dünya iş akışları daha karmaşık olabilir.

Bu öğreticiye başlamadan önce, Azure Dağıtım Ortamları için temel kavramları gözden geçirerek Dağıtım Ortamları kaynakları ve kavramları hakkında bilgi edinebilirsiniz.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Geliştirme merkezi oluşturma ve yapılandırma
  • Anahtar kasası oluşturma
  • GitHub deposu oluşturma ve yapılandırma
  • Kataloğu geliştirme merkezinize Bağlan
  • Dağıtım kimliklerini yapılandırma
  • GitHub ortamlarını yapılandırma
  • CI/CD işlem hattını test edin

Önkoşullar

1. Geliştirme merkezi oluşturma ve yapılandırma

Bu bölümde üç ortam türüne sahip bir Azure Dağıtım Ortamları geliştirme merkezi ve projesi oluşturacaksınız: Geliştirme, Test ve Üretim.

  • Üretim ortamı türü tek bir üretim ortamını içerir.
  • Geliştirme'de her özellik dalı için yeni bir ortam oluşturulur.
  • Her çekme isteği için Test'te yeni bir ortam oluşturulur.

1.1 Azure CLI'yi ayarlama

Başlamak için Azure'da oturum açın. Aşağıdaki komutu çalıştırın ve kimlik doğrulama işlemini tamamlamak için istemleri izleyin.

az login

Ardından Azure CLI için Azure devcenter uzantısını yükleyin.

az extension add --name devcenter --upgrade

Geçerli uzantı yüklendikten sonra ad alanını Microsoft.DevCenter kaydedin.

az provider register --namespace Microsoft.DevCenter

Bahşiş

Bu öğretici boyunca, daha sonra kullanmak üzere çeşitli değerleri ortam değişkenleri olarak kaydedeceksiniz. Gerektiğinde kullanılabilir olduklarından emin olmak için bu değeri başka bir yere de kaydetmek isteyebilirsiniz.

Kullanıcınızın kimliğini alın ve daha sonra kullanmak üzere bir ortam değişkeni olarak ayarlayın:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Geçerli aboneliğinizin abonelik kimliğini alın.

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Geçerli kiracınızın kiracı kimliğini alın.

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Aşağıdaki ortam değişkenlerini ayarlayın:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Dekont

Genel olarak benzersiz bir anahtar kasası adı kullanmanız gerekir. Aksi takdirde aşağıdaki hatayı alabilirsiniz: Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 Geliştirme merkezi oluşturma

Geliştirme merkezi, benzer ayarlara sahip proje ve ortamlardan oluşan bir koleksiyondur. Geliştirme merkezleri, ortam oluşturmak için kullanılabilecek şablon ve yapıt kataloğuna erişim sağlar. Geliştirme merkezleri ayrıca ortamlara ve projelere erişimi yönetmek için bir yol sağlar.

Kaynak grubu oluşturun.

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Yeni bir geliştirme merkezi oluşturun.

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Önceki komut JSON çıkışını oluşturur. ve identity.principalId değerlerini id daha sonra kullanmak üzere ortam değişkenleri olarak kaydedin.

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Abonelikte geliştirme merkezi kimlik sahibi rolü atama

Geliştirme merkezi, ortam türleriyle ilişkili aboneliklerde rol atamak için izinlere ihtiyaç duyar.

Gereksiz karmaşıklığı azaltmak için bu öğreticide geliştirme merkezi ve tüm ortam türleri için tek bir abonelik kullanacaksınız. Uygulamada geliştirme merkezi ve hedef dağıtım abonelikleri büyük olasılıkla farklı ilkeler uygulanmış ayrı abonelikler olacaktır.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Ortam türlerini oluşturma

Geliştirme merkezi düzeyinde ortam türleri geliştirme ekiplerinin oluşturabileceği geliştirme, test, korumalı alan, ön üretim veya üretim gibi ortamları tanımlar.

Üç yeni ortam türü oluşturun: Geliştirme, Test ve Üretim.

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 Proje oluşturma

Proje, geliştirme ekibinin erişim noktasıdır. Her proje bir geliştirme merkeziyle ilişkilendirilir.

Yeni bir proje oluşturma.

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

Önceki komut JSON çıkışını oluşturur. id Değeri daha sonra kullanmak üzere bir ortam değişkeni olarak kaydedin.

AZURE_PROJECT_ID=<id>

Projede kendinize DevCenter Project Yönetici rolünü atayın.

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Proje ortamı türleri oluşturma

Proje düzeyinde, platform mühendisleri geliştirme ekibi için hangi ortam türlerinin uygun olduğunu belirtir.

Geliştirme merkezinde oluşturduğunuz ortam türlerinin her biri için yeni bir proje ortamı türü oluşturun.

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Anahtar kasası oluşturma

Bu bölümde yeni bir anahtar kasası oluşturacaksınız. Öğreticinin devamında GitHub'dan kişisel erişim belirtecini kaydetmek için bu anahtar kasasını kullanacaksınız.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

Bir kez daha, önceki komutun JSON çıkışındaki öğesini ortam değişkeni olarak kaydedin id .

AZURE_KEYVAULT_ID=<id>

Yeni anahtar kasasında kendinize Key Vault Yönetici istrator rolünü verin.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Geliştirme merkezinin kimliğine Key Vault Gizli Dizi kullanıcısı rolünü atayın.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. GitHub deposu oluşturma ve yapılandırma

Bu bölümde, kataloğu depolamak için yeni bir GitHub deposu oluşturacaksınız. Azure Dağıtım Ortamları hem GitHub hem de Azure DevOps depolarını destekler. Bu öğreticide GitHub'ı kullanacaksınız.

3.1 Yeni bir GitHub deposu oluşturma

Bu adımda GitHub hesabınızda önceden tanımlanmış dizin yapısı, dalları ve dosyaları olan yeni bir depo oluşturacaksınız. Bu öğeler örnek şablon deposundan oluşturulur.

  1. Örnek şablondan yeni bir GitHub deposu oluşturmak için bu bağlantıyı kullanın.

    Screenshot showing the GitHub create repository from template page.

  2. Ücretli bir GitHub hesabınız yoksa deponuzu Genel olarak ayarlayın.

  3. Şablondan depo oluştur’u seçin.

  4. Eylemler sekmesinde, Ortam Oluştur eyleminin başarısız olduğuna dikkat edin. Bu davranış beklenir, sonraki adıma geçebilirsiniz.

3.2 Deponun ana dalını koruma

Dal koruma kurallarını ayarlayarak önemli dalları koruyabilirsiniz. Koruma kuralları, ortak çalışanların dalı silip silip silemeyeceğini veya dala göndermeyi zorlayıp zorlayamayacağını tanımlar. Ayrıca, durum denetimlerini geçirme veya doğrusal işleme geçmişi gibi dalına yapılan tüm gönderimler için gereksinimleri de ayarlar.

Dekont

Korumalı dallar GitHub Free ve GitHub Free ile kuruluşlar için genel depolarda ve GitHub Pro, GitHub Team, GitHub Enterprise Cloud ve GitHub Enterprise Server ile genel ve özel depolarda kullanılabilir. Daha fazla bilgi için bkz . GitHub ürünleri.

  1. Henüz açık değilse deponuzun ana sayfasına gidin.

  2. Deponuzun adının altında Ayarlar'yi seçin. Ayarlar sekmesini göremiyorsanız... açılan menüsünü ve ardından Ayarlar'ı seçin.

    Screenshot showing the GitHub repository page with settings highlighted.

  3. Kenar çubuğunun Kod ve otomasyon bölümünde Dallar'ı seçin.

    Screenshot showing the settings page, with branches highlighted.

  4. Dal koruma kuralları'nın altında Dal koruma kuralı ekle'yi seçin.

    Screenshot showing the branch protection rule page, with Add branch protection rule highlighted.

  5. Dal adı deseni'nin altına girinmain.

    Screenshot showing the branch name pattern text box, with main highlighted.

  6. Eşleşen dalları koru altında Birleştirmeden önce çekme isteği gerektir'i seçin.

    Screenshot showing protect matching branches with Require a pull request before merging selected and highlighted.

  7. İsteğe bağlı olarak, daha fazla koruma kuralı etkinleştirebilirsiniz.

  8. Oluştur’u seçin.

3.3 Depo değişkenlerini yapılandırma

Dekont

GitHub Actions için yapılandırma değişkenleri beta sürümündedir ve değiştirilebilir.

  1. Kenar çubuğunun Güvenlik bölümünde Gizli diziler ve değişkenler'i ve ardından Eylemler'i seçin.

    Screenshot showing the Security section of the sidebar with Actions highlighted.

  2. Değişkenler sekmesini seçin.

  3. Tablodaki her öğe için:

    1. Yeni depo değişkeni'ni seçin.
    2. Ad alanına değişken adını girin.
    3. Değer alanına tabloda açıklanan değeri girin.
    4. Değişken ekle'yi seçin.
    Değişken adı Değişken değer
    AZURE_DEVCENTER Geliştirme merkezi adınız
    AZURE_PROJECT Projenizin adı
    AZURE_CATALOG "Ortamlar" olarak ayarlayın
    AZURE_CATALOG_ITEM "FunctionApp" olarak ayarlayın
    AZURE_SUBSCRIPTION_ID Azure abonelik kimliğiniz
    AZURE_TENANT_ID Azure kiracı kimliğiniz

    Screenshot showing the variables page with the variables table.

3.4 GitHub kişisel erişim belirteci oluşturma

Ardından Azure Dağıtım Ortamları geliştirme merkezinizin deponuza bağlanmasına ve ortam kataloğunu kullanmasına olanak tanımak için ayrıntılı bir kişisel erişim belirteci oluşturun.

Dekont

Ayrıntılı kişisel erişim belirteci şu anda beta sürümündedir ve değiştirilebilir. Geri bildirimde bulunmak için geri bildirim tartışmasına bakın.

  1. GitHub.com herhangi bir sayfanın sağ üst köşesinde profil fotoğrafınızı ve ardından Ayarlar seçin.

  2. Sol kenar çubuğunda Geliştirici ayarları'nı seçin.

  3. Sol kenar çubuğundaki Kişisel erişim belirteçleri'nin altında Ayrıntılı belirteçler'i ve ardından Yeni belirteç oluştur'a tıklayın.

    Screenshot showing the GitHub personal access token options, with Fine-grained tokens and Generate new token highlighted.

  4. Yeni ayrıntılı kişisel erişim belirteci sayfasında, Belirteç adı'nın altında belirteç için bir ad girin.

  5. Süre sonu bölümünde belirteç için bir süre sonu seçin.

  6. Kaynak sahibi altında GitHub kullanıcınızı seçin.

  7. Depo erişimi'nin altında Yalnızca depoları seçin'i seçin, ardından Seçili depolar açılan listesinden oluşturduğunuz depoyu arayın ve seçin.

    Screenshot showing GitHub repository access options, with Only select repositories highlighted.

  8. İzinler'in altında Depo izinleri'ni seçin ve İçerikleri Salt Okunur olarak değiştirin.

    Screenshot showing GitHub repository permissions with Contents highlighted.

  9. Belirteç oluştur'a tıklayın.

  10. Kişisel erişim belirtecinizi şimdi kopyalayın ve kaydedin. Bir daha görüntüleyemezsiniz.

3.5 Kişisel erişim belirtecinizi key vault'a kaydetme

Ardından, kişisel erişim belirtecini pat adlı bir anahtar kasası gizli dizisi olarak kaydedin.

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Kataloğu geliştirme merkezinize Bağlan

Azure Dağıtım Ortamları'nda katalog, bir dizi ortam tanımı içeren bir depodur. Katalog öğeleri, kod olarak altyapı (IaC) şablonundan ve bildirim işlevi gören bir ortam dosyasından oluşur. Şablon ortamı tanımlar ve ortam dosyası şablon hakkında meta veriler sağlar. Geliştirme ekipleri, ortam oluşturmak için katalogdaki ortam tanımlarını kullanır.

GitHub deponuzu oluşturmak için kullandığınız şablon, Ortamlar klasöründe bir katalog içerir.

Kataloğu geliştirme merkezinize ekleme

Aşağıdaki komutta değerini GitHub kuruluşunuz ve depo adınızla değiştirin < Organization/Repository > .

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Dağıtım kimliklerini yapılandırma

GitHub Actions ile OpenID Bağlan, sağlamlaştırılmış güvenlik sunmak için kısa süreli belirteçler kullanan bir kimlik doğrulama yöntemidir. Azure'da GitHub Actions'ın kimliğini doğrulamak için önerilen yöntemdir.

Bir hizmet sorumlusunun kimliğini doğrudan gizli dizi kullanarak da doğrulayabilirsiniz, ancak bu öğreticinin kapsamı dışındadır.

5.1 Dağıtım kimlikleri oluşturma

  1. Üç ortam türünün her biri için Microsoft Entra uygulamalarını ve hizmet sorumlularını kaydedin.

    Dev için Microsoft Entra uygulamasını oluşturun.

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Bu komut, Graph API appId ile federasyon kimlik bilgileri oluştururken kullandığınız bir id ve (istemci kimliği olarak da adlandırılır) ile JSON çıkışını verir.

    Aşağıdaki ortam değişkenlerini ayarlayın:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Test için tekrarlayın.

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Ve Prod için.

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Her uygulama için bir hizmet sorumlusu oluşturun.

    Dev için yeni bir hizmet sorumlusu oluşturmak için aşağıdaki komutu çalıştırın.

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Bu komut farklı id bir JSON çıkışı oluşturur ve sonraki adımda kullanılacaktır.

    Aşağıdaki ortam değişkenlerini ayarlayın:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Test için tekrarlayın.

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Ve Prod için.

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Her active directory uygulaması için yeni bir federasyon kimliği kimlik bilgileri oluşturmak için aşağıdaki komutları çalıştırın.

    Aşağıdaki üç komutun her birinde öğesini GitHub kuruluşunuzun ve deponuzun adıyla değiştirin < Organization/Repository > .

    Dev için federasyon kimliği kimlik bilgilerini oluşturun.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    Test için.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Ve Prod için.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Dağıtım kimliklerine rol atama

  1. Her dağıtım kimliğine projedeki Okuyucu rolünü atayın.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Her dağıtım kimliğini Dağıtım Ortamları Kullanıcı rolünü ilgili ortam türüne atayın.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. GitHub ortamlarını yapılandırma

GitHub ortamlarıyla, koruma kuralları ve gizli dizilerle ortamları yapılandırabilirsiniz. Bir ortama başvuran bir iş akışı işi, ortamın gizli dizilerini çalıştırmadan veya bunlara erişmeden önce ortam için herhangi bir koruma kuralına uymalıdır.

Azure Dağıtım Ortamları projesindeki ortam türlerine eşlenen Geliştirme, Test ve Üretim ortamları oluşturun.

Dekont

Ortamlar, ortam gizli dizileri ve ortam koruma kuralları tüm ürünler için genel depolarda kullanılabilir. Özel veya depolardaki ortamlara, ortam gizli dizilerine ve dağıtım dallarına erişmek için GitHub Pro, GitHub Team veya GitHub Enterprise kullanmanız gerekir. Özel veya depolardaki diğer ortam koruma kurallarına erişmek için GitHub Enterprise'ı kullanmanız gerekir. Daha fazla bilgi için bkz . GitHub ürünleri.

6.1 Geliştirme ortamını oluşturma

  1. GitHub'da deponuzun ana sayfasına gidin.

  2. Deponuzun adının altında Ayarlar'yi seçin. Ayarlar sekmesini göremiyorsanız... açılan menüsünü ve ardından Ayarlar'ı seçin.

  3. Sol kenar çubuğunda Ortamlar'ı seçin.

  4. Yeni ortam'ı seçin ve ortam adı olarak Dev yazın, ardından Ortamı yapılandır'ı seçin.

    Screenshot showing the Environments Add pane, with the environment name Dev, and Configure Environment highlighted.

  5. Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.

    Screenshot showing the Environment Configure Dev pane, with Add secret highlighted.

  6. Değer olarak, daha önce oluşturduğunuz *Dev**Microsoft Entra uygulamasının istemci kimliğini (appId) girin (ortam değişkeni olarak $DEV_AZURE_CLIENT_ID kaydedilir).

    Screenshot of the Add secret box with the name AZURE CLIENT ID, the value set to an ID number, and add secret highlighted.

  7. Add secret (Gizli dizi ekle) öğesini seçin.

6.2 Test ortamını oluşturma

Sol kenar çubuğunda Ortamlar'ı seçerek ana ortamlar sayfasına dönün.

  1. Yeni ortam'ı seçin ve ortam adı için Test yazın, ardından Ortamı yapılandır'ı seçin.

  2. Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.

  3. Değer için, daha önce oluşturduğunuz Test Microsoft Entra uygulamasının istemci kimliğini (appId) girin (ortam değişkeni olarak $TEST_AZURE_CLIENT_ID kaydedilir).

  4. Add secret (Gizli dizi ekle) öğesini seçin.

6.3 Prod ortamını oluşturma

Bir kez daha sol kenar çubuğunda Ortamlar'ı seçerek ana ortamlar sayfasına dönün

  1. Yeni ortam'ı seçin ve ortam adı olarak Prod yazın, ardından Ortamı yapılandır'ı seçin.

  2. Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.

  3. Değer olarak, daha önce oluşturduğunuz Prod Microsoft Entra uygulamasının istemci kimliğini (appId) girin (ortam değişkeni olarak $PROD_AZURE_CLIENT_ID kaydedilir).

  4. Add secret (Gizli dizi ekle) öğesini seçin.

Ardından, kendinizi bu ortam için gerekli gözden geçiren olarak ayarlayın. Prod'a dağıtmaya çalışırken, GitHub Actions başlamadan önce onay bekler. Bir iş onay beklerken durumu Bekliyor olur. Bir iş 30 gün içinde onaylanmamışsa otomatik olarak başarısız olur.

Ortamlar ve gerekli onaylar hakkında daha fazla bilgi için bkz . Dağıtım için ortamları kullanma.

  1. Gerekli gözden geçirenler'i seçin.

  2. GitHub kullanıcınızı arayın ve seçin. En fazla altı kişi veya ekip girebilirsiniz. Devam etmesi için gerekli gözden geçirenlerden yalnızca birinin işi onaylaması gerekir.

  3. Koruma kurallarını kaydet'i seçin.

Son olarak dağıtım dalı olarak yapılandırın main :

  1. Dağıtım dalları açılan listesinde Seçili dallar'ı seçin.

  2. Dağıtım dalı kuralı ekle'yi seçin ve Dal adı deseni için girinmain.

  3. Kural ekle'yi seçin.

7. CI/CD işlem hattını test edin

Bu bölümde, depoda bazı değişiklikler yapacak ve CI/CD işlem hattını test edin.

7.1 Depoyu kopyalama

  1. Terminalinizde, deponuzu yerel olarak kopyalamak istediğiniz bir klasöre cd yazın.

  2. Depoyu kopyalayın. Aşağıdaki komutta değerini GitHub kuruluşunuzun ve deponuzun adıyla değiştirmeyi < Organization/Repository > unutmayın.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Kopyalanan dizine gidin.

    cd <repository>
    
  4. Ardından yeni bir dal oluşturun ve uzaktan yayımlayın.

    git checkout -b feature1
    
    git push -u origin feature1
    

    Azure'da bu dala özgü yeni bir ortam oluşturulur.

  5. GitHub'da yeni oluşturduğunuz deponuzun ana sayfasına gidin.

  6. Deponuzun adının altında Eylemler'i seçin.

    Yeni bir Ortam Oluştur iş akışının çalıştığını görmeniz gerekir.

7.2 Kodda değişiklik yapma

  1. YEREL olarak kopyalanan depoyu VS Code'da açın.

  2. ADE'de . Öğretici klasörü, bir dosyada değişiklik yapın.

  3. Değişikliğinizi kaydedin.

7.3 Ortamı güncelleştirmek için değişikliklerinizi gönderme

  1. Değişikliklerinizi hazırlama ve dala feature1 gönderme.

    git add .
    git commit -m '<commit message>'
    git push
    
  2. Deponuzun Eylemler sayfasında yeni bir Güncelleştirme Ortamı iş akışının çalıştığını görürsünüz.

7.4 Çekme isteği oluşturma

  1. GitHub çekme isteği main <- feature1oluşturun.

  2. Deponuzun Eylemler sayfasında, Test ortamı türünü kullanarak çekme isteğine özgü bir ortam oluşturmak için yeni bir iş akışının başlatılıyor olduğunu görürsünüz.

7.5 Çekme isteğini birleştirme

  1. GitHub'da, oluşturduğunuz çekme isteğine gidin.

  2. Çekme isteğini birleştirin.

    Değişiklikleriniz üretim ortamında yayımlanır ve dal ve çekme isteği ortamları silinir.

Kaynakları temizleme

Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, daha fazla ücret ödememek için bunları silin. Örnek uygulamayı farklı bir kaynak grubuna dağıttıysanız aşağıdaki adımları tekrarlamak isteyebilirsiniz.

Azure portalını kullanarak kaynakları silmek için:

  1. Sol üst köşedeki menü düğmesini ve ardından Kaynak grupları'nı seçin.

  2. Listeden, oluşturduğunuz kaynak grubunu seçin.

  3. Kaynak grubunu sil'i seçin.

  4. Kaynak grubu adını girin. Ardından Sil'i seçin.

Azure CLI kullanarak kaynakları silmek için aşağıdaki komutu girin:

az group delete --name <my-dev-center-rg>

Kaynak grubunu sildiğinizde içindeki tüm kaynakların silineceği unutmayın.