استخدام إجراءات GitHub للاتصال بقاعدة بيانات Azure SQL

ابدأ باستخدامإجراءات GitHub عن طريق استخدام سير العمل لنشر تحديثات قاعدة البيانات على Azure SQL Database.

المتطلبات الأساسية

سوف تحتاج:

نظرة عامة على ملف سير العمل

يتم تحديد سير عمل GitHub Actions بواسطة ملف YAML (.yml) في المسار /.github/workflows/ في المستودع الخاص بك. يحتوي هذا التعريف على مختلف الخطوات والمعلمات التي تشكل سير العمل.

يتكون الملف من قسمين:

القسم المهام
المصادقة 1. تحديد مدير الخدمة.
2. إنشاء سر GitHub.
نشر 1. نشر قاعدة البيانات.

إنشاء أوراق اعتماد النشر

يمكنك إنشاء مبدأ خدمة باستخدام الأمر «az ad sp create-for-rbac» في Azure CLI. قم بتشغيل هذا الأمر باستخدام Azure Cloud Shell في مدخل Microsoft Azure أو عن طريق تحديد الزر Try it.

استبدل العناصر النائبة server-name باسم خادم SQL المستضاف على Azure. استبدل subscription-id وresource-group بمعرف الاشتراك ومجموعة الموارد المتصلة بخادم SQL.

   az ad sp create-for-rbac --name {server-name} --role contributor 
                            --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} 
                            --sdk-auth

الإخراج هو كائن JSON مع بيانات اعتماد تعيين الدور التي توفر الوصول إلى قاعدة البيانات الخاصة بك المشابهة لهذا المثال. نسخ كائن JSON الإخراج الخاص بك للأحدث.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

هام

من الممارسات الجيدة دائماً منح الحد الأدنى من الوصول. يقتصر النطاق في المثال السابق على الخادم المحدد وليس مجموعة الموارد بأكملها.

انسخ سلسلة اتصال SQL

في مدخل Microsoft Azure، انتقل إلى Azure SQL Database الخاص بك وافتح «Settings»>«Connection strings» . انسخ سلسلة الاتصال ADO.NET. استبدل قيم العناصر النائبة لـ your_database و your_password. سوف تبدو سلسلة الاتصال مشابهة لهذا الإخراج.

    Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

سوف تستخدم سلسلة الاتصال كسر GitHub.

تكوين بيانات الدخول السرية لـ GitHub

  1. في GitHub، تصفح المستودع الخاص بك.

  2. حدد Settings > Secrets > New secret.

  3. الصق ناتج JSON بالكامل من أمر Azure CLI في حقل قيمة بيانات الدخول السرية. قم بتسمية بيانات الدخول السرية بالاسم AZURE_CREDENTIALS.

    عندما تقوم بتكوين ملف سير العمل لاحقاً، فإنك تستخدم بيانات الدخول السرية للإدخال creds لإجراء Azure Login. على سبيل المثال:

    - uses: azure/login@v1
    with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  4. حدد New secret مرة أخرى.

  5. الصق قيمة سلسلة الاتصال في حقل قيمة secret. قم بتسمية بيانات الدخول السرية بالاسم AZURE_SQL_CONNECTION_STRING.

أضف سير العمل الخاص بك

  1. انتقل إلى Actions لمستودع GitHub الخاص بك.

  2. حدد Set up your workflow yourself.

  3. احذف كل شيء بعد قسم on: من ملف سير العمل. على سبيل المثال، قد يبدو سير العمل المتبقي هكذا.

    name: CI
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
  4. قم بإعادة تسمية سير العمل الخاص بك SQL for GitHub Actions وإضافة إجراءات الخروج وتسجيل الدخول. ستؤدي هذه الإجراءات إلى التحقق من التعليمة البرمجية لموقعك والمصادقة مع Azure باستخدام بيانات الدخول السرية لـ AZURE_CREDENTIALS GitHub الذي أنشأته مسبقاً.

    name: SQL for GitHub Actions
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
    jobs:
    build:
        runs-on: windows-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v1
        with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. استخدم إجراء نشر Azure SQL للاتصال بمثيل SQL. استبدل SQL_SERVER_NAME باسم الخادم الخاص بك. يجب أن تكون لديك حزمة dacpac (Database.dacpac) في المستوى الجذري لمستودعك.

    - uses: azure/sql-action@v1
      with:
        server-name: SQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        dacpac-package: './Database.dacpac'
    
  6. أكمل سير العمل الخاص بك عن طريق إضافة إجراء لتسجيل الخروج من Azure. هنا سير العمل المكتمل. سيظهر الملف في المجلد .github/workflows من المستودع الخاص بك.

    name: SQL for GitHub Actions
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
    
    jobs:
    build:
        runs-on: windows-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v1
        with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
    - uses: azure/sql-action@v1
      with:
        server-name: SQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        dacpac-package: './Database.dacpac'
    
        # Azure logout 
    - name: logout
      run: |
         az logout
    

مراجعة النشر الخاص بك

  1. انتقل إلى Actions لمستودع GitHub الخاص بك.

  2. افتح النتيجة الأولى لرؤية السجلات التفصيلية لتشغيل سير العمل الخاص بك.

    Log of GitHub actions run

تنظيف الموارد

عندما لا تحتاج إلى قاعدة بيانات Azure SQL ومستودعك، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد ومستودع GitHub.

الخطوات التالية