SubscriptionFilter

class aws_cdk.aws_sns.SubscriptionFilter(conditions=None)

Bases: object

A subscription filter for an attribute.

ExampleMetadata:

infused

Example:

import aws_cdk.aws_lambda as lambda_
# fn: lambda.Function


my_topic = sns.Topic(self, "MyTopic")

# Lambda should receive only message matching the following conditions on attributes:
# color: 'red' or 'orange' or begins with 'bl'
# size: anything but 'small' or 'medium'
# price: between 100 and 200 or greater than 300
# store: attribute must be present
my_topic.add_subscription(subscriptions.LambdaSubscription(fn,
    filter_policy={
        "color": sns.SubscriptionFilter.string_filter(
            allowlist=["red", "orange"],
            match_prefixes=["bl"],
            match_suffixes=["ue"]
        ),
        "size": sns.SubscriptionFilter.string_filter(
            denylist=["small", "medium"]
        ),
        "price": sns.SubscriptionFilter.numeric_filter(
            between=sns.BetweenCondition(start=100, stop=200),
            greater_than=300
        ),
        "store": sns.SubscriptionFilter.exists_filter()
    }
))
Parameters:

conditions (Optional[Sequence[Any]]) – conditions that specify the message attributes that should be included, excluded, matched, etc.

Attributes

conditions

conditions that specify the message attributes that should be included, excluded, matched, etc.

Static Methods

classmethod exists_filter()

Returns a subscription filter for attribute key matching.

Return type:

SubscriptionFilter

classmethod numeric_filter(*, allowlist=None, between=None, between_strict=None, greater_than=None, greater_than_or_equal_to=None, less_than=None, less_than_or_equal_to=None)

Returns a subscription filter for a numeric attribute.

Parameters:
  • allowlist (Optional[Sequence[Union[int, float]]]) – Match one or more values. Default: - None

  • between (Union[BetweenCondition, Dict[str, Any], None]) – Match values that are between the specified values. Default: - None

  • between_strict (Union[BetweenCondition, Dict[str, Any], None]) – Match values that are strictly between the specified values. Default: - None

  • greater_than (Union[int, float, None]) – Match values that are greater than the specified value. Default: - None

  • greater_than_or_equal_to (Union[int, float, None]) – Match values that are greater than or equal to the specified value. Default: - None

  • less_than (Union[int, float, None]) – Match values that are less than the specified value. Default: - None

  • less_than_or_equal_to (Union[int, float, None]) – Match values that are less than or equal to the specified value. Default: - None

Return type:

SubscriptionFilter

classmethod string_filter(*, allowlist=None, denylist=None, match_prefixes=None, match_suffixes=None)

Returns a subscription filter for a string attribute.

Parameters:
  • allowlist (Optional[Sequence[str]]) – Match one or more values. Default: - None

  • denylist (Optional[Sequence[str]]) – Match any value that doesn’t include any of the specified values. Default: - None

  • match_prefixes (Optional[Sequence[str]]) – Matches values that begins with the specified prefixes. Default: - None

  • match_suffixes (Optional[Sequence[str]]) – Matches values that end with the specified suffixes. Default: - None

Return type:

SubscriptionFilter