agent-claw: automated task changes
This commit is contained in:
176
cdk/node_modules/aws-cdk-lib/aws-sns-subscriptions/README.md
generated
vendored
Normal file
176
cdk/node_modules/aws-cdk-lib/aws-sns-subscriptions/README.md
generated
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
# CDK Construct Library for Amazon Simple Notification Service Subscriptions
|
||||
|
||||
|
||||
This library provides constructs for adding subscriptions to an Amazon SNS topic.
|
||||
Subscriptions can be added by calling the `.addSubscription(...)` method on the topic.
|
||||
|
||||
## Subscriptions
|
||||
|
||||
Subscriptions can be added to the following endpoints:
|
||||
|
||||
* HTTPS
|
||||
* Amazon SQS
|
||||
* AWS Lambda
|
||||
* Email
|
||||
* SMS
|
||||
* Amazon Data Firehose
|
||||
|
||||
Subscriptions to Amazon SQS, AWS Lambda and Amazon Data Firehose can be added on topics across regions.
|
||||
|
||||
Create an Amazon SNS Topic to add subscriptions.
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
```
|
||||
|
||||
### HTTPS
|
||||
|
||||
Add an HTTP or HTTPS Subscription to your topic:
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.UrlSubscription('https://foobar.com/'));
|
||||
```
|
||||
|
||||
The URL being subscribed can also be [tokens](https://docs.aws.amazon.com/cdk/latest/guide/tokens.html), that resolve
|
||||
to a URL during deployment. A typical use case is when the URL is passed in as a [CloudFormation
|
||||
parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html). The
|
||||
following code defines a CloudFormation parameter and uses it in a URL subscription.
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
const url = new CfnParameter(this, 'url-param');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.UrlSubscription(url.valueAsString));
|
||||
```
|
||||
|
||||
The [delivery policy](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html) can also be set like so:
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
|
||||
myTopic.addSubscription(
|
||||
new subscriptions.UrlSubscription(
|
||||
'https://foobar.com/',
|
||||
{
|
||||
deliveryPolicy: {
|
||||
healthyRetryPolicy: {
|
||||
minDelayTarget: Duration.seconds(5),
|
||||
maxDelayTarget: Duration.seconds(10),
|
||||
numRetries: 6,
|
||||
backoffFunction: sns.BackoffFunction.EXPONENTIAL,
|
||||
},
|
||||
throttlePolicy: {
|
||||
maxReceivesPerSecond: 10,
|
||||
},
|
||||
requestPolicy: {
|
||||
headerContentType: 'application/json',
|
||||
},
|
||||
},
|
||||
},
|
||||
),
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
### Amazon SQS
|
||||
|
||||
Subscribe a queue to your topic:
|
||||
|
||||
```ts
|
||||
const myQueue = new sqs.Queue(this, 'MyQueue');
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.SqsSubscription(myQueue));
|
||||
```
|
||||
|
||||
KMS key permissions will automatically be granted to SNS when a subscription is made to
|
||||
an encrypted queue.
|
||||
|
||||
Note that subscriptions of queues in different accounts need to be manually confirmed by
|
||||
reading the initial message from the queue and visiting the link found in it.
|
||||
|
||||
### AWS Lambda
|
||||
|
||||
Subscribe an AWS Lambda function to your topic:
|
||||
|
||||
```ts
|
||||
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
||||
|
||||
const myTopic = new sns.Topic(this, 'myTopic');
|
||||
declare const myFunction: lambda.Function;
|
||||
myTopic.addSubscription(new subscriptions.LambdaSubscription(myFunction));
|
||||
```
|
||||
|
||||
### Email
|
||||
|
||||
Subscribe an email address to your topic:
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'MyTopic');
|
||||
myTopic.addSubscription(new subscriptions.EmailSubscription('foo@bar.com'));
|
||||
```
|
||||
|
||||
The email being subscribed can also be [tokens](https://docs.aws.amazon.com/cdk/latest/guide/tokens.html), that resolve
|
||||
to an email address during deployment. A typical use case is when the email address is passed in as a [CloudFormation
|
||||
parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html). The
|
||||
following code defines a CloudFormation parameter and uses it in an email subscription.
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'Topic');
|
||||
const emailAddress = new CfnParameter(this, 'email-param');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.EmailSubscription(emailAddress.valueAsString));
|
||||
```
|
||||
|
||||
Note that email subscriptions require confirmation by visiting the link sent to the
|
||||
email address.
|
||||
|
||||
### SMS
|
||||
|
||||
Subscribe an sms number to your topic:
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'Topic');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.SmsSubscription('+15551231234'));
|
||||
```
|
||||
|
||||
The number being subscribed can also be [tokens](https://docs.aws.amazon.com/cdk/latest/guide/tokens.html), that resolve
|
||||
to a number during deployment. A typical use case is when the number is passed in as a [CloudFormation
|
||||
parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html). The
|
||||
following code defines a CloudFormation parameter and uses it in an sms subscription.
|
||||
|
||||
```ts
|
||||
const myTopic = new sns.Topic(this, 'Topic');
|
||||
const smsNumber = new CfnParameter(this, 'sms-param');
|
||||
|
||||
myTopic.addSubscription(new subscriptions.SmsSubscription(smsNumber.valueAsString));
|
||||
```
|
||||
|
||||
### Amazon Data Firehose
|
||||
|
||||
Subscribe an Amazon Data Firehose delivery stream to your topic:
|
||||
|
||||
```ts
|
||||
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
|
||||
|
||||
const myTopic = new sns.Topic(this, 'Topic');
|
||||
declare const stream: firehose.DeliveryStream;
|
||||
|
||||
myTopic.addSubscription(new subscriptions.FirehoseSubscription(stream));
|
||||
```
|
||||
|
||||
To remove any Amazon SNS metadata from published messages, specify `rawMessageDelivery` to true.
|
||||
|
||||
```ts
|
||||
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
|
||||
|
||||
const myTopic = new sns.Topic(this, 'Topic');
|
||||
declare const stream: firehose.DeliveryStream;
|
||||
|
||||
myTopic.addSubscription(new subscriptions.FirehoseSubscription(stream, {
|
||||
rawMessageDelivery: true,
|
||||
}));
|
||||
```
|
||||
Reference in New Issue
Block a user