Share via


AzureFileCopy@5 – Azure-fájlmásolási v5 feladat

Fájlok másolása Azure Blob Storage vagy virtuális gépekre.

Syntax

# Azure file copy v5
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@5
  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. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.

Bevitelek

SourcePath - Forrás
string. Kötelező.

A forrásfájlok helye. A támogatott értékek közé tartoznak a YAML-folyamatok és a klasszikus kiadás által előre definiált rendszerváltozók , például a Build.Repository.LocalPath.

A kiadási változók csak a klasszikus kiadásokban támogatottak. A helyettesítő kártya szimbólum (*) a fájl elérési útján vagy a fájlnévben bárhol támogatott.


azureSubscription - Azure-előfizetés
Bemeneti alias: ConnectedServiceNameARM. string. Kötelező.

Adja meg a cél Azure-szolgáltatás, virtuális gép vagy tárfiók helyét tartalmazó előfizetéshez konfigurált Azure Resource Manager szolgáltatáskapcsolat nevét. További részletekért tekintse meg az Azure Resource Manager áttekintését.


Destination - Céltípus
string. Kötelező. Engedélyezett értékek: AzureBlob (Azure Blob), AzureVMs (Azure-beli virtuális gépek).

Adja meg a céltípust.


storage - RM-tárfiók
Bemeneti alias: StorageAccountRM. string. Kötelező.

Adjon meg egy meglévő ARM-tárfiókot. Ez az a tárfiók, amelyet közvetítőként használnak a fájlok Azure-beli virtuális gépekre való másolásához.


ContainerName - Tároló neve
string. Akkor szükséges, ha Destination = AzureBlob.

Annak a tárolónak a neve, amelybe a fájlokat átmásolja. Ha a megadott tároló nem létezik a tárfiókban, létrejön.

Ha virtuális könyvtárat szeretne létrehozni a tárolóban, használja a blobelőtag bemenetét. A célhelyhez https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/például adja meg a tároló nevét mycontainer és a blobelőtagot: vd1/vd2.


BlobPrefix - Blobelőtag
string. Választható. Használja a következőt: Destination = AzureBlob.

Adjon meg egy előtagot a cél virtuális könyvtárhoz az Azure Blob-tárolóban. Ez akkor érvényes, ha a SourcePath tartalmaz egy helyettesítő karaktert, amely több elemnek is megfelelhet.

Példa: Összefűzhet egy buildszámot, hogy előtagot adjon a fájloknak az azonos buildszámmal rendelkező összes blobból.

Példa: Ha blobelőtagot myvd1ad meg, a tárolóban létrejön egy virtuális könyvtár. A fájlokat a program a forrásból a következőre másolja: https://myaccount.blob.core.windows.net/mycontainer/myvd1/.

Abban az esetben, ha a SourcePath elem egyetlen elem helyettesítő karakter nélkül, ez a blobelőtag a cél blobnévként fog működni.


resourceGroup - Erőforráscsoport
Bemeneti alias: EnvironmentNameRM. string. Akkor szükséges, ha Destination = AzureVMs.

Adja meg annak a célerőforráscsoportnak a nevét, amelybe a fájlokat átmásolja.


ResourceFilteringMethod - Gépek kiválasztása
string. Választható. Használja a következőt: Destination = AzureVMs. Engedélyezett értékek: machineNames (Gépnevek), tags. Alapértelmezett érték: machineNames.

Adjon meg egy virtuálisgép-gazdagépnevet vagy -címkét, amely egy erőforráscsoport virtuális gépeinek egy részét azonosítja. A címkék csak az Azure Resource Manager keresztül létrehozott erőforrások esetében támogatottak.


MachineNames - Szűrési feltételek
string. Választható. Használja a következőt: Destination = AzureVMs.

Adja meg azoknak a virtuális gépeknek a nevét vagy címkeneveit, amelyek azonosítják a feladat által megcélzott virtuális gépeket. Az érvényes szűrőfeltételek a következők:

  • Egy Azure-erőforráscsoport neve.
  • Egy előző tevékenység kimeneti változója.
  • Címkenevek vagy virtuálisgép-nevek vesszővel tagolt listája.
  • Formázza a virtuális gépek nevét a teljes tartománynevek vagy IP-címek vesszővel tagolt listájával.
  • Szűrő címkeneveinek formázása példaként {TagName}:{Value} : Role:DB;OS:Win8.1

vmsAdminUserName - Rendszergazda bejelentkezés
string. Akkor szükséges, ha Destination = AzureVMs.

Adja meg annak a fióknak a felhasználónevét, amely rendszergazdai engedélyekkel rendelkezik az összes cél virtuális gépen.

  • A támogatott formátumok a következők: username, domain\username, machine-name\username, és .\username.
  • Az UPN-formátumok, beleértve username@domain.com a beépített rendszerfiókokat, például NT Authority\System nem támogatottak.

