使用 Azure Blob 儲存體設定AWS DataSync傳輸 - AWS DataSync

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Azure Blob 儲存體設定AWS DataSync傳輸

這項功能目前在 AWS DataSync 的預覽版本中,並可能會有所變更。

若要從 Azure Blob 儲存體傳輸 Blob (也稱為物件),您必須建立AWS DataSync傳輸位置。然後,您可以將 Blob 移至任何DataSync支援的AWS儲存服務

存取 Azure Blob 儲存體

若要傳輸您的物件,DataSync需要讀取 Azure Blob 儲存體的權限。您的物件也必須位於DataSync可以使用的存取層中。

SAS 代幣

共用存取簽章 (SAS) 權杖會指定 Blob 儲存體的存取權限。如需 SAS 的詳細資訊,請參閱 Azure Blob 儲存體說明文件。)

您可以在不同的存取層級產生 SAS 權杖。DataSync支持具有以下訪問級別的令牌:

  • 帳戶

  • 容器

  • 資料夾

為了提供傳輸DataSync所需的訪問權限,您的 SAS 令牌至少必須具有讀取和列出權限。根據訪問級別,您可能還需要使用其他權限配置令牌。例如,具有帳戶級訪問權限的令牌比具有文件夾級訪問權限的令牌需要更多的權限。

用於帳戶層級存取的 SAS 權杖權限

DataSync要求您設定具有下列權限的帳戶層級存取權杖:

  • 允許的服務-斑點

  • 允許的資源類型 — 容器、物件 (如果您未包含這些權限,則DataSync無法傳輸物件中繼資料)

  • 允許的權限 — 讀取、清單

  • 允許的 blob 索引權限 — 讀取/寫入 (如果您想DataSync要複製物件標籤)

適用於容器層級存取的 SAS 權杖權限

DataSync要求您配置具有以下權限的容器級訪問令牌:

資料夾層級存取的 SAS 權杖權限

如果您將 Azure 資料湖儲存體 Gen2 與 Blob 儲存體搭配使用,您可以提供DataSync僅允許存取容器中特定資料夾的 SAS 權杖。

DataSync要求您配置具有以下權限的文件夾級訪問令牌:

  • 讀取

  • 列出

如需設定這種權杖的詳細資訊,請參閱 Azure Blob 儲存體說明文件

建立的 Azure Blob 儲存體位置時DataSync,您必須指定此相同資料夾的完整路徑。

SAS 到期政策

請確定您的 SAS 在您預期完成轉移之前不會過期。如需設定 SAS 到期原則的相關資訊,請參閱 Azure Blob 儲存體說明文件

如果 SAS 在傳輸期間到期,DataSync將無法再存取您的 Azure Blob 儲存體位置 (您可能會看到無法開啟目錄錯誤)。發生這種情況時,您必須使用新的 SAS 令牌更新您的位置,然後重新啟動DataSync任務。

存取層

DataSync可以在熱或冷層中傳輸 Azure Blob 儲存體物件。它會略過在封存存取層中傳輸物件。您必須先將封存層中的物件重新加水至熱層或冷層,才能傳輸它們。

斑點類型

DataSync可以傳輸任何 blob 類型,其中包括塊,頁面和附加 blob。如需詳細資訊,請參閱 Azure Blob 儲存體

設定

目前,您只能搭配DataSync主控台AWS Command Line Interface、或使用此功能AWS SDK for Java 2.x。

注意

如果您使用DataSync主機,則不需要設定。

使用設定AWS CLI

下列指示說明如何設定 AWS Command Line Interface(AWS CLI) 版本 2 以使用此功能。

設定 AWS CLI
  1. 下載DataSync API 模型並解壓縮 JSON 檔案。

  2. 執行下列命令,將服務模型新增至您的AWS CLI組態。

    此範例會建立datasync-azure-blob服務名稱。您可以指定不同的名稱。

    aws configure add-model \ --service-model file://datasync-service-model.json \ --service-name datasync-azure-blob

加入模型後,您可以將此特徵與AWS CLI。

使用設定AWS SDK for Java 2.x

下列說明示範如何設定AWS SDK for Java 2.x為使用此功能。

