This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch append-blob-azure-storage in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit 82a88412aaf559d7fa57d683a19b6cbc9d8d65f5 Author: Andrea Cosentino <[email protected]> AuthorDate: Thu Nov 2 12:48:22 2023 +0100 Enhance the kamelet azure-storage-blob-sink for append operation and rotate daily Signed-off-by: Andrea Cosentino <[email protected]> --- .../azure-storage-blob-append-sink.kamelet.yaml | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) 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}}"