vmsAdminPassword - Jelszó
string. Akkor szükséges, ha Destination = AzureVMs.

Adja meg a paraméter jelszavát Admin Login .

A változó megkereséséhez keresse meg a paramétert Admin Login . Válassza a lapon definiált változó lakat ikonját az Variables érték védelméhez, és szúrja be ide a változó nevét.


TargetPath - Célmappát
string. Akkor szükséges, ha Destination = AzureVMs.

Adja meg annak a mappának az elérési útját az Azure-beli virtuális gépeken, amelyekbe a fájlok át lesznek másolva.

Az olyan környezeti változók támogatottak, mint a $env:windir és $env:systemroot a. Példák: $env:windir\FabrikamFiber\Web és c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - Választható argumentumok (fájlok blobba való feltöltéséhez)
string.

Adjon meg további argumentumokat a AzCopy.exe blobba való feltöltéshez és a virtuális gépekre való letöltéshez. A részletekért lásd: Adatok átvitele az AzCopy Command-Line Segédprogrammal .

A csak az Azure-beli lapblobokat támogató Prémium szintű tárfiókok további argumentumként használhatók --blob-type=PageBlob .

Az alapértelmezett argumentumok a következők --log-level=INFO : (alapértelmezett) és --recursive (ha a tároló neve nem $root).


AdditionalArgumentsForVMCopy - Választható argumentumok (fájlok virtuális gépre való letöltéséhez)
string. Választható. Használja a következőt: Destination = AzureVMs.

Adjon meg további argumentumokat AzCopy.exe , amelyek a virtuális gépekre való letöltéskor lesznek alkalmazva, például: --check-length=true.

Ha nincs megadva választható argumentum, a rendszer alapértelmezés szerint a következőket adja hozzá:

  • --log-level=INFO
  • --log-level=DEBUG (Ha a folyamat hibakeresési módban fut)
  • --recursive

sasTokenTimeOutInMinutes - SAS-jogkivonat lejárati időtartama percekben
string. Választható. Használja a következőt: Destination = AzureBlob. Alapértelmezett érték: 240.

Adja meg azt az időt percek alatt, amely után a tároló SAS-jogkivonata lejár. Alapértelmezés szerint ez a jogkivonat 4 óra elteltével lejár.


enableCopyPrerequisites - Másolási előfeltételek engedélyezése
boolean. Választható. Használja a következőt: Destination = AzureVMs. Alapértelmezett érték: false.

Ha engedélyezve van, ez a beállítás egy önaláírt tanúsítvánnyal konfigurálja a Windows Remote Management (WinRM) figyelőt az 5986-os port https protokollján keresztül. Ez a konfiguráció szükséges az Azure-beli virtuális gépek másolási műveleteinek végrehajtásához. Csak ARM-alapú virtuális gépekre alkalmazható.

  • Ha a cél virtuális gépek terheléselosztón keresztül érhetők el, konfiguráljon egy bejövő NAT-szabályt, hogy engedélyezze a hozzáférést az 5986-os porton.
  • Ha a cél virtuális gépek hálózati biztonsági csoporthoz (NSG) vannak társítva, konfiguráljon egy bejövő biztonsági szabályt az 5986-os porton való hozzáférés engedélyezéséhez.

CopyFilesInParallel - Másolás párhuzamos módon
boolean. Választható. Használja a következőt: Destination = AzureVMs. Alapértelmezett érték: true.

Adja meg true , hogy a cél virtuális gépekkel párhuzamosan másoljon fájlokat.


CleanTargetBeforeCopy - Tiszta cél
boolean. Alapértelmezett érték: false.

Adja meg true , hogy a fájlok másolása előtt törölje a célmappát.


skipCACheck - Tanúsítvány tesztelése
boolean. Választható. Használja a következőt: Destination = AzureVMs. Alapértelmezett érték: true.

A WinRM tanúsítványt igényel a HTTPS-átvitelhez, amikor fájlokat másol a köztes tárolóblobból az Azure-beli virtuális gépekre.

Ha önaláírt tanúsítványt használ, adja meg true , hogy a folyamat ne érvényesíthesse a tanúsítványt megbízható hitelesítésszolgáltatóval.


Feladatvezérlési lehetőségek

Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlési beállítások és gyakori feladattulajdonságok.

Kimeneti változók

Ez a feladat a következő kimeneti változókat határozza meg, amelyeket az alsóbb rétegbeli lépésekben, feladatokban és szakaszokban használhat fel.

StorageContainerUri
Annak a tárolónak az URI-ja, ahová a fájlokat átmásolták. Csak akkor érvényes, ha a kiválasztott cél az Azure Blob.

