إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ابدأ باستخدامإجراءات GitHub عن طريق استخدام سير العمل لنشر تحديثات قاعدة البيانات على Azure SQL Database.
المتطلبات الأساسية
سوف تحتاج:
- حساب Azure باشتراك نشط. قم بإنشاء حساب مجانًا.
- مستودع GitHub مع مستودع dacpac (
Database.dacpac). إذا لم يكن لديك حساب GitHub، فقم بالتسجيل مجاناً. - قاعدة بيانات Azure SQL
نظرة عامة على ملف سير العمل
يتم تحديد سير عمل 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
في GitHub، تصفح المستودع الخاص بك.
حدد Settings > Secrets > New secret.
الصق ناتج JSON بالكامل من أمر Azure CLI في حقل قيمة بيانات الدخول السرية. قم بتسمية بيانات الدخول السرية بالاسم
AZURE_CREDENTIALS.عندما تقوم بتكوين ملف سير العمل لاحقاً، فإنك تستخدم بيانات الدخول السرية للإدخال
credsلإجراء Azure Login. على سبيل المثال:- uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}حدد New secret مرة أخرى.
الصق قيمة سلسلة الاتصال في حقل قيمة secret. قم بتسمية بيانات الدخول السرية بالاسم
AZURE_SQL_CONNECTION_STRING.
أضف سير العمل الخاص بك
انتقل إلى Actions لمستودع GitHub الخاص بك.
حدد Set up your workflow yourself.
احذف كل شيء بعد قسم
on:من ملف سير العمل. على سبيل المثال، قد يبدو سير العمل المتبقي هكذا.name: CI on: push: branches: [ master ] pull_request: branches: [ master ]قم بإعادة تسمية سير العمل الخاص بك
SQL for GitHub Actionsوإضافة إجراءات الخروج وتسجيل الدخول. ستؤدي هذه الإجراءات إلى التحقق من التعليمة البرمجية لموقعك والمصادقة مع Azure باستخدام بيانات الدخول السرية لـAZURE_CREDENTIALSGitHub الذي أنشأته مسبقاً.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 }}استخدم إجراء نشر 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'أكمل سير العمل الخاص بك عن طريق إضافة إجراء لتسجيل الخروج من 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
مراجعة النشر الخاص بك
انتقل إلى Actions لمستودع GitHub الخاص بك.
افتح النتيجة الأولى لرؤية السجلات التفصيلية لتشغيل سير العمل الخاص بك.
تنظيف الموارد
عندما لا تحتاج إلى قاعدة بيانات Azure SQL ومستودعك، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد ومستودع GitHub.