AzureFileCopy@6 - مهمة نسخ ملف Azure v6

نسخ الملفات إلى Azure Blob Storage أو الأجهزة الظاهرية.

يدعم هذا الإصدار من المهمة Workload Identity Federation ويستخدم Azure RBAC للوصول إلى Azure Storage. نتيجة لاستخدامنا ل Azure RBAC، لم تعد رموز SAS المميزة تستخدم. لمزيد من المعلومات، راجع قسم الملاحظات .

بناء الجملة

# Azure file copy v6
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@6
  inputs:
    SourcePath: # string. Required. Source. 
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    Destination: # 'AzureBlob' | 'AzureVMs'. Required. Destination Type. 
    storage: # string. Alias: StorageAccountRM. Required. RM Storage Account. 
    #ContainerName: # string. Required when Destination = AzureBlob. Container Name. 
    #BlobPrefix: # string. Optional. Use when Destination = AzureBlob. Blob Prefix. 
    #resourceGroup: # string. Alias: EnvironmentNameRM. Required when Destination = AzureVMs. Resource Group. 
    #ResourceFilteringMethod: 'machineNames' # 'machineNames' | 'tags'. Optional. Use when Destination = AzureVMs. Select Machines By. Default: machineNames.
    #MachineNames: # string. Optional. Use when Destination = AzureVMs. Filter Criteria. 
    #vmsAdminUserName: # string. Required when Destination = AzureVMs. Admin Login. 
    #vmsAdminPassword: # string. Required when Destination = AzureVMs. Password. 
    #TargetPath: # string. Required when Destination = AzureVMs. Destination Folder. 
    #AdditionalArgumentsForBlobCopy: # string. Optional Arguments (for uploading files to blob). 
    #AdditionalArgumentsForVMCopy: # string. Optional. Use when Destination = AzureVMs. Optional Arguments (for downloading files to VM). 
    #enableCopyPrerequisites: false # boolean. Optional. Use when Destination = AzureVMs. Enable Copy Prerequisites. Default: false.
    #CopyFilesInParallel: true # boolean. Optional. Use when Destination = AzureVMs. Copy in Parallel. Default: true.
    #CleanTargetBeforeCopy: false # boolean. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.

الإدخالات

SourcePath - مصدر
string. مطلوب

موقع ملفات المصدر. تتضمن القيم المدعومة مسارات YAML ودعم الإصدار الكلاسيكي متغيرات النظام المعرفة مسبقا مثل Build.Repository.LocalPath.

يتم دعم متغيرات الإصدار فقط في الإصدارات الكلاسيكية. يتم دعم رمز البطاقة البرية (*) في أي مكان في مسار الملف أو اسم الملف.

يجب أن يرجع التعبير مجلدا واحدا أو ملفا واحدا.


azureSubscription - اشتراك Azure
الاسم المستعار للإدخل: ConnectedServiceNameARM. string. مطلوب

حدد اسم اتصال خدمة Azure Resource Manager الذي تم تكوينه للاشتراك حيث توجد خدمة Azure المستهدفة أو الجهاز الظاهري أو حساب التخزين. راجع نظرة عامة على Azure Resource Manager للحصول على مزيد من التفاصيل.


Destination - نوع الوجهة
string. مطلوب القيم المسموح بها: AzureBlob (Azure Blob)، AzureVMs (أجهزة Azure الظاهرية).

حدد نوع الوجهة.


storage - حساب تخزين RM
الاسم المستعار للإدخل: StorageAccountRM. string. مطلوب

حدد حساب تخزين ARM موجود مسبقا. هذا هو حساب التخزين المستخدم كوسيط لنسخ الملفات إلى أجهزة Azure الظاهرية.


ContainerName - اسم الحاوية
string. مطلوب عند Destination = AzureBlob.

اسم الحاوية التي يتم نسخ الملفات إليها. إذا لم تكن الحاوية المحددة موجودة في حساب التخزين، فسيتم إنشاؤها.

لإنشاء دليل ظاهري داخل الحاوية، استخدم إدخال بادئة كائن ثنائي كبير الحجم. على سبيل المثال، بالنسبة للموقع https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/الهدف ، حدد اسم mycontainer الحاوية وبادئة الكائن الثنائي كبير الحجم: vd1/vd2.


