类别:

系统函数 (系统信息)

SYSTEM$GET_AWS_SNS_IAM_POLICY

返回 AWS IAM 策略声明,该声明必须添加到 Amazon SNS 主题策略中,才能允许由 Snowflake 创建的 Amazon SQS 消息队列订阅该主题。

当使用 S3 事件的 SQS 通知来自动化 Snowpipe 时,将使用此函数。为了避免与同一 *端点*(即 S3 桶)的现有 SQS 队列发生冲突,为该桶创建 SNS 主题并将所有 SQS 队列订阅到该主题,使 SNS 能够将该桶的事件通知发布给多个订阅者。

语法

SYSTEM$GET_AWS_SNS_IAM_POLICY( '<sns_topic_arn>' )
Copy

实参

sns_topic_arn

S3 桶中 SNS 主题的 Amazon Resource Name (ARN)。该函数返回 Snowflake 的 SQS 队列的 IAM 策略以订阅此主题。

使用说明

  • 所有实参都是字符串(即它们必须放入单引号内)。

示例

返回指定 SNS 主题 ARN 的 IAM 策略:

select system$get_aws_sns_iam_policy('arn:aws:sns:us-west-2:001234567890:s3_mybucket');

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_AWS_SNS_IAM_POLICY('ARN:AWS:SNS:US-WEST-2:001234567890:S3_MYBUCKET')                                                                                                                                                                   |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| {"Version":"2012-10-17","Statement":[{"Sid":"1","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789001:user/vj4g-a-abcd1234"},"Action":["sns:Subscribe"],"Resource":["arn:aws:sns:us-west-2:001234567890:s3_mybucket"]}]}                 |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Copy
语言: 中文