AzureFileCopy@3 - مهمة نسخ ملف Azure v3

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

بناء الجملة

# Azure file copy v3
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@3
  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. Optional. Use when Destination = AzureVMs. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.
  # Output
    #outputStorageUri: # string. Storage Container URI. 
    #outputStorageContainerSasToken: # string. Storage Container SAS Token. 
    #sasTokenTimeOutInMinutes: # string. SAS Token Expiration Period In Minutes.

الإدخالات

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

حدد المسار المطلق للمجلد المصدر أو الملف على الجهاز المحلي أو مشاركة UNC. يمكنك استخدام متغيرات النظام المحددة مسبقا مثل $(Build.Repository.LocalPath). الأسماء التي تحتوي على أحرف بدل مثل *.zip غير معتمدة. يجب أن ترجع القيمة أو التعبير الذي تحدده مجلدا واحدا أو اسم ملف.


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.

حدد بادئة يمكن استخدامها لتصفية الملفات.

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

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


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أو ffwebffdbأو أو علامات مثل Role:DBأو Webأو OS:Win8.1.

ملاحظة: تتضمن المحددات الصالحة للعلامات ،(فاصلة)، :(colon) و ;(semicolon). عند توفير علامات متعددة، سيتم تشغيل المهمة فقط في الأجهزة الظاهرية التي تحتوي على العلامات المحددة. بشكل افتراضي، يتم تشغيل المهمة في جميع الأجهزة الظاهرية.


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

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

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

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

قم بتوفير كلمة مرور المسؤول للأجهزة الظاهرية.

يتضمن الإدخال الصالح المتغيرات المحددة في البنية الأساسية لبرنامج ربط العمليات التجارية للإنشاء أو الإصدار مثل $(passwordVariable). لتأمين كلمة مرور، ضع علامة عليها على أنها secret.


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

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

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


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

توفير وسيطات إضافية يمكن AzCopy.exe تطبيقها عند التحميل إلى الكائنات الثنائية كبيرة الحجم مثل /NC:10.

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

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S - تتم إضافته عندما لا $rootيكون اسم الحاوية .
  • /BlobType:page -تتم إضافته عندما يكون حساب التخزين المحدد حسابا متميزا.
  • /Pattern - تتم إضافته عندما يكون المسار المصدر ملفا. مضمن مع أي وسيطات اختيارية محددة أخرى.

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

توفير وسيطات AzCopy.exe إضافية يمكن تطبيقها عند التنزيل إلى الأجهزة الظاهرية مثل /NC:10.

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

  • /Y
  • /S
  • /Z
  • /V

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

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


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

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


CleanTargetBeforeCopy - هدف نظيف
boolean. ‏‏اختياري. استخدم عندما Destination = AzureVMs. القيمة الافتراضية: false.

تعيين هذه القيمة لتنظيف true المجلد الوجهة قبل تنفيذ إجراء النسخ.


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

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


outputStorageUri - عنوان URI لحاوية التخزين
string.

حدد اسم المتغير المستخدم ل URI لحاوية التخزين الذي تم نسخ الملفات إليه. صالح فقط عندما تكون الوجهة المحددة هي Azure Blob.


outputStorageContainerSasToken - رمز SAS المميز لحاوية التخزين
string.

حدد اسم المتغير المستخدم للرمز المميز SAS لحاوية التخزين الذي يصل إلى الملفات التي تم نسخها. استخدم هذا المتغير كمدخل للمهام اللاحقة. بشكل افتراضي، تنتهي صلاحية رمز SAS المميز بعد 4 ساعات.


sasTokenTimeOutInMinutes - فترة انتهاء صلاحية الرمز المميز SAS بالدقائق
string.

حدد الوقت بالدقائق التي تنتهي بعدها صلاحية رمز SAS المميز. صالح فقط عندما تكون الوجهة المحددة هي Azure Blob.


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

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

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

لا شيء

الملاحظات

