Öğ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
- Etkin aboneliği olan bir Azure hesabı.
- Azure aboneliğinde sahip izinleri.
- Bir GitHub hesabı.
- Hesabınız yoksa ücretsiz olarak kaydolun.
- Git'i yükleyin.
- Azure CLI’yi yükleyin.
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.
Örnek şablondan yeni bir GitHub deposu oluşturmak için bu bağlantıyı kullanın.
Ücretli bir GitHub hesabınız yoksa deponuzu Genel olarak ayarlayın.
Şablondan depo oluştur’u seçin.
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.
Henüz açık değilse deponuzun ana sayfasına gidin.
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.
Kenar çubuğunun Kod ve otomasyon bölümünde Dallar'ı seçin.
Dal koruma kuralları'nın altında Dal koruma kuralı ekle'yi seçin.
Dal adı deseni'nin altına girin
main
.Eşleşen dalları koru altında Birleştirmeden önce çekme isteği gerektir'i seçin.
İsteğe bağlı olarak, daha fazla koruma kuralı etkinleştirebilirsiniz.
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.
Kenar çubuğunun Güvenlik bölümünde Gizli diziler ve değişkenler'i ve ardından Eylemler'i seçin.
Değişkenler sekmesini seçin.
Tablodaki her öğe için:
- Yeni depo değişkeni'ni seçin.
- Ad alanına değişken adını girin.
- Değer alanına tabloda açıklanan değeri girin.
- 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
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.
GitHub.com herhangi bir sayfanın sağ üst köşesinde profil fotoğrafınızı ve ardından Ayarlar seçin.
Sol kenar çubuğunda Geliştirici ayarları'nı seçin.
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.
Yeni ayrıntılı kişisel erişim belirteci sayfasında, Belirteç adı'nın altında belirteç için bir ad girin.
Süre sonu bölümünde belirteç için bir süre sonu seçin.
Kaynak sahibi altında GitHub kullanıcınızı seçin.
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.
İzinler'in altında Depo izinleri'ni seçin ve İçerikleri Salt Okunur olarak değiştirin.
Belirteç oluştur'a tıklayın.
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
Üç 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 birid
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>
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>
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
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
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 iç 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 iç 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
GitHub'da deponuzun ana sayfasına gidin.
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.
Sol kenar çubuğunda Ortamlar'ı seçin.
Yeni ortam'ı seçin ve ortam adı olarak Dev yazın, ardından Ortamı yapılandır'ı seçin.
Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.
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).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.
Yeni ortam'ı seçin ve ortam adı için Test yazın, ardından Ortamı yapılandır'ı seçin.
Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.
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).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
Yeni ortam'ı seçin ve ortam adı olarak Prod yazın, ardından Ortamı yapılandır'ı seçin.
Ortam gizli dizileri'nin altında Gizli Dizi Ekle'yi seçin ve Ad için AZURE_CLIENT_ID girin.
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).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.
Gerekli gözden geçirenler'i seçin.
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.
Koruma kurallarını kaydet'i seçin.
Son olarak dağıtım dalı olarak yapılandırın main
:
Dağıtım dalları açılan listesinde Seçili dallar'ı seçin.
Dağıtım dalı kuralı ekle'yi seçin ve Dal adı deseni için girin
main
.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
Terminalinizde, deponuzu yerel olarak kopyalamak istediğiniz bir klasöre cd yazın.
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
Kopyalanan dizine gidin.
cd <repository>
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.
GitHub'da yeni oluşturduğunuz deponuzun ana sayfasına gidin.
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
YEREL olarak kopyalanan depoyu VS Code'da açın.
ADE'de . Öğretici klasörü, bir dosyada değişiklik yapın.
Değişikliğinizi kaydedin.
7.3 Ortamı güncelleştirmek için değişikliklerinizi gönderme
Değişikliklerinizi hazırlama ve dala
feature1
gönderme.git add . git commit -m '<commit message>' git push
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
GitHub çekme isteği
main <- feature1
oluşturun.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
GitHub'da, oluşturduğunuz çekme isteğine gidin.
Ç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:
Sol üst köşedeki menü düğmesini ve ardından Kaynak grupları'nı seçin.
Listeden, oluşturduğunuz kaynak grubunu seçin.
Kaynak grubunu sil'i seçin.
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.
İlgili içerik
- Azure CLI kullanarak ortam oluşturma ve ortama erişme
- Tam komut listeleri için Microsoft Dev Box ve Azure Dağıtım Ortamları Azure CLI belgelerine bakın
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin