Categories:

System functions (System Information)

SYSTEM$VALIDATE_STORAGE_INTEGRATION¶

Validates the configuration for a specified storage integration. The function attempts to use the storage integration to write, read, list, or delete a file for a storage location that you specify by path.

For more information about configuring storage integrations, see:

See also:

CREATE STORAGE INTEGRATION, ALTER STORAGE INTEGRATION

Syntax¶

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

Arguments¶

storage_integration_name

Name of the storage integration to test.

Storage integration names are case-sensitive.

storage_path

The full path to a storage location that you want to validate. The storage path must be a URL in the STORAGE_ALLOWED_LOCATIONS list for the storage integration.

Amazon S3

's3://bucket/path/'

  • The s3 prefix refers to S3 storage in public AWS regions. The s3gov prefix refers to S3 storage in government regions.

  • bucket is the name of an S3 bucket that stores your data files.

  • path is an optional path or directory in the bucket.

Google Cloud Storage

'gcs://bucket/path/'

  • bucket is the name of a GCS bucket that stores your data files.

  • path is an optional path or directory in the bucket.

Microsoft Azure

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

  • account is the name of the Azure storage account.

  • container is the name of an Azure blob storage container that stores your data files.

  • path is an optional path or directory in the bucket.

test_file_name

The name of the file to use in storage integration validation.

validate_action

The validation action to perform.

Values:
  • read - Validates that Snowflake can read from the storage location. This action fails if the file doesn’t exist.

  • write - Validate that Snowflake can write to the storage location. This action fails if the file already exists.

  • list - Validates that Snowflake can list the files in the storage location.

  • delete - Validates that Snowflake can delete files in the storage location.

  • all - Validates all possible actions in the storage location.

Returns¶

The function returns a JSON object with the properties described below:

Property

Description

status

The status of the validation test. Returns a status of success if all actions completed successfully; returns failure if any action didn’t complete as expected.

actions

Array of objects that contain the requested validation action (READ, DELETE, LIST, WRITE) and status.

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

Examples¶

The following example validates the configuration of the storage integration example_integration for all validation actions. The example returns a successful result in JSON.

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

Output:

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

The following example shows the result when the storage integration doesn’t have read permissions.

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

Output:

+----------------------------------------------------------------------------------------------------------------+
|                                                     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." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+