如要為 Cloud Storage bucket 中的圖片和 PDF 文件生成結構化中繼資料,請建立功能設定 (FeatureConfig) 資源。您也必須授權 object enrichments 服務代理存取您的資料。設定 object enrichments 後,Cloud Storage 會使用您選擇的機器學習模型,以非同步方式評估相符的物件,並將結果直接附加至物件,做為物件情境。
本頁面說明如何建立、列出、查看、更新及刪除功能設定。並說明如何將必要的 Identity and Access Management (IAM) 權限授予服務代理。
完整工作流程包含下列步驟:
- 建立功能設定 (
FeatureConfig) 資源,定義範圍並選取模型。 - 授權服務代理存取儲存空間 bucket。
- 查看及管理物件的擴充中繼資料。
- 在 BigQuery 中使用 SQL 大量分析擴充資料。
- 隨著工作負載變化,更新或刪除功能設定。
如要瞭解概念詳情和支援的用途,請參閱「物件擴充功能總覽」。
事前準備
設定物件擴充功能前,請先完成下列設定步驟:
取得必要角色
如要取得建立及管理功能設定所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立及管理功能設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立及管理功能設定,必須具備下列權限:
-
storage.featureConfigs.create -
storage.featureConfigs.list -
storage.featureConfigs.get -
storage.featureConfigs.update -
storage.featureConfigs.delete
(選用) 準備「儲存空間洞察」資料集,以進行 SQL 分析
如果您打算在 BigQuery 中使用 SQL 查詢及分析數百萬個物件的擴充中繼資料,必須先設定儲存空間分析資料集。儲存空間分析資料集會自動將物件內容直接匯出至可查詢的 BigQuery 資料表。
如果只想使用 Cloud de Confiance 控制台、Google Cloud CLI 或 API 檢查個別物件,可以略過這個步驟。
建立功能設定
特徵設定 (FeatureConfig) 會指定 Cloud Storage 監控的儲存空間 bucket,以及評估物件的機器學習模型。請在設定中指定確切的值區名稱,object enrichments 不支援規則運算式或萬用字元。如果您在建立設定後,建立、重新建立 (刪除並再次建立) 或重新定位 bucket,則必須更新功能設定,將這些 bucket 納入其中。詳情請參閱「設定和範圍管理」。
您可以使用 Cloud de Confiance 控制台、Google Cloud CLI 或 JSON API 建立功能設定。
控制台
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。
點選「建立」。
在「定義來源」步驟中,指定設定名稱和目標 bucket:
- 在「Name」(名稱) 欄位中,輸入功能設定的專屬名稱。名稱長度必須介於 1 到 63 個字元,且只能包含小寫英文字母、數字或連字號。開頭須為小寫英文字母,結尾不得為連字號。設定建立後即無法變更名稱。
- 選用:在「Description」(說明) 欄位中輸入說明 (最多 256 個字元),以便識別設定。
- 如要指定要擴充的 bucket,請在「Bucket Names」(Bucket 名稱) 欄位中輸入一或多個 bucket 名稱,並以半形逗號或空格分隔。或者,按一下「瀏覽」,選取 bucket,然後按一下「選取」。
- 按一下「繼續」。
在「選取模型」步驟中,勾選要啟用的一或多個機器學習模型,然後按一下「繼續」:
- 圖片物件偵測 (
object-detector):辨識及找出圖片中的多個物件。 - 圖像臉部偵測 (
face-detector):偵測圖像中的人臉和臉部特徵。 - 圖片標籤 (
label-detector):根據圖片內容指派標籤。 - 圖像露骨內容偵測 (
content-safety):偵測成人、暴力或其他敏感內容。 - PDF 分類 (
pdf-classification):識別文件主題類別。
如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。
- 圖片物件偵測 (
在「選取處理位置」步驟中,從「處理位置」選單選取多區域位置 (us、eu 或 asia),然後按一下「繼續」。
在「Grant required permissions」(授予必要權限) 步驟中,選擇如何將必要的 IAM 角色授予物件擴充服務代理:
- 授予專案層級權限:自動向服務代理授予必要角色 (
roles/storage.annotationGeneratorService和roles/storage.bucketViewer),以便處理專案中現有和未來的所有 Cloud Storage bucket。如要選取這個選項,您必須具備專案的resourcemanager.projects.setIamPolicy權限。如果沒有這項權限,就無法使用這個選項。 - 「Manually provide grant permission later」:建立設定,但不立即授予權限。您必須授予服務代理權限,Cloud Storage 才能處理物件。
- 授予專案層級權限:自動向服務代理授予必要角色 (
點選「建立」。
建立功能設定會啟動長時間執行的作業。作業完成後, Cloud de Confiance 控制台會開啟設定詳細資料頁面。如果您選取「授予專案層級權限」, Cloud de Confiance 控制台會在建立設定後套用 IAM 政策繫結。
指令列
如要建立功能設定,請使用 gcloud alpha storage feature-configs create 指令:
gcloud alpha storage feature-configs create FEATURE_CONFIG_ID \
--description="DESCRIPTION" \
--auto-annotate-models=MODELS \
--auto-annotate-processing-location=PROCESSING_LOCATION \
--include-bucket-id-regexes=BUCKET_NAME其中:
FEATURE_CONFIG_ID是功能設定的專屬 ID。長度必須介於 1 至 63 個半形字元之間,只能使用小寫英文字母、數字或連字號,開頭須為小寫英文字母。結尾不得為連字號。DESCRIPTION是功能設定的選用說明。例如:Scan invoices and receipts。MODELS是以半形逗號分隔的清單,列出要啟用的機器學習模型:face-detector、object-detector、label-detector、content-safety或pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。PROCESSING_LOCATION是資料處理發生的多區域處理位置。支援的值為us、eu或asia。BUCKET_NAME是要納入這項設定的 bucket 確切名稱。您可以指定以半形逗號分隔的確切 bucket 名稱清單。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含功能設定的 JSON 檔案:
{ "description": "DESCRIPTION", "autoAnnotateConfig": { "models": [ { "name": "MODEL_NAME" } ], "processingLocation": "PROCESSING_LOCATION" }, "filter": { "includedCloudStorageBuckets": { "bucketIdRegexes": [ "BUCKET_NAME" ] } } }
其中:
DESCRIPTION是功能設定的選用說明。例如:Scan invoices and receipts。MODEL_NAME是要啟用的機器學習模型名稱:face-detector、object-detector、label-detector、content-safety或pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。如要啟用多個模型,請在models陣列中新增其他模型物件。PROCESSING_LOCATION是資料處理發生的多區域處理位置。支援的值為us、eu或asia。BUCKET_NAME是要納入設定的 bucket 確切名稱。例如:my-bucket。如要納入多個 bucket,請在bucketIdRegexes陣列中指定其他 bucket 名稱字串。
使用
cURL將featureConfigs.create要求傳送至 JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs?featureConfigId=FEATURE_CONFIG_ID"
其中:
JSON_FILE_NAME是您在上一步建立的 JSON 檔案路徑。例如:config.json。PROJECT_ID是您的 Cloud de Confiance 專案 ID。例如:my-project。FEATURE_CONFIG_ID是功能設定的專屬 ID。例如,my-feature-config。長度必須介於 1 至 63 個半形字元之間,只能使用小寫英文字母、數字或連字號,開頭須為小寫英文字母。結尾不得為連字號。
選用:如要檢查建立功能設定的長時間執行作業狀態,請使用
cURL將operations.get要求傳送至 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"
其中:
PROJECT_ID是您的 Cloud de Confiance 專案 ID。例如:my-project。OPERATION_ID是建立回應中傳回的作業 ID。
選用:如要列出所有現行和歷來作業,請使用
cURL將operations.list要求傳送至 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/operations"
其中
PROJECT_ID是您的 Cloud de Confiance專案 ID。例如:my-project。
將權限授予服務代理
建立功能設定時, Cloud de Confiance 會為專案佈建專屬服務代理:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com。
如要允許這個服務代理掃描 bucket、讀取非結構化物件,以及附加充實中繼資料,您必須授予必要的 IAM 角色。
控制台
如果您在建立功能設定時選取「Manually provide grant permission later」(稍後手動授予權限),或需要重新套用專案層級權限,可以透過設定詳細資料頁面授予權限:
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。
在「Configuration Name」(設定名稱) 欄中,按一下功能設定的名稱。
在動作列中,按一下「授予權限」。
在「授予權限」窗格中,按一下「授予專案層級權限」。
這項操作會將專案的 Storage Annotation Generator Service (
roles/storage.annotationGeneratorService) 和 Storage Bucket 檢視者 (roles/storage.bucketViewer) 角色授予服務代理。如要在 Cloud de Confiance 控制台中授予專案層級權限,您必須具備專案的resourcemanager.projects.setIamPolicy權限。如要將
roles/storage.annotationGeneratorService角色授予個別 bucket,而非整個專案,請使用 Google Cloud CLI。
指令列
在每個受監控的 bucket 或專案層級,將「Storage Annotation Generator Service」(
roles/storage.annotationGeneratorService) 角色授予服務代理:如要授予特定 bucket 的角色,請使用
gcloud storage buckets add-iam-policy-binding指令:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \ --role=roles/storage.annotationGeneratorService其中:
BUCKET_NAME是要授予權限的值區名稱。PROJECT_NUMBER是您的 Cloud de Confiance專案編號。
如要將角色授予專案中的所有 bucket,請使用
gcloud projects add-iam-policy-binding指令:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \ --role=roles/storage.annotationGeneratorService其中:
PROJECT_ID是您的 Cloud de Confiance專案 ID。PROJECT_NUMBER是您的 Cloud de Confiance專案編號。
如要在專案層級授予「Storage Bucket 檢視者」 (
roles/storage.bucketViewer) 角色,讓服務代理檢查 bucket 設定,請使用gcloud projects add-iam-policy-binding指令:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \ --role=roles/storage.bucketViewer其中:
PROJECT_ID是您的 Cloud de Confiance 專案 ID。PROJECT_NUMBER是您的 Cloud de Confiance專案編號。
授予角色後,IAM 權限可能需要幾分鐘才會生效,然後非同步處理作業才會開始。
列出所有功能設定
如要列出專案中的所有功能設定,請完成下列步驟:
控制台
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。
「設定」分頁會列出專案中的所有功能設定,包括已啟用的模型、處理位置、範圍、值區篩選器、建立日期和上次更新日期。
選用步驟:如要篩選清單,請在「Filter」(篩選條件) 欄位中輸入屬性名稱或值。
指令列
使用 gcloud alpha storage feature-configs list 指令:
gcloud alpha storage feature-configs list
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL將featureConfigs.list要求傳送至 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs"
其中
PROJECT_ID是Cloud de Confiance 專案的 ID。例如:my-project。
查看功能設定詳細資料
如要檢查特定功能設定的模型、目標 bucket 和處理位置,請完成下列步驟:
控制台
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。
在「Configuration Name」(設定名稱) 欄中,按一下要檢查的功能設定名稱。
設定詳細資料頁面會顯示設定名稱、說明、範圍、納入的 bucket、處理位置、啟用的模型、建立日期和上次更新日期。
指令列
使用 gcloud alpha storage feature-configs describe 指令:
gcloud alpha storage feature-configs describe FEATURE_CONFIG_ID
將 FEATURE_CONFIG_ID 替換為功能設定的 ID。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL將featureConfigs.get要求傳送至 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID"
其中:
PROJECT_ID是Cloud de Confiance 專案的 ID。例如:my-project。FEATURE_CONFIG_ID是功能設定的 ID。例如:my-feature-config。
更新功能設定
您可以更新現有的功能設定,新增或移除機器學習模型、變更目標值區、修改處理位置,或更新說明。
控制台
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。
在「Configuration Name」(設定名稱) 欄中,按一下要更新的功能設定名稱。
在設定詳細資料頁面中,更新要變更的設定:
- 如要更新說明,請按一下「Configuration description」(設定說明) 旁邊的 「Edit configuration description」(編輯設定說明)。在「編輯說明」窗格中,更新「說明」欄位中的文字,然後按一下「儲存」。
- 如要更新 bucket 範圍,請按一下「Configuration scope」(設定範圍) 旁邊的 「Edit configuration scope」(編輯設定範圍)。在「Define scope」(定義範圍) 步驟中,在「Bucket Names」(值區名稱) 欄位中新增或移除目標值區,然後按一下「Continue」(繼續)。在「Grant required permissions」(授予必要權限) 步驟中,選取服務代理的權限選項,然後按一下「Save」(儲存)。
- 如要更新處理位置,請按一下「Processing location」(處理位置) 旁的 「Edit configuration processing location」(編輯設定處理位置)。在「Edit processing location」(編輯處理位置) 窗格中,從「Processing location」(處理位置) 選單中選取多區域位置 (「us」、「eu」或「asia」),然後按一下「Save」(儲存)。
- 如要更新已啟用的模型,請按一下「Enabled models」(已啟用的模型) 旁邊的 「Edit configuration enabled models」(編輯已啟用設定的模型)。在「編輯模型」窗格中, 選取或取消選取要更新的模型核取方塊, 然後按一下「儲存」。
指令列
使用 gcloud alpha storage feature-configs update 指令更新說明、模型、處理位置或 bucket 篩選器:
gcloud alpha storage feature-configs update FEATURE_CONFIG_ID \
--description="DESCRIPTION" \
--auto-annotate-models=MODELS \
--auto-annotate-processing-location=PROCESSING_LOCATION \
--include-bucket-id-regexes=BUCKET_NAME更改下列內容:
FEATURE_CONFIG_ID:要更新的功能設定 ID。DESCRIPTION:功能設定的選用說明。例如:Scan invoices and receipts。MODELS:以半形逗號分隔的清單,列出要啟用的機器學習模型:face-detector、object-detector、label-detector、content-safety或pdf-classification。PROCESSING_LOCATION:資料處理發生的多區域處理位置。有效值為us、eu或asia。BUCKET_NAME:以半形逗號分隔的清單,列出要掃描的確切 bucket 名稱。物件擴充功能不支援萬用字元或規則運算式。如果您建立、重新建立或遷移值區,請務必更新這份清單,將這些值區納入其中。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含要更新設定的 JSON 檔案。 舉例來說,如要更新說明、已啟用的模型和目標值區,請執行下列操作:
{ "description": "DESCRIPTION", "autoAnnotateConfig": { "models": [ { "name": "MODEL_NAME" } ], "processingLocation": "PROCESSING_LOCATION" }, "filter": { "includedCloudStorageBuckets": { "bucketIdRegexes": [ "BUCKET_NAME" ] } } }
其中:
DESCRIPTION是功能設定的選用說明。例如:Scan invoices and receipts。MODEL_NAME是要納入的機器學習模型:face-detector、object-detector、label-detector、content-safety或pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。如要啟用多個模型,請在models陣列中新增其他模型物件。PROCESSING_LOCATION是資料處理發生的多區域處理位置。有效值為us、eu或asia。BUCKET_NAME是要納入掃描的 bucket 確切名稱。例如:my-bucket。物件擴充功能不支援規則運算式或萬用字元。如果您建立、重新建立或重新定位 bucket,則必須更新這份清單,將這些 bucket 納入其中。如要納入多個 bucket,請在bucketIdRegexes陣列中指定其他 bucket 名稱字串。
使用
cURL將featureConfigs.patch要求傳送至 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID?updateMask=UPDATE_MASK"
其中:
JSON_FILE_NAME是您在步驟 2 建立的 JSON 要求檔案本機路徑。例如:update.json。PROJECT_ID是Cloud de Confiance 專案的 ID。例如:my-project。FEATURE_CONFIG_ID是要更新的功能設定 ID。例如:my-feature-config。UPDATE_MASK是以半形逗號分隔的清單,包含要更新的欄位,例如description,filter或autoAnnotateConfig.models。如需語法規則,請參閱FieldMask。
刪除功能設定
刪除功能設定後,Cloud Storage 就不會再為相符的值區產生新的擴充資料。刪除設定不會刪除已附加至儲存物件的現有擴充功能。
如要刪除功能設定,請完成下列步驟:
控制台
前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。
在「Configuration Name」(設定名稱) 欄中,按一下要刪除的功能設定名稱,然後按一下 「Delete」(刪除)。
在確認對話方塊中,點選「確認」。
指令列
使用 gcloud alpha storage feature-configs delete 指令:
gcloud alpha storage feature-configs delete FEATURE_CONFIG_ID
將 FEATURE_CONFIG_ID 替換為功能設定的 ID。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL將featureConfigs.delete要求傳送至 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID"
其中:
PROJECT_ID是Cloud de Confiance 專案的 ID。例如:my-project。FEATURE_CONFIG_ID是要刪除的功能設定 ID。例如:my-feature-config。