BlobPrefix - بادئة كائن ثنائي كبير الحجم
string. ‏‏اختياري. استخدم عندما Destination = AzureBlob.

حدد بادئة للدليل الظاهري الوجهة داخل حاوية Azure Blob. ينطبق هذا عندما يحتوي على SourcePath حرف بدل قد يتطابق مع عناصر متعددة.

مثال: يمكنك إلحاق رقم بناء لبادئة الملفات من جميع الكائنات الثنائية كبيرة الحجم بنفس رقم الإنشاء.

مثال: إذا قمت بتحديد بادئة myvd1كائن ثنائي كبير الحجم ، يتم إنشاء دليل ظاهري داخل الحاوية. يتم نسخ الملفات من المصدر إلى https://myaccount.blob.core.windows.net/mycontainer/myvd1/.

في حالة أن SourcePath هو عنصر واحد بدون حرف بدل، ستعمل بادئة الكائن الثنائي كبير الحجم هذه كاسم الكائن الثنائي كبير الحجم الوجهة.


resourceGroup - مجموعة الموارد
الاسم المستعار للإدخل: EnvironmentNameRM. string. مطلوب عند Destination = AzureVMs.

حدد اسم مجموعة الموارد الهدف التي سيتم نسخ الملفات إليها.


ResourceFilteringMethod - تحديد الأجهزة حسب
string. ‏‏اختياري. استخدم عندما Destination = AzureVMs. القيم المسموح بها: machineNames (أسماء الأجهزة)، tags. القيمة الافتراضية: machineNames.

حدد اسم مضيف الجهاز الظاهري أو علامة تحدد مجموعة فرعية من الأجهزة الظاهرية في مجموعة موارد. يتم دعم العلامات للموارد التي تم إنشاؤها عبر Resource Manager Azure فقط.


MachineNames - معايير التصفية
string. ‏‏اختياري. استخدم عندما Destination = AzureVMs.

قم بتوفير قائمة بأسماء الأجهزة الظاهرية أو أسماء العلامات التي تحدد الأجهزة الظاهرية التي ستستهدفها المهمة. تتضمن معايير التصفية الصالحة ما يلي:

  • اسم مجموعة موارد Azure.
  • متغير إخراج من مهمة سابقة.
  • قائمة محددة بفاصلة بأسماء العلامات أو أسماء الأجهزة الظاهرية.
  • تنسيق أسماء الأجهزة الظاهرية باستخدام قائمة مفصولة بفواصل من FQDNs أو عناوين IP.
  • تنسيق أسماء العلامات لعامل تصفية كمثال {TagName}:{Value} : Role:DB;OS:Win8.1

vmsAdminUserName - تسجيل الدخول مسؤول
string. مطلوب عند Destination = AzureVMs.

قم بتوفير اسم المستخدم للحساب بأذونات إدارية على جميع الأجهزة الظاهرية الهدف.

  • تتضمن التنسيقات المدعومة: usernameو domain\usernamemachine-name\usernameو و..\username
  • تنسيقات UPN بما في ذلك username@domain.com وحسابات النظام المضمنة مثل NT Authority\System غير مدعومة.

vmsAdminPassword - كلمه المرور
string. مطلوب عند Destination = AzureVMs.

توفير كلمة المرور للمعلمة Admin Login .

للعثور على المتغير، حدد موقع المعلمة Admin Login . حدد أيقونة القفل لمتغير محدد في Variables علامة التبويب لحماية القيمة وإدراج اسم المتغير هنا.


TargetPath - مجلد الوجهة
string. مطلوب عند Destination = AzureVMs.

حدد المسار إلى المجلد في أجهزة Azure الظاهرية التي سيتم نسخ الملفات إليها.

متغيرات البيئة مثل $env:windir و $env:systemroot مدعومة. أمثلة: $env:windir\FabrikamFiber\Web و c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - الوسيطات الاختيارية (لتحميل الملفات إلى كائن ثنائي كبير الحجم)
string.

توفير وسيطات AzCopy.exe إضافية لاستخدامها عند التحميل إلى Blob والتنزيل إلى الأجهزة الظاهرية. راجع نقل البيانات باستخدام الأداة المساعدة Command-Line AzCopy للحصول على التفاصيل.