StorageContainerSasToken
SasToken ahhoz a tárolóhoz, ahová a fájlokat átmásolták. Csak akkor érvényes, ha a kiválasztott cél az Azure Blob.

Megjegyzések

AzureFileCopy@5 támogatja AzCopy.exe 10.12.2-es verzióját.

Megjegyzés

Letilthatja a tárfiókkulcsok és SAS-jogkivonatok használatát a tárfiókokon. Ilyen helyzetekben az SAS-jogkivonatokra támaszkodó AzureFileCopy@5 feladat nem használható.

A AzureFileCopy@6 feladat ehelyett az Azure RBAC-t használja a Blob Storage eléréséhez. Ehhez a megfelelő RBAC-szerepkörrel (például Storage Blob Data Contributor) rendelkező szolgáltatáskapcsolat identitására van szükség. Lásd: Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshez.

A AzureFileCopy@6 feladat a számítási feladat identitás-összevonását használó szolgáltatáskapcsolatokat is támogatja.

Megjegyzés

Ez a feladat a PowerShellben van megírva, és csak Windows-ügynökökön futtatva működik. Ha a folyamatok linuxos ügynököket igényelnek, és fájlokat kell átmásolniuk egy Azure Storage-fiókba, fontolja meg a parancsok futtatását az storage blob az Azure CLI-feladatban alternatívaként.

A feladat az alkalmazás telepítéséhez szükséges alkalmazásfájlok és egyéb összetevők másolására szolgál; például PowerShell-szkriptek, PowerShell-DSC-modulok stb.

Ha a cél Azure-beli virtuális gépek, a rendszer először átmásolja a fájlokat egy automatikusan létrehozott Azure Blob-tárolóba, majd letölti őket a virtuális gépekre. A tároló törlődik, miután a fájlok sikeresen át lettek másolva a virtuális gépekre.

A feladat az AzCopyt használja, a parancssori segédprogramot, amely az adatok gyors másolásához készült az Azure Storage-fiókokból és az Azure Storage-fiókokba. Az Azure File Copy feladat 5. verziója az AzCopy V10-et használja.

Az Azure File Copy 3- és újabb verziója lekéri az Azure Storage-kulcsot a hozzáférés biztosításához. Az Azure File Copy 4-es és újabb verziójának használatához az Azure Storage-t Microsoft Entra ID vagy SAS-jogkivonaton keresztül kell engedélyezni. A szolgáltatásnévvel és felügyelt identitással történő hitelesítés elérhető. Felügyelt identitások esetén csak a rendszerszintű felügyelt identitás támogatott. A szükséges engedélyezési szint az 1. lehetőség: A Microsoft Entra ID használata című témakörben látható.

A virtuális gépeket tartalmazó Azure-erőforráscsoportok dinamikus üzembe helyezéséhez használja az Azure-erőforráscsoport üzembehelyezési feladatát . Ez a feladat egy mintasablonnal rendelkezik, amely képes elvégezni a winRM HTTPS protokoll virtuális gépeken való beállításához szükséges műveleteket, nyissa meg az 5986-os portot a tűzfalon, és telepítse a teszttanúsítványt.

Megjegyzés

Ha tárolóként helyezi üzembe az Azure Static Websites-ot a Blob Storage-ban, használja a feladat 2. vagy újabb verzióját a $web tároló nevének megőrzéséhez.

Mik a feladat használatának Azure PowerShell előfeltételei?

A feladathoz Azure PowerShell telepítve kell lennie az automation-ügynököt futtató gépen. Az ajánlott verzió az 1.0.2, de a feladat a 0.9.8-es és újabb verzióval fog működni. Ezt a Azure PowerShell Installer 1.0.2-s verzióval szerezheti be.

Mik a feladat WinRM-előfeltételei?

A feladat a Windows Remote Management (WinRM) HTTPS protokoll használatával másolja a fájlokat a storage blobtárolóból az Azure-beli virtuális gépekre. Ehhez konfigurálnia kell a WinRM HTTPS szolgáltatást a virtuális gépeken, és telepítenie kell egy megfelelő tanúsítványt.

A WinRM konfigurálása a virtuális gép létrehozása után

Ha a virtuális gépek a WinRM HTTPS-portok megnyitása nélkül lettek létrehozva, hajtsa végre a következőket:

  1. Konfiguráljon egy bejövő hozzáférési szabályt, hogy engedélyezze a HTTPS-t az egyes virtuális gépek 5986-os portján.
  2. Távoli UAC-korlátozások letiltása.
  3. Adja meg a feladat hitelesítő adatait, hogy rendszergazdai szintű bejelentkezéssel érhesse el a virtuális gépeket az egyszerű, tartományrész nélküli felhasználónévben .
  4. Telepítsen egy tanúsítványt az automation-ügynököt futtató gépen.
  5. Ha önaláírt tanúsítványt használ, állítsa be a feladat Tanúsítványtesztelési paraméterét.

