A Notification Integration is a Snowflake object that securely connects your account to external notification services. It comes in three flavors — cloud message queues (QUEUE), email (EMAIL), and HTTPS endpoints (WEBHOOK) — and is used for Snowpipe auto-trigger, task failure notifications, alert firing, and many other use cases.
| Type | Connects to | Primary use case | Direction |
|---|---|---|---|
| QUEUE | AWS SQS / Azure Storage Queue / GCS Pub/Sub | Snowpipe auto-trigger, External Table auto-refresh | External → Snowflake (inbound) |
| Snowflake built-in email sender | Alert notifications, error notifications | Snowflake → External (outbound) | |
| WEBHOOK | HTTPS endpoint (Slack / PagerDuty, etc.) | Real-time notifications, ChatOps integration | Snowflake → External (outbound) |
This is the most commonly used type for Snowpipe auto-trigger. Parameters differ by cloud provider.
-- Notification Integration for AWS SQS
CREATE OR REPLACE NOTIFICATION INTEGRATION aws_s3_notification
ENABLED = TRUE
TYPE = QUEUE
NOTIFICATION_PROVIDER = AWS_SQS
DIRECTION = INBOUND
AWS_SQS_ARN = 'arn:aws:sqs:ap-northeast-1:123456789012:snowpipe-queue'
AWS_SQS_ROLE_ARN = 'arn:aws:iam::123456789012:role/snowflake-sqs-role';
-- Inspect the integration (returns SF_AWS_IAM_USER_ARN / SF_AWS_EXTERNAL_ID)
DESCRIBE NOTIFICATION INTEGRATION aws_s3_notification;-- Notification Integration for Azure Storage Queue
CREATE OR REPLACE NOTIFICATION INTEGRATION azure_blob_notification
ENABLED = TRUE
TYPE = QUEUE
NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE
DIRECTION = INBOUND
AZURE_STORAGE_QUEUE_PRIMARY_URI =
'https://myaccount.queue.core.windows.net/snowpipe-queue'
AZURE_TENANT_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
DESCRIBE NOTIFICATION INTEGRATION azure_blob_notification;-- Notification Integration for GCS Pub/Sub
CREATE OR REPLACE NOTIFICATION INTEGRATION gcs_notification
ENABLED = TRUE
TYPE = QUEUE
NOTIFICATION_PROVIDER = GCP_PUBSUB
DIRECTION = INBOUND
GCP_PUBSUB_SUBSCRIPTION_NAME =
'projects/my-project/subscriptions/snowpipe-sub';
DESCRIBE NOTIFICATION INTEGRATION gcs_notification;Combine a QUEUE-type Notification Integration with Snowpipe to ingest data automatically the moment a file lands in cloud storage.
-- Create the Snowpipe with a Notification Integration reference
CREATE OR REPLACE PIPE raw_data_pipe
AUTO_INGEST = TRUE
INTEGRATION = aws_s3_notification
AS
COPY INTO raw.events
FROM @raw.s3_stage/events/
FILE_FORMAT = (TYPE = 'PARQUET')
MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE;
-- Check pipe status
SHOW PIPES LIKE 'RAW_DATA_PIPE';
SELECT SYSTEM$PIPE_STATUS('raw_data_pipe');
-- Pipe copy history
SELECT *
FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
TABLE_NAME => 'RAW.EVENTS',
START_TIME => DATEADD('HOUR', -24, CURRENT_TIMESTAMP())
));Use EMAIL integrations to send email notifications from Alerts or stored procedures.
-- Create the email Notification Integration
CREATE OR REPLACE NOTIFICATION INTEGRATION email_alerts
ENABLED = TRUE
TYPE = EMAIL
ALLOWED_RECIPIENTS = (
'[email protected]',
'[email protected]'
);
-- Email notification via Alert (anomaly detection example)
CREATE OR REPLACE ALERT high_cost_alert
WAREHOUSE = monitor_wh
SCHEDULE = '60 MINUTE'
IF (EXISTS (
SELECT 1
FROM TABLE(INFORMATION_SCHEMA.WAREHOUSE_METERING_HISTORY(
DATE_RANGE_START => DATEADD('HOUR', -1, CURRENT_TIMESTAMP())
))
WHERE CREDITS_USED > 100
))
THEN
CALL SYSTEM$SEND_EMAIL(
'email_alerts',
'[email protected]',
'Snowflake high-cost alert',
'Credit consumption exceeded 100 in the last hour. Please investigate.'
);
ALTER ALERT high_cost_alert RESUME;-- Create the Webhook Notification Integration
CREATE OR REPLACE NOTIFICATION INTEGRATION slack_webhook
ENABLED = TRUE
TYPE = WEBHOOK
WEBHOOK_URL = 'https://hooks.slack.com/services/T00/B00/xxxxx'
WEBHOOK_SECRET = snowflake.secrets.slack_secret
WEBHOOK_BODY_TEMPLATE = '{
"text": "SNOWFLAKE_WEBHOOK_MESSAGE"
}'
WEBHOOK_HEADERS = ('Content-Type' = 'application/json');-- Create the integration (run as ACCOUNTADMIN)
USE ROLE ACCOUNTADMIN;
-- Grant USAGE on the integration to working roles
GRANT USAGE ON INTEGRATION aws_s3_notification
TO ROLE data_engineer_role;
GRANT USAGE ON INTEGRATION email_alerts
TO ROLE monitoring_role;
-- Build the Snowpipe as data_engineer_role
USE ROLE data_engineer_role;
CREATE PIPE ... INTEGRATION = aws_s3_notification ...;| Symptom | Cause | Resolution |
|---|---|---|
| Snowpipe is not detecting new files | The SQS queue policy does not authorize Snowflake's IAM role | Add SF_AWS_IAM_USER_ARN (returned by DESCRIBE INTEGRATION) to the SQS queue policy |
| Email notifications never arrive | The recipient is missing from ALLOWED_RECIPIENTS | Add the recipient with ALTER INTEGRATION SET ALLOWED_RECIPIENTS = (...) |
| The webhook returns 403 | Misconfigured secret/URL, or a missing Network Rule | Verify WEBHOOK_URL and WEBHOOK_SECRET, and configure an External Access Integration if required |
| Integration creation fails | The role lacks the CREATE INTEGRATION privilege | Create it as ACCOUNTADMIN and grant USAGE to other roles |
SnowPro
問題 1
You are building a pipeline that auto-ingests data through Snowpipe every time a file lands in AWS S3. Which Notification Integration configuration is correct?
正解: B
The correct flow is S3 event notification → SQS queue → Snowflake Notification Integration (QUEUE type / AWS_SQS) → Snowpipe (AUTO_INGEST = TRUE + INTEGRATION clause). EMAIL and WEBHOOK types cannot be used for Snowpipe auto-trigger. AUTO_INGEST = TRUE alone does not establish a connection to the cloud queue, so events would never be received.
How do I choose between QUEUE, EMAIL, and WEBHOOK Notification Integrations?
QUEUE integrations connect to cloud message queues (AWS SQS / Azure Storage Queue / GCS Pub/Sub) and are used to auto-trigger Snowpipe and auto-refresh External Tables. EMAIL integrations send alert notifications and task failure notifications via email from Snowflake. WEBHOOK integrations push notifications directly to external HTTPS endpoints (Slack, PagerDuty, etc.). QUEUE is required for Snowpipe integration.
Is a Notification Integration always required for Snowpipe auto-ingest?
It is required when you auto-trigger Snowpipe via cloud event notifications. On AWS you forward S3 Event Notifications to SQS, and Snowpipe polls the queue through a QUEUE-type Notification Integration. If you instead call Snowpipe explicitly via the REST API (insertFiles), no Notification Integration is needed.
Which role should own Notification Integration privileges?
ACCOUNTADMIN holds the CREATE INTEGRATION privilege, so the integration itself must be created as ACCOUNTADMIN. After creation, grant USAGE ON INTEGRATION to a working role (for example data_engineer_role), and have that role wire up Snowpipe or Alert references to the integration. From a security standpoint, you should avoid building pipelines directly as ACCOUNTADMIN.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Snowflake Certifications: All 11 Exams Explained (2026)
Every SnowPro certification — Associate, Core, Specialty, Ad...
Snowflake Exam Difficulty Ranking: All 11 Certs Compared (2026)
All 11 SnowPro exams ranked by difficulty with study-time es...
Snowflake Study Guide: Fastest Pass Route by Exam (2026)
How to pass SnowPro certifications efficiently — official ma...
SnowPro Core (COF-C03): Complete Exam Guide (2026)
Pass the SnowPro Core exam — six domains, scope, sample ques...
SnowPro Associate Platform (SOL-C01): Complete Guide (2026)
The entry-level SnowPro Associate exam — scope, weighting, s...