بالنسبة لحسابات التخزين المتميزة التي تدعم صفحة Azure فقط، تستخدم Blobs --blob-type=PageBlob كوسيطة إضافية.

تتضمن --log-level=INFO الوسيطات الافتراضية (افتراضي) و --recursive (إذا لم يكن $rootاسم الحاوية ).


AdditionalArgumentsForVMCopy - الوسيطات الاختيارية (لتنزيل الملفات إلى الجهاز الظاهري)
string. ‏‏اختياري. استخدم عندما Destination = AzureVMs.

توفير وسيطات إضافية لذلك AzCopy.exe سيتم تطبيقها عند التنزيل إلى الأجهزة الظاهرية مثل . --check-length=true

إذا لم يتم تحديد وسيطات اختيارية، تتم إضافة ما يلي بشكل افتراضي:

  • --log-level=INFO
  • --log-level=DEBUG (إذا كان المسار قيد التشغيل في مجموعة وضع التصحيح)
  • --recursive

enableCopyPrerequisites - تمكين نسخ المتطلبات الأساسية
boolean. ‏‏اختياري. استخدم عندما Destination = AzureVMs. القيمة الافتراضية: false.

عند التمكين، يستخدم هذا الخيار شهادة موقعة ذاتيا لتكوين وحدة استماع Windows Remote Management (WinRM) عبر بروتوكول HTTPS على المنفذ 5986. هذا التكوين مطلوب لتنفيذ عمليات النسخ على أجهزة Azure الظاهرية. ينطبق فقط على أجهزة ARM الظاهرية.

  • إذا تم الوصول إلى الأجهزة الظاهرية الهدف من خلال موازن تحميل، فكون قاعدة NAT واردة للسماح بالوصول على المنفذ 5986.
  • إذا كانت الأجهزة الظاهرية الهدف مقترنة بمجموعة أمان الشبكة (NSG)، فقم بتكوين قاعدة أمان واردة للسماح بالوصول على المنفذ 5986.

CopyFilesInParallel - نسخ بالتوازي
boolean. ‏‏اختياري. استخدم عندما Destination = AzureVMs. القيمة الافتراضية: true.

حدد true لنسخ الملفات بالتوازي مع الأجهزة الظاهرية الهدف.


CleanTargetBeforeCopy - هدف نظيف
boolean. القيمة الافتراضية: false.

حدد true لتنظيف المجلد الوجهة قبل نسخ الملفات.


skipCACheck - اختبار الشهادة
boolean. ‏‏اختياري. استخدم عندما Destination = AzureVMs. القيمة الافتراضية: true.

يتطلب WinRM شهادة لنقل HTTPS عند نسخ الملفات من كائن ثنائي كبير الحجم للتخزين الوسيط إلى أجهزة Azure الظاهرية.

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


خيارات التحكم بالمهمة

تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.

متغيرات الإخراج

تحدد هذه المهمة متغيرات الإخراج التالية، والتي يمكنك استهلاكها في خطوات انتقال البيانات من الخادم والوظائف والمراحل.

StorageContainerUri
Uri للحاوية حيث تم نسخ الملفات إليها. صالح فقط عندما تكون الوجهة المحددة هي Azure Blob.

الملاحظات

AzureFileCopy@6 يدعم Workload Identity Federation ويستخدم Azure RBAC للوصول إلى Azure Storage. نتيجة لاستخدام Azure RBAC، لم تعد رموز SAS المميزة تستخدم وتتم sasTokenTimeOutInMinutes إزالة إدخال المهمة.

يمكنك حظر استخدام مفاتيح حساب التخزين ورمز SAS المميز على حسابات التخزين الخاصة بك. في هذه الحالات، لا يمكن استخدام مهمة AzureFileCopy@5 ، التي تعتمد على رموز SAS المميزة.

AzureFileCopy@6 تستخدم المهمة Azure RBAC للوصول إلى تخزين الكائن الثنائي كبير الحجم بدلا من ذلك. يتطلب هذا هوية اتصال الخدمة المستخدم للحصول على دور التحكم في الوصول استنادا إلى الدور المناسب مثل Storage Blob Data Contributor. راجع ⁧⁩Assign an Azure role for access to blob data⁧⁩.

