Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veritabanı güncelleştirmelerini MySQL için Azure Veritabanı esnek sunucuya dağıtmak için bir iş akışı kullanarak GitHub Actions'ı kullanmaya başlayın.
Önkoşullar
Şunlara ihtiyacınız var:
Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Bir GitHub hesabı. GitHub hesabınız yoksa ücretsiz olarak kaydolun.
Örnek verileri (
data.sql) içeren bir GitHub deposu.Önemli
Bu hızlı başlangıçta, gerekirse ilişkili IP adresini bir güvenlik duvarı kuralına ekleyebilmek için bilgisayarınıza bir GitHub deposu kopyaladığınız varsayılır.
Azure MySQL için Esnek Sunucu veritabanı örneği.
İş akışı dosyasına genel bakış
GitHub Actions iş akışı, deponuzdaki yoldaki /.github/workflows/ bir YAML (.yml) dosyası tarafından tanımlanır. Bu tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.
Dosyanın iki bölümü vardır:
| Section | Görevler |
|---|---|
| Kimlik Doğrulaması | 1. Dağıtım kimlik bilgileri oluşturun. |
| Dağıtma | 1. Veritabanını dağıtın. |
Dağıtım kimlik bilgileri oluşturma
OIDC ile Azure Oturum Açma eylemini kullanmak için, Microsoft Entra uygulamasında veya kullanıcı tarafından atanan yönetilen kimlikte federasyon kimlik bilgilerini yapılandırmanız gerekir.
Seçenek 1: Microsoft Entra uygulaması
- Azure Portal, Azure CLI veya Azure PowerShell kullanarak bir hizmet sorumlusu ile Microsoft Entra uygulaması oluşturun.
- GitHub Actions iş akışınızda daha sonra kullanmak üzere İstemci Kimliği, Abonelik Kimliği ve Dizin (kiracı) kimliği değerlerini kopyalayın.
- Azure portalı, Azure CLI veya Azure PowerShell ile hizmet sorumlunuza uygun bir rol atayın.
- GitHub Actions tarafından GitHub deponuz için verilen belirteçlere güvenmek adına Microsoft Entra uygulamasında federasyon kimlik bilgilerini yapılandırın.
Seçenek 2: Kullanıcı tarafından atanan yönetilen kimlik
- Kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.
- GitHub Actions iş akışınızda daha sonra kullanmak üzere İstemci Kimliği, Abonelik Kimliği ve Dizin (kiracı) kimliği değerlerini kopyalayın.
- Kullanıcı tarafından atanan yönetilen kimliğinize uygun bir rol atayın.
- GitHub Actions tarafından GitHub deponuza verilen belirteçlere güvenmek için kullanıcı tarafından atanan yönetilen kimlik üzerinde federasyon kimlik bilgilerini yapılandırın.
MySQL bağlantı dizesi kopyalama
Azure portalında, MySQL için Azure Veritabanı esnek sunucu örneğinize gidin ve Ayarlar
ADO.NET bağlantı dizesini kopyalayın. ve your_databaseiçin your_password yer tutucu değerlerini değiştirin.
Önemli
- Tek MySQL için Azure Veritabanı sunucu için Uid=adminusername@servername kullanın. @servername gerekli olduğuna dikkat edin.
- esnek MySQL için Azure Veritabanı sunucu için, olmadan Uid=adminusername@servername.
bağlantı dizesi GitHub gizli dizisi olarak kullanacaksınız.
GitHub gizli dizilerini yapılandırma
Oturum açma eylemine uygulamanızın İstemci Kimliğini, Dizin (kiracı) Kimliğini ve Abonelik Kimliğini sağlamanız gerekir. Bu değerler doğrudan iş akışında sağlanabilir veya GitHub gizli dizilerinde depolanabilir ve iş akışınızda başvurulabilir. Değerleri GitHub gizli dizileri olarak kaydetmek daha güvenli bir seçenektir.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
Yeni depo gizli dizisi'ni seçin.
Uyarı
Genel depolarda iş akışı güvenliğini geliştirmek için depo gizli dizileri yerine ortam gizli dizilerini kullanın. Eğer ortam onay gerektiriyorsa, biri gerekli gözden geçirenlerden onaylayana kadar görev ortamın gizli verilerine erişemez.
,
AZURE_CLIENT_IDveAZURE_TENANT_IDiçinAZURE_SUBSCRIPTION_IDgizli diziler oluşturun. Bu değerleri GitHub gizli dizileriniz için Microsoft Entra uygulamanızdan veya kullanıcı tarafından atanan yönetilen kimlikten kopyalayın:GitHub gizli dizisi Microsoft Entra uygulaması veya kullanıcı tarafından atanan yönetilen kimlik AZURE_CLIENT_ID Müşteri Kimliği AZURE_SUBSCRIPTION_ID Abonelik Kimliği AZURE_TENANT_ID Dizin (kiracı) kimliği Uyarı
Güvenlik nedeniyle, değerleri doğrudan iş akışına geçirmek yerine GitHub Gizli Dizilerini kullanmanızı öneririz.
İş akışınızı ekleme
GitHub deponuz için Eylemler'e gidin.
İş akışınızı kendiniz ayarlayın'ı seçin.
İş akışı dosyanızın bölümünden
on:sonra her şeyi silin. Örneğin, kalan iş akışınız şöyle görünebilir.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]İş akışınızı
MySQL for GitHub Actionsyeniden adlandırın ve kullanıma alma ve oturum açma eylemlerini ekleyin. Bu eylemler site kodunuzu kullanıma alır ve daha önce oluşturduğunuz GitHub gizli dizisiniAZURE_CREDENTIALSkullanarak Azure'da kimlik doğrulaması yapar.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}MySQL örneğine bağlanmak için Azure MySQL Dağıtımı eylemini kullanın. değerini sunucunuzun adıyla değiştirin
MYSQL_SERVER_NAME. Deponuzun kök düzeyinde adlıdata.sqlbir MySQL veri dosyanız olmalıdır.- uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql'Azure oturumunu kapatmak için bir eylem ekleyerek iş akışınızı tamamlayın. Tamamlanmış iş akışı aşağıdadır. Dosya, deponuzun klasöründe görünür
.github/workflows.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql' # Azure logout - name: logout run: | az logout
Dağıtımınızı gözden geçirme
GitHub deponuz için Eylemler'e gidin.
İş akışınızın çalıştırmasının ayrıntılı günlüklerini görmek için ilk sonucu açın.
Kaynakları temizleme
MySQL için Azure Veritabanı Esnek Sunucu veritabanınız ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.