教學課程:使用 AzCopy 將內部部署資料移轉至雲端儲存體
AzCopy 是命令列工具,可使用簡單的命令從 Azure Blob 儲存體、Azure 檔案和 Azure 資料表儲存體來回複製資料。 這些命令的設計目的是獲得最佳效能。 您可以使用 AzCopy 在檔案系統和儲存體帳戶之間,或者儲存體帳戶之間複製資料。 AzCopy 可用來將本機 (內部) 資料複製到儲存體帳戶。
在本教學課程中,您會了解如何:
- 建立儲存體帳戶。
- 使用 AzCopy 上傳您的所有資料。
- 基於測試目的修改資料。
- 建立排程工作或 cron 作業來識別要上傳的新檔案。
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
必要條件
若要完成本教學課程,請下載最新版本的 AzCopy。 請參閱開始使用 AzCopy。
如果您使用 Windows,您將需要 Schtasks,因為本教學課程會用它來排程工作。 Linux 使用者則應使用 crontab 命令。
若要在 Azure 入口網站中建立一般用途 v2 儲存體帳戶,請遵循下列步驟:
- 在 [Azure 服務] 下,選取 [儲存體帳戶]。
- 在 [儲存體帳戶] 頁面上,選擇 [+ 建立]。
- 在 [基本] 刀鋒視窗上,選取要在其中建立儲存體帳戶的訂用帳戶。
- 在 [資源群組] 欄位下,選取您想要的資源群組,或建立新的資源群組。 如需 Azure 資源群組的詳細資訊,請參閱 Azure Resource Manager 概觀。
- 接下來,輸入儲存體帳戶的名稱。 您所選擇的名稱在整個 Azure 中必須是唯一的。 名稱的長度必須介於 3 到 24 個字元之間,且只能包含數字和小寫字母。
- 選取儲存體帳戶的區域,或使用預設區域。
- 選取一個效能層級。 預設階層為 [標準]。
- 指定儲存體帳戶的複寫方式。 預設的備援選項是 [異地備援儲存體 (GRS)]。 如需可用複寫選項的詳細資訊,請參閱 Azure 儲存體備援。
- 您可以在 [進階]、[網路]、[資料保護] 和 [標籤] 刀鋒視窗上取得其他選項。 若要使用 Azure Data Lake Storage,請選擇 [進階] 刀鋒視窗,然後將 [階層命名空間] 設定為 [啟用]。 如需詳細資訊,請參閱 Azure Data Lake Storage Gen2 簡介。
- 選取 [檢閱 + 建立],以檢閱您的儲存體帳戶設定並建立帳戶。
- 選取 建立。
下圖顯示新儲存體帳戶 [基本] 刀鋒視窗上的設定:
建立容器
第一個步驟是建立容器,因為 Blob 一律須上傳至容器中。 容器會作為組織 Blob 群組的方法,就像您在電腦上使用資料夾來組織檔案一樣。
請遵循下列步驟來建立容器:
選取主頁面中的 [儲存體帳戶] 按鈕,並選取您所建立的儲存體帳戶。
選取 [服務] 底下的 [Blob],然後選取 [容器]。
容器名稱必須以字母或數字開頭。 它們可以包含字母、數字和連字號字元 (-)。 如需 Blob 和容器的其他命名規則,請參閱命名和參考容器、Blob 及中繼資料。
下載 AzCopy
下載 AzCopy V10 可執行檔。
將 AzCopy 檔案放在電腦上的任何位置。 將檔案位置新增至您的系統路徑變數,即可從您電腦上的任何資料夾參考此可執行檔。
使用 Microsoft Entra 識別碼驗證
首先,將儲存體 Blob 資料參與者角色指派到您的身分識別。 請參閱指派 Azure 角色以存取 blob 資料。
然後,開啟命令提示字元,輸入下列命令並按下 ENTER 鍵。
azcopy login
此命令傳回驗證碼和網站的 URL。 開啟網站,提供程式碼,然後選擇 [下一步] 按鈕。
隨即會出現登入視窗。 在該視窗中,使用您的 Azure 帳戶認證登入 Azure 帳戶。 順利登入之後,您可以關閉瀏覽器視窗,然後開始使用 AzCopy。
將資料夾的內容上傳至 Blob 儲存體
您可以在 Windows 或 Linux 上使用 AzCopy,將資料夾中的所有檔案都上傳至 Blob 儲存體。 若要上傳資料夾中的所有 blob,請輸入下列 AzCopy 命令:
azcopy copy "<local-folder-path>" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>" --recursive=true
將
<local-folder-path>
預留位置取代為包含檔案的資料夾路徑 (例如:C:\myFolder
或/mnt/myFolder
)。使用您的儲存體帳戶名稱取代
<storage-account-name>
預留位置。將
<container-name>
預留位置取代為您建立的容器名稱。
若要以遞迴方式將指定目錄的內容上傳到 Blob 儲存體,請指定 --recursive
選項。 當您使用此選項執行 AzCopy 時,所有的子資料夾和其檔案也都會上傳。
將修改過的檔案上傳到 Blob 儲存體
您可以根據檔案的上次修改時間,使用 AzCopy 來上傳檔案。
若要這麼做,請基於測試目的,在您的來源目錄中修改或建立新的檔案。 然後,使用 AzCopy sync
命令。
azcopy sync "<local-folder-path>" "https://<storage-account-name>.blob.core.windows.net/<container-name>" --recursive=true
將
<local-folder-path>
預留位置取代為包含檔案的資料夾路徑 (例如:C:\myFolder
或/mnt/myFolder
)。使用您的儲存體帳戶名稱取代
<storage-account-name>
預留位置。將
<container-name>
預留位置取代為您建立的容器名稱。
若要深入了解 sync
命令,請參閱同步檔案。
建立排程工作
您可以建立執行 AzCopy 命令指令碼的排程工作或 cron 作業。 該指令碼會識別新的內部部署資料,並在特定時間間隔將其上傳至雲端儲存體。
將 AzCopy 命令複製到文字編輯器。 將 AzCopy 命令的參數值更新為適當的值。 針對 AzCopy 將檔案另存為 script.sh
(Linux) 或 script.bat
(Windows)。
這些範例會假設您的資料夾名稱是 myFolder
、儲存體帳戶名稱是 mystorageaccount
,以及您的容器名稱是 mycontainer
。
注意
Linux 範例會附加 SAS 權杖。 您必須在命令中提供該權杖。 若要在 cron 作業中使用 Microsoft Entra 驗證,請確定您已適當地設定 AZCOPY_AUTO_LOGIN_TYPE 環境變數。
azcopy sync "/mnt/myfiles" "https://mystorageaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-05-30T06:57:40Z&st=2019-05-29T22:57:40Z&spr=https&sig=BXHippZxxx54hQn/4tBY%2BE2JHGCTRv52445rtoyqgFBUo%3D" --recursive=true
在本教學課程中,Schtasks 會用來在 Windows 上建立排程工作。 Crontab 命令會用來在 Linux 上建立 cron 作業。
Schtasks 可讓系統管理員建立、刪除、查詢、變更、執行和結束本機或遠端電腦上的排程工作。 Cron 可讓 Linux 和 Unix 使用者在指定的日期和時間執行命令或指令碼,方法是使用 cron 運算式。
若要在 Linux 上建立 cron 作業,請在終端機上輸入下列命令:
crontab -e
*/5 * * * * sh /path/to/script.sh
在命令中指定 cron 運算式 */5 * * * *
會指出殼層指令碼 script.sh
應該每隔五分鐘執行一次。 您可以排程指令碼在每日、每月或每年的指定時間執行。 若要深入了解針對作業執行設定日期和時間,請參閱 cron 運算式。
若要驗證排程工作/cron 作業能夠正確執行,請在您的 myFolder
目錄中建立新的檔案。 等候五分鐘以確認新檔案已上傳到您的儲存體帳戶。 請移至您的記錄目錄,以檢視排程工作或 cron 作業的輸出記錄。
下一步
若要深入了解將內部部署資料移動至 Azure 儲存體 (或反向作業) 的相關方式,請參考下列連結:
如需有關 AzCopy 的詳細資訊,請參閱下列文章: