Azure SQL Veritabanı bağlanmak için GitHub Actions'ı kullanma
Şunlar için geçerlidir: Azure SQL Veritabanı
veritabanı güncelleştirmelerini Azure SQL Veritabanı dağıtmak için bir iş akışı kullanarak GitHub Actions'ı kullanmaya başlayın.
Önkoşullar
Şunlara sahip olmanız gerekir:
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- dacpac paketi (
Database.dacpac
) içeren bir GitHub deposu. GitHub hesabınız yoksa ücretsiz olarak kaydolun. - Bir Azure SQL Veritabanı. Hızlı Başlangıç: Tek Azure SQL Veritabanı veritabanı oluşturma.
- Veritabanınıza aktaracak bir .dacpac dosyası.
İş 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.1. Dağıtım kimlik bilgileri oluşturun. |
Dağıtma | 1. Veritabanını dağıtın. |
Dağıtım kimlik bilgileri oluşturma
Azure CLI'da az ad sp create-for-rbac komutuyla bir hizmet sorumlusu oluşturun. Azure portalında veya Deneyin düğmesini seçerek bu komutu Azure Cloud Shell ile çalıştırın.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
parametresi --json-auth
Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu --sdk-auth
kullanımdan önceki sürümler kullanımdan kaldırma uyarısıyla kullanılır.
Yukarıdaki örnekte yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve uygulama adınızla değiştirin. Çıktı, Aşağıdakine benzer şekilde App Service uygulamanıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir. Bu JSON nesnesini daha sonra için kopyalayın.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
SQL bağlantı dizesi kopyalama
Azure portalında Azure SQL Veritabanı gidin ve Ayarlar>Bağlantı dizeleri'ni açın. ADO.NET bağlantı dizesini kopyalayın. ve your_password
için your_database
yer tutucu değerlerini değiştirin.
bağlantı dizesi GitHub gizli dizisi AZURE_SQL_CONNECTION_STRING
olarak ayarlayacaksınız.
GitHub gizli dizilerini yapılandırma
Gezinti menüsünde Ayarlar'a gidin.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
Yeni depo gizli dizisi'ni seçin.
Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını
AZURE_CREDENTIALS
verin.Add secret (Gizli dizi ekle) öğesini seçin.
SQL bağlantı dizesi gizli dizisini ekleme
Gezinti menüsünde Ayarlar'a gidin.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
Yeni depo gizli dizisi'ni seçin.
SQL bağlantı dizesi yapıştırın. Gizli diziye adını
AZURE_SQL_CONNECTION_STRING
verin.Add secret (Gizli dizi ekle) öğesini seçin.
İş 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: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]
İş akışınızı
SQL for GitHub Actions
yeniden 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_CREDENTIALS
kullanarak Azure'da kimlik doğrulaması yapar.name: SQL 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@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
SQL örneğine bağlanmak için Azure SQL Dağıtımı eylemini kullanın. Deponuzun kök düzeyinde bir dacpac paketine (
Database.dacpac
) sahip olmanız gerekir. Daha önce oluşturduğunuz GitHub gizli dizisiniAZURE_SQL_CONNECTION_STRING
kullanın.- uses: azure/sql-action@v2 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'Publish'
Azure oturumunuzu kapatma eylemi 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: SQL 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@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/sql-action@v2 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'Publish' # 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
Azure SQL veritabanınız ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.