若要設定適用於 Java 2.x 的開發套件
  1. 確定您有檔AwsJavaSdk-DataSync-2.0.jar案。如果沒有,請聯繫您的聯繫DataSync點。

  2. 在您的 Maven 項目中,檢查pom.xml文件是否存在DataSync Java SDK 的明確依賴關係。如果沒有,請使用以下示例創建依賴關係:

    <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>datasync</artifactId> <version>2.17.290</version> </dependency>
  3. 執行以下命令:

    mvn org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file \ --batch-mode -Dfile=/AwsJavaSdk-DataSync-2.0.jar \ -DgroupId=software.amazon.awssdk \ -DartifactId=datasync \ -Dversion=2.17.290 \ -Dpackaging=jar

    請謹記:

    • 請確定您使用正確的AwsJavaSdk-DataSync-2.0.jar檔案路徑。

    • 2.17.290版本就是一個例子。

創建您的DataSync代理

您需要可以連線到 Azure Blob 儲存體容器的DataSync代理程式。代理讀取您的容器,並有助於將對象移動到AWS。

建立您的 Azure Blob 儲存體傳輸位置

您可以設定DataSync使用現有的 Azure Blob 儲存體容器做為傳輸的來源位置。

在您開始之前:請確定您知道如何DataSync存取 Azure Blob 儲存體,以及如何使用 Blob 儲存體存取層

  1. 請在以下位置開啟AWS DataSync主控台。 https://console.aws.amazon.com/datasync/

  2. 在左側導覽窗格中,展開 [資料傳輸],然後選擇 [位] 和 [建立位置]。

  3. 針對位置類型,選擇微軟 Azure Blob 儲存體

  4. 針對代理DataSync程式,請選擇可與 Azure Blob 儲存體容器連線的代理程式。

    您可以選擇多個代理。如需詳細資訊,請參閱使用多個AWS DataSync代理進行轉移

  5. 在「容器 URL」中,輸入轉移所涉及之容器的 URL。

  6. 若要將傳輸限制在容器中的虛擬目錄 (例如/my/images),請在「資料夾」中輸入路徑區段。

    DataSync只會複製具有這些路徑區段的物件。

    重要

    如果您的 SAS 權杖只允許存取資料夾,您必須在此指定此資料夾的完整路徑,以便傳輸作業正常運作。

  7. DataSync若為 SAS 記號,請輸入可存取 Blob 儲存體的 SAS 權杖。

    權杖是儲存資源 URI 和問號之後的 SAS URI 字串的一部分。權杖看起來像這樣:

    sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
  8. (選擇性) 輸入「關鍵字」和「」欄位的值,以標記位置。

    標籤可協助您管理、篩選和搜尋資AWS源。建議您為位置建立至少一個名稱標籤。

  9. 選擇 [建立地點]。

注意

以下說明使用命datasync-azure-blob令,但您可以將此命令命名為其他名稱。如需詳細資訊,請參閱使用設定AWS CLI

  1. 複製以下create-location-azure-blob命令:

    aws datasync-azure-blob create-location-azure-blob \ --container-url "https://path/to/container" \ --authentication-type "SAS" \ --sas-configuration '{ "Token": "your-sas-token" }' \ --agent-arns my-datasync-agent-arn \ --subdirectory "/path/to/my/data" \ --tags [{"Key": "key1","Value": "value1"}]
  2. 針對--container-url參數,請指定與您傳輸相關之 Azure Blob 儲存體容器的 URL。

  3. 對於--authentication-type參數,請指定SAS

  4. 對於--sas-configuration參數的Token選項,請指定允許DataSync存取 Blob 儲存體的 SAS 權杖。

    權杖是儲存資源 URI 和問號之後的 SAS URI 字串的一部分。權杖看起來像這樣:

    sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
  5. 在此--agent-arns參數中指定可連線至您的容器的DataSync Amazon Resource Name (ARN)。

    以下是 ARN 範例:arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb

    您可以指定多個代理程式。如需詳細資訊,請參閱使用多個AWS DataSync代理進行轉移

  6. 若要將傳輸限制在容器中的虛擬目錄 (例如/my/images),請針對--subdirectory參數指定路徑區段。

    DataSync只會複製具有這些路徑區段的物件。

    重要

    如果您的 SAS Token 僅允許存取子目錄 (或資料夾),您必須在此指定此子目錄的完整路徑,才能傳輸作業。

  7. (選擇性) 在此--tags參數中指定有助於管理、篩選和搜尋位置的鍵值對。

    建議您為位置建立名稱標籤。

  8. 執行 create-location-azure-blob 命令。

    您會收到一個回應,顯示您所建立位置的 ARN。例如:

    { "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh" }

檢視您的 Azure Blob 儲存體傳輸位置

您可以取得有關您現有 Azure Blob 儲存體位置的詳細資料。

  1. 請在以下位置開啟AWS DataSync主控台。 https://console.aws.amazon.com/datasync/

  2. 在左側導覽窗格中,選擇 [位置]。

  3. 選擇您的 Azure Blob 儲存體位置。

    您可以查看有關您位置的詳細資訊,包括使用該位置的DataSync任何工作。

