Add kamelet definition: aws-sns-fifo-sink

This commit is contained in:
gitea_admin 2026-03-11 14:23:51 +00:00
parent 998d4bbb05
commit 59b35c9cdc

169
kamelet.yaml Normal file
View File

@ -0,0 +1,169 @@
apiVersion: camel.apache.org/v1
kind: Kamelet
metadata:
name: aws-sns-fifo-sink
annotations:
camel.apache.org/kamelet.support.level: "Stable"
camel.apache.org/catalog.version: "4.10.2"
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnICAgdmlld0JveD0iMCAwIDI1NiAyNTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPg0KCTxnPg0KCQk8cGF0aCBkPSJNOTguODc1LDIzMi4wMzMgTDcyLjQ0MiwyMjQuNjI1IEw0Ny40NDEsMTk2LjExNyBMNzguNzEzLDE5NS4yNTQgTDk4Ljg3NSwyMzIuMDMzIiBmaWxsPSIjOTk1QjgwIj48L3BhdGg+DQoJCTxwYXRoIGQ9Ik0zNy43NSwyMTMuMjMzIEwyMi44NzUsMjA5LjA2NyBMOC44MTcsMTkzLjAzMyBMMjUuODk5LDE5MC4yMjQgTDM3Ljc1LDIxMy4yMzMiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTAsMTkxLjAxNyBMMTUuMjA0LDE5NC4xMDggTDE3LjQxMSwxOTAuMjI2IEwxNy40MTEsNTguNTAzIEwxNS4yMDQsNTUuOTQyIEwwLDY0LjYgTDAsMTkxLjAxNyIgZmlsbD0iIzdCM0Y2NSI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNzMuOTMzLDY5LjcwOCBMMTUuMjA4LDU1Ljk0MiBMMTUuMjA4LDE5NC4xMDggTDI0LjAwNiwxOTMuMjkgTDM3Ljc1LDIxMy4yMzMgTDQ4LjM1LDE5MS4wMjggTDczLjkzMywxODguNjUgTDczLjkzMyw2OS43MDgiIGZpbGw9IiNDMTdCOUQiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTMzLjk1OCwxOTguMTMzIEw2MC4wMjEsMjAzLjM4MyBMNjEuNzM3LDE5OS4zMzggTDYxLjczNywzNy40NCBMNjAuMDIxLDMzLjc3NSBMMzMuOTU4LDQ2Ljk4MyBMMzMuOTU4LDE5OC4xMzMiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTIwOC43MzQsODEuNTE2IEw2MC4wMjEsMzMuNzc1IEw2MC4wMjEsMjAzLjM4NyBMNzcuMjQyLDIwMS4xNzEgTDk4Ljg3NSwyMzIuMDMzIEwxMTYuMDAxLDE5Ni4xODMgTDIwOC43MzQsMTg0LjI1IEwyMDguNzM0LDgxLjUxNiIgZmlsbD0iI0MxN0I5RCI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNMTgxLjgzMywyNTYuNDkyIEwxNDQuMjY3LDI0NS45NjcgTDEwOC43NTgsMjA1LjQ2NyBMMTU0Ljc5MSwyMDQuOTk5IEwxODEuODMzLDI1Ni40OTIiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTg5LjU5MSwyMDguOTUgTDEyNy45MjEsMjE2LjM2NyBMMTMwLjg5OCwyMTMuODAxIEwxMzAuODk4LDQuMTE3IEwxMjcuOTIxLDAgTDg5LjU5MSwxOS4xNTggTDg5LjU5MSwyMDguOTUiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTI1Niw2NC4wMzMgTDEyNy45MjUsMCBMMTI3LjkyNSwyMTYuMzY3IEwxNTAuNTIyLDIxMS44MzkgTDE4MS44MzMsMjU2LjQ5MiBMMjA4LjczNCwyMDAuMTgzIEwyMDguNzE3LDIwMC4xODEgTDI1NiwxOTAuNzA4IEwyNTYsNjQuMDMzIiBmaWxsPSIjQzE3QjlEIj48L3BhdGg+DQoJPC9nPg0KPC9zdmc+DQo="
camel.apache.org/provider: "Apache Software Foundation"
camel.apache.org/kamelet.group: "AWS SNS"
camel.apache.org/kamelet.namespace: "AWS"
labels:
camel.apache.org/kamelet.type: sink
spec:
definition:
title: AWS SNS FIFO Sink
description: Send message to an AWS SNS FIFO Topic.
required:
- topicNameOrArn
- region
type: object
properties:
topicNameOrArn:
title: Topic Name
description: The SNS Topic name or ARN
type: string
accessKey:
title: Access Key
description: The access key obtained from AWS.
type: string
format: password
x-descriptors:
- urn:camel:group:credentials
secretKey:
title: Secret Key
description: The secret key obtained from AWS.
type: string
format: password
x-descriptors:
- urn:camel:group:credentials
region:
title: AWS Region
description: The AWS region to access.
type: string
enum: ["ap-south-1", "eu-south-1", "us-gov-east-1", "me-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "me-south-1", "sa-east-1", "ap-east-1", "cn-north-1", "us-gov-west-1", "ap-southeast-1", "ap-southeast-2", "us-iso-east-1", "ap-southeast-3", "us-east-1", "us-east-2", "cn-northwest-1", "us-isob-east-1", "aws-global", "aws-cn-global", "aws-us-gov-global", "aws-iso-global", "aws-iso-b-global"]
contentBasedDeduplication:
title: Content-Based Deduplication
description: Use content-based deduplication (should be enabled in the SQS FIFO queue first)
type: boolean
default: false
autoCreateTopic:
title: Autocreate Topic
description: Setting the autocreation of the SNS topic.
type: boolean
default: false
useDefaultCredentialsProvider:
title: Default Credentials Provider
description: Set whether the SNS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.
type: boolean
default: false
useProfileCredentialsProvider:
title: Profile Credentials Provider
description: Set whether the SNS client should expect to load credentials through a profile credentials provider.
type: boolean
default: false
useSessionCredentials:
title: Session Credentials
description: Set whether the SNS client should expect to use Session Credentials. This is useful in situation in which the user needs to assume a IAM role for doing operations in SNS.
type: boolean
default: false
profileCredentialsName:
title: Profile Credentials Name
description: If using a profile credentials provider this parameter will set the profile name.
type: string
sessionToken:
title: Session Token
description: Amazon AWS Session Token used when the user needs to assume a IAM role.
type: string
format: password
x-descriptors:
- urn:camel:group:credentials
uriEndpointOverride:
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.
type: string
overrideEndpoint:
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.
type: boolean
default: false
dependencies:
- "camel:aws2-sns"
- "camel:core"
- "camel:kamelet"
template:
from:
uri: kamelet:source
steps:
- choice:
when:
- simple: "${header[subject]}"
steps:
- setHeader:
name: CamelAwsSnsSubject
simple: "${header[subject]}"
- simple: "${header[ce-subject]}"
steps:
- setHeader:
name: CamelAwsSnsSubject
simple: "${header[ce-subject]}"
- setProperty:
name: contentBasedDeduplication
constant: "{{contentBasedDeduplication}}"
- choice:
when:
- simple: "${header[group]}"
steps:
- setProperty:
name: CamelAwsSnsMessageGroupId
simple: "${header[group]}"
- simple: "${header[ce-group]}"
steps:
- setProperty:
name: CamelAwsSnsMessageGroupId
simple: "${header[ce-group]}"
otherwise:
steps:
- setProperty:
name: CamelAwsSnsMessageGroupId
simple: "${exchangeId}"
- choice:
when:
- simple: "${exchangeProperty.contentBasedDeduplication} == 'true'"
steps:
- to:
uri: "aws2-sns:{{topicNameOrArn}}"
parameters:
autoCreateTopic: "{{autoCreateTopic}}"
accessKey: "{{?accessKey}}"
secretKey: "{{?secretKey}}"
region: "{{region}}"
useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
useProfileCredentialsProvider: "{{useProfileCredentialsProvider}}"
useSessionCredentials: "{{useSessionCredentials}}"
messageGroupIdStrategy: "usePropertyValue"
messageDeduplicationIdStrategy: "useContentBasedDeduplication"
profileCredentialsName: "{{?profileCredentialsName}}"
sessionToken: "{{?sessionToken}}"
uriEndpointOverride: "{{?uriEndpointOverride}}"
overrideEndpoint: "{{overrideEndpoint}}"
otherwise:
steps:
- to:
uri: "aws2-sns:{{topicNameOrArn}}"
parameters:
autoCreateTopic: "{{autoCreateTopic}}"
accessKey: "{{?accessKey}}"
secretKey: "{{?secretKey}}"
region: "{{region}}"
useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
useProfileCredentialsProvider: "{{useProfileCredentialsProvider}}"
useSessionCredentials: "{{useSessionCredentials}}"
messageGroupIdStrategy: "usePropertyValue"
messageDeduplicationIdStrategy: "useExchangeId"
profileCredentialsName: "{{?profileCredentialsName}}"
sessionToken: "{{?sessionToken}}"
uriEndpointOverride: "{{?uriEndpointOverride}}"
overrideEndpoint: "{{overrideEndpoint}}"