カテゴリ:

システム関数 (システム情報)

SYSTEM$VALIDATE_STORAGE_INTEGRATION

指定されたストレージ統合の構成を検証します。この関数は、ストレージ統合を使用して、パスで指定されたストレージの場所に対するファイルの書き込み、読み取り、リスト、または削除を試みます。

ストレージ統合の構成の詳細については、以下をご参照ください。

こちらもご参照ください。

CREATE STORAGE INTEGRATIONALTER STORAGE INTEGRATION

構文

SYSTEM$VALIDATE_STORAGE_INTEGRATION( '<storage_integration_name>', '<storage_path>', '<test_file_name>', '<validate_action>' )
Copy

引数

storage_integration_name

テストするストレージ統合の名前。

ストレージ統合名は大文字と小文字を区別します。

storage_path

検証するストレージの場所へのフルパス。ストレージパスは、ストレージ統合の STORAGE_ALLOWED_LOCATIONS リストの URL にする必要があります。

Amazon S3

's3://bucket/path/'

  • s3 プレフィックスは、パブリック AWS リージョンのS3ストレージを参照します。 s3gov プレフィックスは、 政府リージョン のS3ストレージを参照します。

  • bucket は、データファイルを保存するS3バケットの名前です。

  • path はバケット内のオプションのパスまたはディレクトリです。

Google Cloud Storage

'gcs://bucket/path/'

  • bucket は、データファイルを保存する GCS バケットの名前です。

  • path はバケット内のオプションのパスまたはディレクトリです。

Microsoft Azure

'azure://account.blob.core.windows.net/container/path/'

  • account は、Azureストレージの名前です。

  • container は、データファイルを保存するAzure BLOBストレージコンテナーの名前です。

  • path はバケット内のオプションのパスまたはディレクトリです。

test_file_name

ストレージ統合の検証で使用するファイルの名前。

validate_action

実行する検証アクション。

値:
  • read - Snowflakeがストレージの場所から読み込めることを検証します。ファイルが存在しない場合は、このアクションに失敗します。

  • write - Snowflakeがストレージの場所に書き込めることを検証します。ファイルがすでに存在する場合は、このアクションに失敗します。

  • list - Snowflakeがストレージの場所内のファイルをリストできることを検証します。

  • delete - Snowflakeがストレージの場所内のファイルを削除できることを検証します。

  • all - ストレージの場所で可能なすべてのアクションを検証します。

戻り値

この関数は、以下に説明するプロパティを持つ JSON オブジェクトを返します。

プロパティ

説明

status

検証テストのステータス。すべてのアクションが正常に完了した場合は success のステータスを返し、期待通りに完了しなかった場合は failure を返します。

actions

リクエストされた検証アクション(READDELETELISTWRITE)とステータスを含むオブジェクトの配列。

{
  "status" : "success",
  "actions" : {
    "READ" : {
      "status" : "success"
    },
    "DELETE" : {
      "status" : "success"
    },
    "LIST" : {
      "status" : "success"
    },
    "WRITE" : {
      "status" : "success"
    }
  }
}
Copy

次の例は、すべての検証アクションのために、ストレージ統合 example_integration の構成を検証します。この例は、 JSON 形式で成功した結果を返します。

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    's3://example_bucket/test_path/'',
    'validate_all.txt', 'all');
Copy

出力:

+----------------------------+
|           RESULT           |
+----------------------------+
| {                          |
|   "status" : "success",    |
|   "actions" : {            |
|     "READ" : {             |
|       "status" : "success" |
|     },                     |
|     "DELETE" : {           |
|       "status" : "success" |
|     },                     |
|     "LIST" : {             |
|       "status" : "success" |
|     },                     |
|     "WRITE" : {            |
|       "status" : "success" |
|     }                      |
|   }                        |
| }                          |
+----------------------------+

次の例は、ストレージ統合に read 権限がない場合の結果を示しています。

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    'gcs://example_bucket/test_path/'',
    'read_fail.txt', 'all');
Copy

出力:

+----------------------------------------------------------------------------------------------------------------+
|                                                     RESULT                                                     |
+----------------------------------------------------------------------------------------------------------------+
| {                                                                                                              |
|   "status" : "failure",                                                                                        |
|   "actions" : {                                                                                                |
|     "READ" : {                                                                                                 |
|       "message" : "Access Denied (Status Code: 403; Error Code: AccessDenied)",                                |
|       "status" : "failure"                                                                                     |
|     },                                                                                                         |
|     "DELETE" : {                                                                                               |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "LIST" : {                                                                                                 |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "WRITE" : {                                                                                                |
|       "status" : "success"                                                                                     |
|     }                                                                                                          |
|   },                                                                                                           |
|   "message" : "Some of the integration checks failed. Check the Snowflake documentation for more information." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+