注意

以下說明使用命datasync-azure-blob令,但您可以將此命令命名為其他名稱。如需詳細資訊,請參閱使用設定AWS CLI

  1. 複製以下describe-location-azure-blob命令:

    aws datasync-azure-blob describe-location-azure-blob \ --location-arn "your-azure-blob-location-arn"
  2. 針對--location-arn參數,請為您所建立的 Azure Blob 儲存體位置指定 ARN。

  3. 執行 describe-location-azure-blob 命令。

    您會收到回應,顯示有關您位置的詳細資訊。例如:

    { "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh", "LocationUri": "azure-blob://my-user.blob.core.windows.net/container-1", "AuthenticationType": "SAS", "Subdirectory": "/my/images", "AgentArns": ["arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb"], }

更新您的 Azure Blob 儲存體傳輸位置

如有需要,您可以修改位置的設定。

注意

您無法使用DataSync控制台執行此操作。

注意

以下說明使用命datasync-azure-blob令,但您可以將此命令命名為其他名稱。如需詳細資訊,請參閱使用設定AWS CLI

  1. 複製以下update-location-azure-blob命令:

    aws datasync-azure-blob update-location-azure-blob \ --location-arn "your-azure-blob-location-arn" \ --authentication-type "SAS" \ --sas-configuration '{ "Token": "your-sas-token" }' \ --agent-arns my-datasync-agent-arn \ --subdirectory "/path/to/my/data"
  2. 針對--location-arn參數,請為您要更新的 Azure Blob 儲存體位置指定 ARN。

  3. 對於--authentication-type參數,請指定SAS

  4. 對於--sas-configuration參數的Token選項,請指定允許DataSync存取 Blob 儲存體的 SAS 權杖。

    權杖是儲存資源 URI 和問號之後的 SAS URI 字串的一部分。權杖看起來像這樣:

    sp=r&st=2022-12-20T14:54:52Z&se=2022-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=qCBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
  5. 在此--agent-arns參數中指定要連線至您的容器的DataSync Amazon Resource Name (ARN)。

    以下是 ARN 範例:arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb

    您可以指定多個代理程式。如需詳細資訊,請參閱使用多個AWS DataSync代理進行轉移

  6. 若要將傳輸限制在容器中的虛擬目錄 (例如/my/images),請針對--subdirectory參數指定路徑區段。

    DataSync只會複製具有這些路徑區段的物件。

    重要

    如果您的 SAS Token 僅允許存取子目錄 (或資料夾),您必須在此指定此子目錄的完整路徑,才能傳輸作業。

元數處理

從 Azure Blob 儲存體傳輸時,DataSync處理中繼資料的方式取決於您的目的地位置。

當您的目的地是 DataSync可以
  • Amazon S3

將下列中繼資料複製到目的地:

  • 使用者定義的物件中繼資料

  • 物件標籤

  • 下列系統定義的物件中繼資料:

    • Content-Disposition

    • Content-Encoding

    • Content-Language

    • 內容類型

    附註:在初始傳輸期間DataSync複製所有物件的系統中繼資料。如果您將工作設定為只傳輸已變更的資料,DataSync則除非物件的內容或使用者中繼資料也已修改,否則不會在後續傳輸中複製系統中繼資料。

  • Amazon EFS

  • FSx for Lustre

  • FSx for OpenZFS

  • 安裝專用的 FSx (使用 NFS)

在目標文件和文件夾上應用默認的 POSIX 元數據。這種方法包括使用預設的 POSIX 使用者 ID 和群組 ID 值。

  • FSx for Windows File Server

  • 安裝專用 FSx (使用中小企業)

將下列中繼資料套用至目的地:

  • 檔案和資料夾時間戳記

  • 根據您在建立目的DataSync地位置時指定的 Windows 使用者而定的擁有權

  • 繼承自父目錄的權限

限制

從 Azure Blob 儲存體移動資料時,目前存在下列限制DataSync:

  • 您可以在除了AWS GovCloud (US)和中國區域以DataSync外的任何AWS 區域支援建立 Azure Blob 儲存體位置。

  • 您只能使用 Azure Blob 儲存體做為來源位置。

  • 傳輸到 Amazon S3 時,不DataSync會傳輸大於 5 TB 的 Azure Blob 儲存體物件。

  • 傳輸到 Amazon S3 時,不DataSync會傳輸中繼資料超過 2 KB 的 Azure Blob 儲存體物件。