ما الجديد في الإصدار AzureFileCopy@3

  • يدعم AzureFileCopy@3 Az Module وتوقف عن دعم نقطة نهاية خدمة Azure الكلاسيكية.

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

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

  • تستخدم المهمة AzCopy، الأداة المساعدة لسطر الأوامر التي تم إنشاؤها لنسخ البيانات بسرعة من وإلى حسابات تخزين Azure. يستخدم إصدار المهمة 3 أو أقل AzCopy V7.

  • لنشر مجموعات موارد 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 لهذه المهمة؟

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

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

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

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

يسرد الجدول التالي أنواع حسابات التخزين واتصالات الخدمة المقترنة. لتحديد ما إذا كان حساب التخزين يستند إلى واجهات برمجة التطبيقات الكلاسيكية أو واجهات برمجة التطبيقات Resource Manager، سجل الدخول إلى مدخل Microsoft Azure وابحث عن حسابات التخزين (الكلاسيكية) أو حسابات التخزين.

نوع حساب التخزين اتصالات خدمة Azure في TFS/TS
Resource Manager اتصال خدمة Azure Resource Manager
كلاسيكي اتصال خدمة Azure مع المصادقة المستندة إلى الشهادة أو المستندة إلى بيانات الاعتماد باستخدام حساب مدرسة أو حساب عمل
  • بالنسبة لموارد Azure الكلاسيكية، استخدم نوع اتصال خدمة Azure مع الشهادة أو المصادقة المستندة إلى بيانات الاعتماد. إذا كنت تستخدم المصادقة المستندة إلى بيانات الاعتماد، فتأكد من أن بيانات الاعتماد مخصصة لمدرسة أو حساب عمل. حسابات Microsoft مثل joe@live.com و joe@hotmail.com غير مدعومة.

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

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

ملاحظة

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

كيف أعمل إصلاح الفشل '403: هذا الطلب غير مصرح به لتنفيذ هذه العملية باستخدام هذا الإذن'؟

عندما يقوم Azure DevOps بإنشاء اتصال الخدمة ب Azure وتخويله، فإنه ينشئ تسجيل تطبيق في Active Directory الخاص باشتراكك. تتم إضافة هذه الهوية تلقائيا مع Contributor دور إلى جميع الموارد في مجموعة الموارد التي اخترت تخويلها. من أجل تحميل الكائنات الثنائية كبيرة الحجم إلى حساب تخزين، فإن كون كائن ثنائي كبير Contributor الحجم لا يكفي. يجب تعيين Storage Blob Data Contributor الدور يدويا إلى هوية تسجيل التطبيق.

انسخ هوية التطبيق من الإدخال الموروث الموجود كما Contributor سترى في جزء IAM وابحث عنه بشكل صريح في Add role assignment واجهة المستخدم. الهوية غير مدرجة في القائمة المنسدلة، يجب عليك البحث عن معرفها.

ماذا يحدث إذا كانت مجموعة الموارد تحتوي على كل من الأجهزة الظاهرية الكلاسيكية Resource Manager؟

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

  • بالنسبة للاتصالات المستندة إلى الشهادة والاتصالات المستندة إلى بيانات الاعتماد، يتم تنفيذ عملية النسخ فقط على الأجهزة الظاهرية الكلاسيكية.
  • بالنسبة للاتصالات المستندة إلى اسم الخدمة الأساسي، يتم تنفيذ عملية النسخ فقط على الأجهزة الظاهرية Resource Manager.

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

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

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

أمثلة

# Example: Upload files from Pipeline staging directory to blob storage.
- task: AzureFileCopy@3
  displayName: 'Example Step Name'
  inputs:
    sourcePath: '$(Build.ArtifactStagingDirectory)/BlobsToUpload'
    additionalArgumentsForBlobCopy: |
      '/Y' # Supresses all AZCopy Confirmations. Used here to allow overwrites
      '/Pattern:*' # Pattern of files to copy.
      '/S' # Recursive Copy
    azureSubscription: 'Subscription Name'
    destination: AzureBlob
    storage: storageaccountname
    containerName: storagecontainername
    blobPrefix: targetdirectoryincontainer

المتطلبات

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