疑難排解爬蟲程式使用 Lake Formation 憑證時發生的錯誤 - AWS Glue

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

疑難排解爬蟲程式使用 Lake Formation 憑證時發生的錯誤

參考下列資訊診斷及修正各種問題,同時使用 Lake Formation 憑證設定爬蟲程式。

錯誤:S3 位置 (s3://examplepath) 尚未註冊

若要使用 Lake Formation 憑證執行爬蟲程式,您需要先設定 Lake Formation 許可。若要解決此錯誤,請向 Lake Formation 註冊目標 Amazon S3 位置。如需詳細資訊,請參閱 Registering an Amazon S3 location (註冊 Amazon S3 位置)。

錯誤:使用者/角色未經授權,無法在資源上執行 lakeformation:GetDataAccess

請使用 IAM 主控台或 AWS CLI,將 lakeformation:GetDataAccess 許可新增至爬蟲程式。有了此許可,Lake Formation 就會授與要求存取資料所需的臨時憑證。請參閱以下政策:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" } }

錯誤:(資料庫名稱:exampleDatabase,資料表名稱:exampleTable) 上的 Lake Formation 許可不足

在 Lake Formation 主控台 (https://console.aws.amazon.com/lakeformation/) 授與爬蟲程式對資料庫 (指定作為輸出資料庫) 的角色存取許可 ( CreateDescribeAlter)。您也可以授與資料表的使用許可。如需詳細資訊,請參閱 Granting database permissions using the named resource method (使用具名資源方法授與資料庫許可)。

錯誤:s3://examplepath 上的 Lake Formation 許可不足

  1. 跨帳戶網路爬取

    1. 使用 Amazon S3 儲存貯體所註冊的帳戶資料 (帳戶 B),登入 Lake Formation 主控台 (https://console.aws.amazon.com/lakeformation/)。將資料位置許可授與要執行爬蟲程式的帳戶。如此一來,爬蟲程式就能從目標 Amazon S3 位置讀取資料。

    2. 在建立爬蟲程式的帳戶 (帳戶 A) 中,將目標 Amazon S3 位置的資料位置許可授與爬蟲程式執行時所使用的 IAM 角色,以便爬蟲程式可以從 Lake Formation 的目的地讀取資料。如需詳細資訊,請參閱 Granting data location permissions (external account) (授與資料位置許可 (外部帳戶))。

  2. 帳戶內 (爬蟲程式和所註冊的 Amazon S3 位置位於相同帳戶) 網路爬取 ‐ 將資料位置許可授與爬蟲程式於 Amazon S3 位置執行時所使用的 IAM 角色,以便爬蟲程式可以從 Lake Formation 的目標讀取資料。如需詳細資訊,請參閱 Granting data location permissions (same account) (授與資料位置許可 (相同帳戶))。

使用 Lake Formation 憑證設定爬蟲程式的常見問題

  1. 如何在 AWS 主控台使用 Lake Formation 憑證設定爬蟲程式,使其能順利執行?

    在 AWS Glue 主控台 (https://console.aws.amazon.com/glue/) 中,在設定爬蟲程式時,選取選項 Use Lake Formation credentials for crawling Amazon S3 data source (使用 Lake Formation 憑證對 Amazon S3 資料來源進行網路爬取)。若要進行跨帳戶網路爬取,請指定向 Lake Formation 註冊目標 Amazon S3 位置的 AWS 帳戶 ID。對於帳戶內網路爬取,accountId 為選填欄位。

  2. 如何在 AWS CLI 使用 Lake Formation 憑證設定爬蟲程式,使其能順利執行?

    CreateCrawler API 呼叫期間,新增 LakeFormationConfiguration

    "LakeFormationConfiguration": { "UseLakeFormationCredentials": true, "AccountId": "111111111111" (AWS account ID where the target Amazon S3 location is registered with Lake Formation) }
  3. 使用 Lake Formation 憑證的情況下,爬蟲程式支援哪些目標?

    使用 Lake Formation 憑證的爬蟲程式僅支援 Amazon S3 (帳戶內和跨帳戶網路爬取)、帳戶內資料型錄目標 (其中的基礎位置為 Amazon S3) 以及 Apache Iceberg 目標。

  4. 可以使用 Lake Formation 憑證,以單一爬蟲程式對多個 Amazon S3 儲存貯體執行網路爬取作業嗎?

    不可以。如果使用 Lake Formation 憑證販售對目標執行網路爬取,基礎 Amazon S3 位置必須屬於同一個儲存貯體。舉例來說,客戶可以使用多個目標位置 (s3://bucket1/folder1, s3://bucket1/folder2),但這些位置必須位於同一個儲存貯體 (儲存貯體 1),不允許指定不同的儲存貯體 (s3://bucket1/folder1、s3://bucket2/folder2)。