AzureFileCopy@4 - مهمة نسخ ملف Azure v4
نسخ الملفات إلى Azure Blob Storage أو الأجهزة الظاهرية.
ملاحظة
لا تدعم هذه المهمة مصادقة Azure Resource Manager مع اتحاد هوية سير العمل.
بناء الجملة
# Azure file copy v4
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@4
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).
#sasTokenTimeOutInMinutes: '240' # string. Optional. Use when Destination = AzureBlob. SAS Token Expiration Period In Minutes. Default: 240.
#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.
الإدخالات
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
.
حدد بادئة يمكن استخدامها لتصفية الملفات.
مثال: يمكنك إلحاق رقم بناء لتصفية الملفات من جميع الكائنات الثنائية كبيرة الحجم بنفس رقم البناء.
مثال: إذا قمت بتحديد بادئة 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
vmsAdminUserName
- مسؤول تسجيل الدخول
string
. مطلوب عند Destination = AzureVMs
.
قم بتوفير اسم المستخدم للحساب بأذونات إدارية على جميع الأجهزة الظاهرية الهدف.
- تتضمن التنسيقات المدعومة:
username
وdomain\username
machine-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 فقط، تستخدم --blob-type=PageBlob
كوسيطة إضافية.
تتضمن --log-level=INFO
الوسيطات الافتراضية (افتراضي) و --recursive
(إذا لم يكن $root
اسم الحاوية ).
AdditionalArgumentsForVMCopy
- الوسيطات الاختيارية (لتنزيل الملفات إلى الجهاز الظاهري)
string
. اختياري. استخدم عندما Destination = AzureVMs
.
قم بتوفير وسيطات إضافية لذلك AzCopy.exe
سيتم تطبيقها عند التنزيل إلى الأجهزة الظاهرية مثل . --check-length=true
إذا لم يتم تحديد وسيطات اختيارية، تتم إضافة ما يلي بشكل افتراضي:
--log-level=INFO
--log-level=DEBUG
(إذا كان المسار قيد التشغيل في مجموعة وضع التصحيح)--recursive
sasTokenTimeOutInMinutes
- فترة انتهاء صلاحية الرمز المميز SAS بالدقائق
string
. اختياري. استخدم عندما Destination = AzureBlob
. القيمة الافتراضية: 240
.
حدد الوقت بالدقائق التي تنتهي بعدها صلاحية رمز SAS المميز للحاوية. بشكل افتراضي، تنتهي صلاحية هذا الرمز المميز بعد 4 ساعات.
enableCopyPrerequisites
- تمكين نسخ المتطلبات الأساسية
boolean
. اختياري. استخدم عندما Destination = AzureVMs
. القيمة الافتراضية: false
.
عند التمكين، يستخدم هذا الخيار شهادة موقعة ذاتيا لتكوين وحدة استماع Windows Remote Management (WinRM) عبر بروتوكول HTTPS على المنفذ 5986. هذا التكوين مطلوب لتنفيذ عمليات النسخ على أجهزة Azure الظاهرية.
- إذا تم الوصول إلى الأجهزة الظاهرية الهدف من خلال موازن تحميل، فكون قاعدة NAT واردة للسماح بالوصول على المنفذ 5986.
- إذا كانت الأجهزة الظاهرية الهدف مقترنة بمجموعة أمان الشبكة (NSG)، فقم بتكوين قاعدة أمان واردة للسماح بالوصول على المنفذ 5986.
CopyFilesInParallel
- نسخ بالتوازي
boolean
. اختياري. استخدم عندما Destination = AzureVMs
. القيمة الافتراضية: true
.
حدد true
لنسخ الملفات بالتوازي مع الأجهزة الظاهرية الهدف.
CleanTargetBeforeCopy
- هدف نظيف
boolean
. اختياري. استخدم عندما Destination = AzureVMs
. القيمة الافتراضية: false
.
حدد true
لتنظيف المجلد الوجهة قبل نسخ الملفات.
skipCACheck
- اختبار الشهادة
boolean
. اختياري. استخدم عندما Destination = AzureVMs
. القيمة الافتراضية: true
.
يتطلب WinRM شهادة لنقل HTTPS عند نسخ الملفات من كائن ثنائي كبير الحجم للتخزين الوسيط إلى أجهزة Azure الظاهرية.
إذا كنت تستخدم شهادة موقعة ذاتيا، فحدد true
لمنع العملية من التحقق من صحة الشهادة باستخدام مرجع مصدق موثوق به.
خيارات التحكم بالمهمة
تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.
متغيرات الإخراج
تحدد هذه المهمة متغيرات الإخراج التالية، والتي يمكنك استهلاكها في خطوات انتقال البيانات من الخادم والوظائف والمراحل.
StorageContainerUri
URI للحاوية التي تم نسخ الملفات إليها. صالح فقط عندما تكون الوجهة المحددة هي Azure Blob.
StorageContainerSasToken
SasToken للحاوية التي تم نسخ الملفات إليها. صالح فقط عندما تكون الوجهة المحددة هي Azure Blob.
الملاحظات
يدعم AzureFileCopy@4 الإصدار AzCopy.exe 10.8.0.
ملاحظة
تتم كتابة هذه المهمة في PowerShell وتعمل فقط عند تشغيلها على عوامل Windows. إذا كانت البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك تتطلب عوامل Linux وتحتاج إلى نسخ الملفات إلى حساب تخزين Azure، ففكر في تشغيل az storage blob
الأوامر في مهمة Azure CLI كبديل.
يتم استخدام المهمة لنسخ ملفات التطبيق والبيانات الاصطناعية الأخرى المطلوبة لتثبيت التطبيق؛ مثل البرامج النصية PowerShell ووحدات PowerShell-DSC والمزيد.
عندما يكون الهدف هو أجهزة Azure الظاهرية، يتم نسخ الملفات أولا إلى حاوية Azure blob التي تم إنشاؤها تلقائيا ثم تنزيلها في الأجهزة الظاهرية. يتم حذف الحاوية بعد نسخ الملفات بنجاح إلى الأجهزة الظاهرية.
تستخدم المهمة AzCopy، الأداة المساعدة لسطر الأوامر التي تم إنشاؤها لنسخ البيانات بسرعة من وإلى حسابات تخزين Azure. يستخدم الإصدار 4 من مهمة Azure File Copy AzCopy V10.
سيقوم الإصدار 3 والإصدارات الأقل من Azure File Copy باسترداد مفتاح Azure Storage لتوفير الوصول. يتطلب Azure File Copy الإصدار 4 والإصدارات الأحدث تخويل Azure Storage عبر معرف Microsoft Entra أو رمز SAS المميز. تتوفر المصادقة باستخدام كيان الخدمة والهوية المدارة. بالنسبة للهويات المدارة، يتم دعم الهوية المدارة على مستوى النظام فقط. يظهر مستوى التخويل المطلوب في الخيار 1: استخدام معرف Microsoft Entra.
لنشر مجموعات موارد Azure التي تحتوي على أجهزة ظاهرية ديناميكيا، استخدم مهمة توزيع مجموعة موارد Azure . تحتوي هذه المهمة على نموذج قالب يمكنه تنفيذ العمليات المطلوبة لإعداد بروتوكول WinRM HTTPS على الأجهزة الظاهرية، وفتح المنفذ 5986 في جدار الحماية، وتثبيت شهادة الاختبار.
ملاحظة
إذا كنت تقوم بالتوزيع إلى مواقع Azure Static Website كحاوية في تخزين Blob، فاستخدم الإصدار 2 أو أعلى من المهمة من أجل الاحتفاظ باسم الحاوية $web .
تدعم المهمة المصادقة استنادا إلى Azure Active Directory. تتوفر المصادقة باستخدام كيان الخدمة والهوية المدارة. بالنسبة للهويات المدارة، يتم دعم الهوية المدارة على مستوى النظام فقط.
ما هي المتطلبات الأساسية ل 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، فنفذ ما يلي:
- تكوين قاعدة وصول واردة للسماح ب HTTPS على المنفذ 5986 من كل جهاز ظاهري.
- تعطيل قيود UAC عن بعد.
- حدد بيانات الاعتماد للمهمة للوصول إلى الأجهزة الظاهرية باستخدام تسجيل دخول على مستوى المسؤول في اسم مستخدم النموذج البسيط دون أي جزء مجال.
- تثبيت شهادة على الجهاز الذي يقوم بتشغيل عامل التنفيذ التلقائي.
- إذا كنت تستخدم شهادة موقعة ذاتيا، فقم بتعيين معلمة شهادة الاختبار للمهمة.
ما نوع اتصال الخدمة الذي يجب أن أختاره؟
بالنسبة لحسابات تخزين Azure Resource Manager وأجهزة Azure Resource Manager الظاهرية، استخدم نوع اتصال خدمة Azure Resource Manager. راجع أتمتة توزيع مجموعة موارد Azure باستخدام كيان الخدمة.
أثناء استخدام نوع اتصال خدمة Azure Resource Manager، تقوم المهمة تلقائيا بتصفية حسابات تخزين Azure Resource Manager الأحدث المناسبة والحقول الأخرى. على سبيل المثال، مجموعة الموارد أو الخدمة السحابية والأجهزة الظاهرية.
كيف أعمل إنشاء حساب مدرسة أو حساب عمل للاستخدام مع هذه المهمة؟
يمكن إنشاء حساب مناسب للاستخدام في اتصال الخدمة:
- استخدم مدخل Microsoft Azure لإنشاء حساب مستخدم جديد في Azure Active Directory.
- أضف حساب مستخدم Azure Active Directory إلى مجموعة المسؤولين المشاركين في اشتراك Azure الخاص بك.
- سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب المستخدم هذا وغير كلمة المرور.
- استخدم بيانات اعتماد هذا الحساب في اتصال الخدمة. ثم تتم معالجة عمليات التوزيع باستخدام هذا الحساب.
إذا فشلت المهمة، هل ستستأنف النسخة؟
نظرا لأن AzCopy V10 لا يدعم ملفات دفتر اليومية، لا يمكن للمهمة استئناف النسخة. يجب تشغيل المهمة مرة أخرى لنسخ جميع الملفات.
هل يتم تنظيف ملفات السجل وملفات الخطة بعد النسخة؟
لا يتم حذف ملفات السجل والخطة بواسطة المهمة. لتنظيف الملفات بشكل صريح، أضف خطوة CLI في سير العمل باستخدام تنظيف وظائف azcopy.
كيف أعمل استخدام مهمة نسخ ملف Azure لنسخ ملف إلى جهاز ظاهري Azure لا يحتوي على عنوان IP عام؟
تأكد من أنك تستخدم الإصدار 4 من مهمة نسخ ملف Azure. إذا فشلت المهمة، يمكنك إضافة خطوة بناء لتشغيل الأمر azcopy cp "source-file-path" "destination-file-path"
لاستبدال قيم المصدر والوجهة.
خطأ محظور: "AzCopy.exe الخروج برمز خروج غير صفري أثناء تحميل الملفات إلى تخزين كائن ثنائي كبير الحجم" أثناء استخدام مهمة Azure File Copy
يتم تعيين العوامل المستضافة عشوائيا في كل مرة يتم فيها تشغيل بنية، ستكون عناوين IP للعامل مختلفة في كل تشغيل. إذا لم تكن عناوين IP هذه في قائمة عناوين IP المسموح بها، يفشل الاتصال بين Azure DevOps وحساب التخزين. في مثل هذه السيناريوهات، اتبع الخطوات الموضحة:
- أضف خطوة بناء باستخدام Azure CLI لتحديد عنوان IP لعامل Microsoft Hosted Build في وقت التشغيل. سيضيف عنوان IP إلى قاعدة الشبكة على حساب تخزين Azure.
- قم بتشغيل خطوة الإنشاء لحساب تخزين Azure الخاص بك.
- أضف خطوة بناء أخرى باستخدام Azure CLI لإزالة عنوان IP لعامل البناء من قاعدة شبكة حساب تخزين Azure.
أمثلة
- task: AzureFileCopy@4
inputs:
SourcePath: 'Readme.md'
azureSubscription: 'Azure'
Destination: 'AzureBlob'
storage: 'storageAccount'
ContainerName: 'containerName'
BlobPrefix: ''
name: AzureFileCopy
- script: |
echo $(AzureFileCopy.StorageContainerUri)
echo $(AzureFileCopy.StorageContainerSasToken)
المتطلبات
المتطلبات | الوصف |
---|---|
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية | YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي |
يعمل على | Agent, DeploymentGroup |
المطالب | يجب أن يكون لدى الوكلاء المستضافين ذاتيا قدرات تتطابق مع المتطلبات التالية لتشغيل المهام التي تستخدم هذه المهمة: azureps |
القدرات | لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة. |
قيود الأوامر | أي |
متغيرات Settable | أي |
إصدار الوكيل | 1.103.0 أو أحدث |
فئة المهمة | نشر |