Milyen típusú szolgáltatáskapcsolatot válasszak?

  • Azure Resource Manager tárfiókok és Azure Resource Manager virtuális gépek esetén használjon Azure Resource Manager szolgáltatáskapcsolattípust. Lásd: Az Azure-erőforráscsoport üzembe helyezésének automatizálása szolgáltatásnév használatával.

  • Az Azure Resource Manager szolgáltatás kapcsolattípusának használata esetén a feladat automatikusan szűri a megfelelő újabb Azure Resource Manager tárfiókokat és más mezőket. Például az erőforráscsoportot vagy a felhőszolgáltatást, valamint a virtuális gépeket.

Hogyan létrehozni egy iskolai vagy munkahelyi fiókot a feladathoz?

A szolgáltatáskapcsolatban való használatra megfelelő fiók hozható létre:

  1. Az Azure Portal használatával hozzon létre egy új felhasználói fiókot az Azure Active Directoryban.
  2. Adja hozzá az Azure Active Directory felhasználói fiókot az Azure-előfizetés társadminisztrátori csoportjához.
  3. Jelentkezzen be a Azure Portal ezzel a felhasználói fiókkal, és módosítsa a jelszót.
  4. Használja a fiók hitelesítő adatait a szolgáltatáskapcsolatban. Az üzembe helyezéseket ezután ezzel a fiókkal dolgozzák fel.

Ha a feladat meghiúsul, a másolás folytatódik?

Mivel az AzCopy 10-es verziója nem támogatja a naplófájlok használatát, a feladat nem folytathatja a másolást. Az összes fájl másolásához újra le kell futtatnia a feladatot.

A naplófájlok és a tervfájlok törlődnek a másolás után?

A napló- és tervfájlokat a feladat nem törli. A fájlok explicit törléséhez adjon hozzá egy parancssori felületi lépést a munkafolyamathoz az azcopy-feladatok tiszta használatával.

Hogyan az Azure fájlmásolási feladatával másoljon egy fájlt egy olyan Azure-beli virtuális gépre, amely nem rendelkezik nyilvános IP-címmel?

Győződjön meg arról, hogy az Azure-fájlmásolási feladat 5. verzióját használja. Ha a feladat meghiúsul, hozzáadhat egy buildelési lépést a parancs azcopy cp "source-file-path" "destination-file-path" futtatásához a forrás- és célértékek helyettesítéséhez.

Tiltott hiba: "AzCopy.exe nem nulla kilépési kóddal lépett ki, miközben fájlokat tölt fel a blobtárolóba" az Azure File Copy feladat használata közben

Az üzemeltetett ügynököket a rendszer véletlenszerűen rendeli hozzá minden alkalommal, amikor egy build aktiválódik, az ügynök IP-címei minden futtatáskor eltérőek lesznek. Ha ezek az IP-címek nem szerepelnek az IP-címek engedélyezett listájában, az Azure DevOps és a tárfiók közötti kommunikáció meghiúsul. Ilyen esetekben kövesse az alábbi lépéseket:

  1. Adjon hozzá egy buildelési lépést az Azure CLI-vel a Microsoft Hosted Build-ügynök IP-címének futásidejű azonosításához. Hozzáadja az IP-címet az Azure Storage-fiók hálózati szabályához.
  2. Futtassa az Azure Storage-fiók buildelési lépését.
  3. Adjon hozzá egy újabb buildelési lépést az Azure CLI használatával, hogy eltávolítsa a buildügynök IP-címét az Azure Storage-fiók hálózati szabályából.

Példák

trigger:
- main

pool:
  vmImage: windows-latest

steps:
- task: AzureFileCopy@5
  inputs:
    SourcePath: 'Readme.md'
    azureSubscription: 'MyAzureSubscription'
    Destination: 'AzureBlob'
    storage: 'MyStorage'
    ContainerName: 'MyContainerName'
  name: AzureFileCopy
  
- script: | 
    echo $(AzureFileCopy.StorageContainerUri)
    echo $(AzureFileCopy.StorageContainerSasToken)

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build, klasszikus kiadás
Futtatás Ügynök, DeploymentGroup
Igények A saját üzemeltetésű ügynököknek olyan képességekkel kell rendelkezniük , amelyek megfelelnek az alábbi követelményeknek a feladatot használó feladatok futtatásához: azureps
Képességek Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
Parancskorlátozások Bármelyik
Változók beállítása Bármelyik
Ügynök verziója 1.103.0 vagy újabb
Feladatkategória Üzembe helyezés