تدعم مهمة AzureFileCopy@6 أيضا اتصالات الخدمة التي تستخدم اتحاد هوية حمل العمل.

ملاحظة

تتم كتابة هذه المهمة في PowerShell وتعمل فقط عند تشغيلها على عوامل Windows. إذا كانت البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك تتطلب عوامل Linux وتحتاج إلى نسخ الملفات إلى حساب تخزين Azure، ففكر في تشغيل az storage blob الأوامر في مهمة Azure CLI كبديل.

يتم استخدام المهمة لنسخ ملفات التطبيق والبيانات الاصطناعية الأخرى المطلوبة لتثبيت التطبيق؛ مثل البرامج النصية PowerShell ووحدات PowerShell-DSC والمزيد.

عندما يكون الهدف هو أجهزة Azure الظاهرية، يتم نسخ الملفات أولا إلى حاوية Azure blob التي تم إنشاؤها تلقائيا ثم تنزيلها في الأجهزة الظاهرية. يتم حذف الحاوية بعد نسخ الملفات بنجاح إلى الأجهزة الظاهرية.

تستخدم المهمة AzCopy، الأداة المساعدة لسطر الأوامر التي تم إنشاؤها لنسخ البيانات بسرعة من وإلى حسابات تخزين Azure. يستخدم الإصدار 6 من مهمة Azure File Copy AzCopy V10.

يتطلب الإصدار 6 من Azure File Copy تخويل Azure Storage عبر Microsoft Entra ID. تتوفر المصادقة باستخدام كيان الخدمة والهوية المدارة. بالنسبة للهويات المدارة، يتم دعم الهوية المدارة على مستوى النظام فقط. يظهر مستوى التخويل المطلوب في الخيار 1: استخدام Microsoft Entra ID.

لنشر مجموعات موارد Azure التي تحتوي على أجهزة ظاهرية ديناميكيا، استخدم مهمة توزيع مجموعة موارد Azure . تحتوي هذه المهمة على نموذج قالب يمكنه تنفيذ العمليات المطلوبة لإعداد بروتوكول WinRM HTTPS على الأجهزة الظاهرية، وفتح المنفذ 5986 في جدار الحماية، وتثبيت شهادة الاختبار.

ملاحظة

إذا كنت تقوم بالتوزيع إلى مواقع Azure Static Website كحاوية في تخزين Blob، فاستخدم الإصدار 2 أو أعلى من المهمة من أجل الاحتفاظ باسم الحاوية $web .

ما هي المتطلبات الأساسية ل Azure PowerShell لاستخدام هذه المهمة؟

تتطلب المهمة تثبيت Azure PowerShell على الجهاز الذي يقوم بتشغيل عامل التنفيذ التلقائي. الإصدار الموصى به هو 1.0.2، ولكن المهمة ستعمل مع الإصدار 0.9.8 والإصدارات الأحدث. يمكنك استخدام Azure PowerShell Installer v1.0.2 للحصول على هذا.

ما هي المتطلبات الأساسية ل WinRM لهذه المهمة؟

تستخدم المهمة بروتوكول HTTPS للإدارة عن بعد ل Windows (WinRM) لنسخ الملفات من حاوية التخزين Blob إلى أجهزة Azure الظاهرية. يتطلب هذا تكوين خدمة WinRM HTTPS على الأجهزة الظاهرية، وتثبيت شهادة مناسبة.

تكوين WinRM بعد إنشاء الجهاز الظاهري

إذا تم إنشاء الأجهزة الظاهرية دون فتح منافذ WinRM HTTPS، فنفذ ما يلي:

  1. تكوين قاعدة وصول واردة للسماح ب HTTPS على المنفذ 5986 من كل جهاز ظاهري.
  2. تعطيل قيود UAC عن بعد.
  3. حدد بيانات الاعتماد للمهمة للوصول إلى الأجهزة الظاهرية باستخدام تسجيل دخول على مستوى المسؤول في اسم مستخدم النموذج البسيط دون أي جزء مجال.
  4. تثبيت شهادة على الجهاز الذي يقوم بتشغيل عامل التنفيذ التلقائي.
  5. إذا كنت تستخدم شهادة موقعة ذاتيا، فقم بتعيين معلمة شهادة الاختبار للمهمة.

ما نوع اتصال الخدمة الذي يجب أن أختاره؟

  • بالنسبة لحسابات تخزين Azure Resource Manager وأجهزة Azure Resource Manager الظاهرية، استخدم نوع اتصال خدمة Azure Resource Manager. راجع أتمتة توزيع مجموعة موارد Azure باستخدام كيان الخدمة.

  • أثناء استخدام نوع اتصال خدمة Azure Resource Manager، تقوم المهمة تلقائيا بتصفية حسابات تخزين Azure Resource Manager الأحدث المناسبة والحقول الأخرى. على سبيل المثال، مجموعة الموارد أو الخدمة السحابية والأجهزة الظاهرية.

كيف أعمل إنشاء حساب مدرسة أو حساب عمل للاستخدام مع هذه المهمة؟

يمكن إنشاء حساب مناسب للاستخدام في اتصال الخدمة:

  1. استخدم مدخل Microsoft Azure لإنشاء حساب مستخدم جديد في Azure Active Directory.
  2. أضف حساب مستخدم Azure Active Directory إلى مجموعة المسؤولين المشاركين في اشتراك Azure الخاص بك.
  3. سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب المستخدم هذا وغير كلمة المرور.
  4. استخدم بيانات اعتماد هذا الحساب في اتصال الخدمة. ثم تتم معالجة عمليات التوزيع باستخدام هذا الحساب.

إذا فشلت المهمة، هل ستستأنف النسخة؟

نظرا لأن AzCopy V10 لا يدعم ملفات دفتر اليومية، لا يمكن للمهمة استئناف النسخة. يجب تشغيل المهمة مرة أخرى لنسخ جميع الملفات.

هل يتم تنظيف ملفات السجل وملفات الخطة بعد النسخة؟

لا يتم حذف ملفات السجل والخطة بواسطة المهمة. لتنظيف الملفات بشكل صريح، أضف خطوة CLI في سير العمل باستخدام تنظيف وظائف azcopy.

كيف أعمل استخدام مهمة نسخ ملف Azure لنسخ ملف إلى جهاز ظاهري Azure لا يحتوي على عنوان IP عام؟

تأكد من أنك تستخدم الإصدار 5 من مهمة نسخ ملف Azure. إذا فشلت المهمة، يمكنك إضافة خطوة بناء لتشغيل الأمر azcopy cp "source-file-path" "destination-file-path" لاستبدال قيم المصدر والوجهة.

خطأ محظور: "AzCopy.exe الخروج برمز خروج غير صفري أثناء تحميل الملفات إلى تخزين كائن ثنائي كبير الحجم" أثناء استخدام مهمة Azure File Copy

يتم تعيين العوامل المستضافة عشوائيا في كل مرة يتم فيها تشغيل بنية، ستكون عناوين IP للعامل مختلفة في كل تشغيل. إذا لم تكن عناوين IP هذه في قائمة عناوين IP المسموح بها، يفشل الاتصال بين Azure DevOps وحساب التخزين. في مثل هذه السيناريوهات، اتبع الخطوات الموضحة:

  1. أضف خطوة بناء باستخدام Azure CLI لتحديد عنوان IP لعامل Microsoft Hosted Build في وقت التشغيل. سيضيف عنوان IP إلى قاعدة الشبكة على حساب تخزين Azure.
  2. قم بتشغيل خطوة الإنشاء لحساب تخزين Azure الخاص بك.
  3. أضف خطوة بناء أخرى باستخدام Azure CLI لإزالة عنوان IP لعامل البناء من قاعدة شبكة حساب تخزين Azure.

المتطلبات

المتطلبات الوصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على Agent, DeploymentGroup
المطالب يجب أن يكون لدى العوامل المستضافة ذاتيا قدرات تطابق الطلبات التالية لتشغيل المهام التي تستخدم هذه المهمة: azureps
القدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأوامر أي
متغيرات Settable أي
إصدار الوكيل 1.103.0 أو أحدث
فئة المهمة نشر