要解决Amazon SNS忽略基于电子邮件协议的FilterPolicy的问题,您可以使用PHP SDK中的以下代码示例:
'latest',
'region' => $region,
'credentials' => $credentials
]);
// 定义主题ARN和过滤器策略
$topicArn = 'your_topic_arn';
$filterPolicy = [
'email' => [
'comparisonType' => 'StringEquals',
'comparisonValue' => 'example@example.com'
]
];
try {
// 设置主题属性,包括过滤器策略
$result = $snsClient->setTopicAttributes([
'AttributeName' => 'FilterPolicy',
'AttributeValue' => json_encode($filterPolicy),
'TopicArn' => $topicArn
]);
// 输出结果
echo "FilterPolicy设置成功!\n";
} catch (AwsException $e) {
// 捕获异常并输出错误消息
echo $e->getMessage();
}
?>
您需要将代码中的以下值替换为您自己的信息:
your_access_key和your_secret_key:您的AWS访问密钥us-west-2:您要使用的AWS区域your_topic_arn:您要设置过滤器策略的SNS主题ARN'email' => 'example@example.com':您要设置的过滤器策略,此示例将基于电子邮件协议过滤发送到example@example.com的消息。运行代码后,它将设置SNS主题的过滤器策略为基于电子邮件协议,并输出设置成功的消息。
请确保已安装AWS SDK for PHP,并将其引入您的项目中。您可以使用Composer来安装SDK,也可以手动下载SDK并将其包含在您的代码中。
注意:此代码示例仅用于演示目的,您可能需要根据您的实际需求进行修改。