This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
The following commit(s) were added to refs/heads/main by this push:
new ff76c6b0 Enhance the kamelet azure-storage-blob-sink for append
operation and rotate daily (#1711)
ff76c6b0 is described below
commit ff76c6b0455b867a52f1da65d0db614550b7772d
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Nov 2 13:12:11 2023 +0100
Enhance the kamelet azure-storage-blob-sink for append operation and rotate
daily (#1711)
* Enhance the kamelet azure-storage-blob-sink for append operation and
rotate daily
Signed-off-by: Andrea Cosentino <[email protected]>
* Enhance the kamelet azure-storage-blob-sink for append operation and
rotate daily
Signed-off-by: Andrea Cosentino <[email protected]>
* Enhance the kamelet azure-storage-blob-sink for append operation and
rotate daily
Signed-off-by: Andrea Cosentino <[email protected]>
---------
Signed-off-by: Andrea Cosentino <[email protected]>
---
docs/modules/ROOT/nav.adoc | 1 +
.../azure-storage-blob-append-sink.kamelet.yaml | 98 ++++++++++++++++++++++
.../azure-storage-blob-append-sink.kamelet.yaml | 98 ++++++++++++++++++++++
3 files changed, 197 insertions(+)
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 3e344f5e..41181946 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -33,6 +33,7 @@
* xref:azure-functions-sink.adoc[]
* xref:azure-servicebus-sink.adoc[]
* xref:azure-servicebus-source.adoc[]
+* xref:azure-storage-blob-append-sink.adoc[]
* xref:azure-storage-blob-cdc-source.adoc[]
* xref:azure-storage-blob-changefeed-source.adoc[]
* xref:azure-storage-blob-sink.adoc[]
diff --git a/kamelets/azure-storage-blob-append-sink.kamelet.yaml
b/kamelets/azure-storage-blob-append-sink.kamelet.yaml
new file mode 100644
index 00000000..bff71ced
--- /dev/null
+++ b/kamelets/azure-storage-blob-append-sink.kamelet.yaml
@@ -0,0 +1,98 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Kamelet
+metadata:
+ name: azure-storage-blob-append-sink
+ annotations:
+ camel.apache.org/kamelet.support.level: "Stable"
+ camel.apache.org/catalog.version: "4.2.0-SNAPSHOT"
+ camel.apache.org/kamelet.icon:
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny
[...]
+ camel.apache.org/provider: "Apache Software Foundation"
+ camel.apache.org/kamelet.group: "Azure Storage Blob"
+ camel.apache.org/kamelet.namespace: "Azure"
+ labels:
+ camel.apache.org/kamelet.type: "sink"
+spec:
+ definition:
+ title: "Azure Storage Blob Append Sink"
+ description: |-
+ Upload data in append mode to Azure Storage Blob.
+
+ In the header, you can set the `file` / `ce-file` property to specify
the filename to upload. If you do set property in the header, the Kamelet uses
the exchange ID as filename.
+ required:
+ - accountName
+ - containerName
+ type: object
+ properties:
+ accountName:
+ title: Account Name
+ description: The Azure Storage Blob account name.
+ type: string
+ x-descriptors:
+ - urn:camel:group:credentials
+ containerName:
+ title: Container Name
+ description: The Azure Storage Blob container name.
+ type: string
+ accessKey:
+ title: Access Key
+ description: The Azure Storage Blob access key.
+ type: string
+ format: password
+ x-descriptors:
+ - urn:alm:descriptor:com.tectonic.ui:password
+ - urn:camel:group:credentials
+ credentialType:
+ title: Credential Type
+ description: Determines the credential strategy to adopt.
+ type: string
+ enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+ default: "SHARED_ACCOUNT_KEY"
+ dependencies:
+ - "camel:core"
+ - "camel:azure-storage-blob"
+ - "camel:kamelet"
+ template:
+ from:
+ uri: "kamelet:source"
+ steps:
+ - choice:
+ when:
+ - simple: "${header[file]}"
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${header[file]}"
+ - simple: "${header[ce-file]}"
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${header[ce-file]}"
+ otherwise:
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${exchangeId}"
+ - to:
+ uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
+ parameters:
+ accessKey: "{{?accessKey}}"
+ operation: "commitAppendBlob"
+ blobType: "appendBlob"
+ credentialType: "{{credentialType}}"
diff --git
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
new file mode 100644
index 00000000..bff71ced
--- /dev/null
+++
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
@@ -0,0 +1,98 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Kamelet
+metadata:
+ name: azure-storage-blob-append-sink
+ annotations:
+ camel.apache.org/kamelet.support.level: "Stable"
+ camel.apache.org/catalog.version: "4.2.0-SNAPSHOT"
+ camel.apache.org/kamelet.icon:
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgOTEgODEiIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBkPSJNNjcuNTU4IDBIMjIuNDQxTDAgNDBsMjIuNDQxIDQwaDQ1LjExN0w5MCA0MCA2Ny
[...]
+ camel.apache.org/provider: "Apache Software Foundation"
+ camel.apache.org/kamelet.group: "Azure Storage Blob"
+ camel.apache.org/kamelet.namespace: "Azure"
+ labels:
+ camel.apache.org/kamelet.type: "sink"
+spec:
+ definition:
+ title: "Azure Storage Blob Append Sink"
+ description: |-
+ Upload data in append mode to Azure Storage Blob.
+
+ In the header, you can set the `file` / `ce-file` property to specify
the filename to upload. If you do set property in the header, the Kamelet uses
the exchange ID as filename.
+ required:
+ - accountName
+ - containerName
+ type: object
+ properties:
+ accountName:
+ title: Account Name
+ description: The Azure Storage Blob account name.
+ type: string
+ x-descriptors:
+ - urn:camel:group:credentials
+ containerName:
+ title: Container Name
+ description: The Azure Storage Blob container name.
+ type: string
+ accessKey:
+ title: Access Key
+ description: The Azure Storage Blob access key.
+ type: string
+ format: password
+ x-descriptors:
+ - urn:alm:descriptor:com.tectonic.ui:password
+ - urn:camel:group:credentials
+ credentialType:
+ title: Credential Type
+ description: Determines the credential strategy to adopt.
+ type: string
+ enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+ default: "SHARED_ACCOUNT_KEY"
+ dependencies:
+ - "camel:core"
+ - "camel:azure-storage-blob"
+ - "camel:kamelet"
+ template:
+ from:
+ uri: "kamelet:source"
+ steps:
+ - choice:
+ when:
+ - simple: "${header[file]}"
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${header[file]}"
+ - simple: "${header[ce-file]}"
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${header[ce-file]}"
+ otherwise:
+ steps:
+ - set-header:
+ name: CamelAzureStorageBlobBlobName
+ simple: "${exchangeId}"
+ - to:
+ uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
+ parameters:
+ accessKey: "{{?accessKey}}"
+ operation: "commitAppendBlob"
+ blobType: "appendBlob"
+ credentialType: "{{credentialType}}"