blob: 537fc7cb60ab39f6e267c128dad1bd70c1c1cb0d [file] [log] [blame]
== Azure Storage Blob CDC Example
In this sample you'll use the Azure Storage Blob CDC Source Kamelet.
Through the usage of Event Grid and Servicebus Services you'll be able to consume events from specific containers.
=== Install JBang
First install JBang according to https://www.jbang.dev
When JBang is installed then you should be able to run from a shell:
[source,sh]
----
$ jbang --version
----
This will output the version of JBang.
To run this example you can either install Camel on JBang via:
[source,sh]
----
$ jbang app install camel@apache/camel
----
Which allows to run CamelJBang with `camel` as shown below.
=== Setup the Servicebus, Azure Storage Blob and Eventgrid
Running the terraform configuration provided in terraform folder.
[source,sh]
----
cd terraform/
----
and then run
[source,sh]
----
terraform init
----
At this point you should be to run the configuration
[source,sh]
----
terraform apply
----
Enter yes and wait for the terraform configuration to end.
=== Setup credentials
In the `azure.prop` add the correct accessKey for the Azure Storage Blob account.
In the `azure-storage-blob-cdc.yaml` add the correct connection String for the Servicebus Queue.
=== How to run
Then you can run this example using:
[source,sh]
----
$ camel run --local-kamelet-dir=<local-kamelets-dir> --properties=azure.prop azure-storage-blob-cdc.yaml
----
Replace the local kamelet dir with your local directory.
Or run with JBang using the longer command line (without installing camel as app in JBang):
[source,sh]
----
$ jbang run camel@apache/camel run --local-kamelet-dir=<local-kamelets-dir> --properties=azure.prop azure-storage-blob-cdc.yaml
----
Replace the local kamelet dir with your local directory.
=== Developer Web Console
You can enable the developer console via `--console` flag as show:
[source,sh]
----
$ camel run --local-kamelet-dir=<local-kamelets-dir> --properties=azure.prop azure-storage-blob-cdc.yaml --console
----
Then you can browse: http://localhost:8080/q/dev to introspect the running Camel applicaton.
=== Create and delete an object
While the integration is running you can run the following commands:
[source,sh]
----
az storage blob upload --account-name kameletsaccount --container-name kamelets --file nominatim-geocode-action.kamelet.yaml --account-key <accountKey>
az storage blob delete --account-name kameletsaccount --container-name kamelets --name nominatim-geocode-action.kamelet.yaml --account-key <accountKey>
----
You should see at first the content of the uploaded file and in the second message the deletion of the blob from the container.
[source,sh]
----
2022-12-05 10:08:37.134 INFO 54702 --- [ main] org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.0-SNAPSHOT is starting
2022-12-05 10:08:37.340 INFO 54702 --- [ main] org.apache.camel.main.MainSupport : Using Java 11.0.16.1 with PID 54702. Started by oscerd in /home/oscerd/workspace/apache-camel/camel-kamelets-examples/jbang/azure-storage-blob-cdc
2022-12-05 10:08:37.350 INFO 54702 --- [ main] he.camel.cli.connector.LocalCliConnector : Camel CLI enabled (local)
2022-12-05 10:08:39.949 INFO 54702 --- [ main] .main.download.MavenDependencyDownloader : Downloaded: org.apache.camel:camel-azure-servicebus:3.20.0-SNAPSHOT (took: 1s87ms)
2022-12-05 10:08:41.307 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.0-SNAPSHOT (azure-storage-blob-cdc) is starting
2022-12-05 10:08:41.512 INFO 54702 --- [ main] aging.servicebus.ServiceBusClientBuilder : {"az.sdk.message":"Setting entity from connection string.","entityPath":"kamelets_servicebus_queue"}
2022-12-05 10:08:41.514 WARN 54702 --- [ main] aging.servicebus.ServiceBusClientBuilder : 'enableAutoComplete' is not needed in for RECEIVE_AND_DELETE mode.
2022-12-05 10:08:41.709 INFO 54702 --- [ main] ementation.ServiceBusConnectionProcessor : {"az.sdk.message":"Setting next AMQP channel.","entityPath":"N/A"}
2022-12-05 10:08:41.711 INFO 54702 --- [ main] aging.servicebus.ServiceBusClientBuilder : # of open clients with shared connection: 1
2022-12-05 10:08:41.727 INFO 54702 --- [ main] servicebus.ServiceBusReceiverAsyncClient : {"az.sdk.message":"Creating consumer.","linkName":"kamelets_servicebus_queue_18caee_1670231321727","entityPath":"kamelets_servicebus_queue"}
2022-12-05 10:08:41.735 INFO 54702 --- [ main] mentation.ServiceBusReceiveLinkProcessor : Requesting a new AmqpReceiveLink from upstream.
2022-12-05 10:08:41.759 INFO 54702 --- [ main] re.amqp.implementation.ReactorConnection : {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_a947d3_1670231321658","hostName":"kamelets-servicebus-namespace.servicebus.windows.net","port":5671}
2022-12-05 10:08:41.782 INFO 54702 --- [ main] core.amqp.implementation.ReactorExecutor : {"az.sdk.message":"Starting reactor.","connectionId":"MF_a947d3_1670231321658"}
2022-12-05 10:08:41.792 INFO 54702 --- [ctor-executor-1] implementation.handler.ConnectionHandler : {"az.sdk.message":"onConnectionInit","connectionId":"MF_a947d3_1670231321658","hostName":"kamelets-servicebus-namespace.servicebus.windows.net","namespace":"kamelets-servicebus-namespace.servicebus.windows.net"}
2022-12-05 10:08:41.793 INFO 54702 --- [ctor-executor-1] qp.implementation.handler.ReactorHandler : {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_a947d3_1670231321658"}
2022-12-05 10:08:41.794 INFO 54702 --- [ctor-executor-1] implementation.handler.ConnectionHandler : {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_a947d3_1670231321658","errorCondition":null,"errorDescription":null,"hostName":"kamelets-servicebus-namespace.servicebus.windows.net"}
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : Property-placeholders summary
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] topicOrQueueName=kamelets_servicebus_queue
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] connectionString=xxxxxx
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] getBlob=true
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] accountName=kameletsaccount
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] containerName=kamelets
2022-12-05 10:08:41.813 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [blob-cdc-source.kamelet.yaml] accessKey=xxxxxx
2022-12-05 10:08:41.814 INFO 54702 --- [ main] org.apache.camel.main.BaseMainSupport : [log-sink.kamelet.yaml] showStreams=true
2022-12-05 10:08:41.832 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Routes startup (started:3)
2022-12-05 10:08:41.832 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Started route1 (kamelet://azure-storage-blob-cdc-source)
2022-12-05 10:08:41.832 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Started azure-storage-blob-cdc-source-1 (azure-servicebus://kamelets_servicebus_queue)
2022-12-05 10:08:41.832 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Started log-sink-2 (kamelet://source)
2022-12-05 10:08:41.832 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.0-SNAPSHOT (azure-storage-blob-cdc) started in 3s404ms (build:100ms init:2s780ms start:524ms JVM-uptime:5s)
2022-12-05 10:08:54.590 INFO 54702 --- [oundedElastic-1] storage-blob-cdc-source.kamelet.yaml:138 : Microsoft.Storage.BlobCreated - /blobServices/default/containers/kamelets/blobs/nominatim-geocode-action.kamelet.yaml - nominatim-geocode-action.kamelet.yaml
2022-12-05 10:08:55.370 INFO 54702 --- [oundedElastic-1] log-sink : Exchange[ExchangePattern: InOnly, BodyType: org.apache.camel.converter.stream.InputStreamCache, Body: # ---------------------------------------------------------------------------# 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/v1alpha1kind: Kameletmetadata: name: nominatim-geocode-action annotations: camel.apache.org/kamelet.support.level: "Stable" camel.apache.org/catalog.version: "main-SNAPSHOT" camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjU2IgogICBoZWlnaHQ9IjI1NiIKICAgaWQ9InN2ZzMwMzgiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjIgKDBhMDBjZjUzMzksIDIwMjItMDItMDQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJPcGVuU3RyZWV0TWFwIGxvZ28gMjAxMS5zdmciCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUvZnJlZC9ibGEucG5nIgogICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTgwIgogICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTgwIgogICBzb2RpcG9kaTp2ZXJzaW9uPSIwLjMyIgogICBpbmtzY2FwZTpvdXRwdXRfZXh0ZW5zaW9uPSJvcmcuaW5rc2NhcGUub3V0cHV0LnN2Zy5pbmtzY2FwZSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogIDx0aXRsZQogICAgIGlkPSJ0aXRsZTM1OTQiPk9wZW5TdHJlZXRNYXAgbG9nbyAyMDExPC90aXRsZT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzA0MCI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDY4NDYiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4NDgiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjAuOTMwNTAxOTQ7IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgaWQ9InN0b3A2ODUyIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDY4NTAiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1ODYyIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTI5NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1ODY0IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzYiCiAgICAgICAgIG9mZnNldD0iMC4xMjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmN2RkODQ7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU4NzQiCiAgICAgICAgIG9mZnNldD0iMC4yMDU4MDU4MiIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTg3MCIKICAgICAgICAgb2Zmc2V0PSIwLjMwMTEyNjIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjRjZTUxO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Y5ZTdhYTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC4zNDEyMDM5IgogICAgICAgICBpZD0ic3RvcDU4NzIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZmJiMGU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTg2NiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDU3NjIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmQzMzM1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDU3NjQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTc3MCIKICAgICAgICAgb2Zmc2V0PSIwLjUiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0YzQ2NGE7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzg0MDQyO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDU3NjYiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1NzQ1Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1NzQ3IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDU3NTMiCiAgICAgICAgIG9mZnNldD0iMC44MzkzMjc1MSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkMGU5ZjI7c3RvcC1vcGFjaXR5OjAuMjgxODUzMjk7IgogICAgICAgICBvZmZzZXQ9IjAuOTQzMDg1MDciCiAgICAgICAgIGlkPSJzdG9wNTc1NSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QwZTlmMjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1NzQ5IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY4MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY4MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0Njg0IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF96PSI2NCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzMiA6IDIxLjMzMzMzMyA6IDEiCiAgICAgICBpZD0icGVyc3BlY3RpdmUzMDQ2IiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzMDU2IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTM4NDQiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzg3MSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzODk3IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTM5MjYiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzk1MyIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmUzOTc5IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQwMDUiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN0aXZlNDAyOCIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIwLjUgOiAwLjMzMzMzMzMzIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3o9IjEgOiAwLjUgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDAuNSA6IDEiCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBpZD0icGVyc3BlY3RpdmU0MDU0IgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjAuNSA6IDAuMzMzMzMzMzMgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfej0iMSA6IDAuNSA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMC41IDogMSIKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTQwODMiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMC41IDogMC4zMzMzMzMzMyA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxIDogMC41IDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAwLjUgOiAxIgogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgaWQ9InBlcnNwZWN...]
2022-12-05 10:08:55.372 INFO 54702 --- [oundedElastic-1] mentation.ServiceBusReceiveLinkProcessor : {"az.sdk.message":"Adding credits.","prefetch":0,"requested":2,"linkCredits":0,"expectedTotalCredit":2,"queuedMessages":1,"creditsToAdd":1,"messageQueueSize":0}
2022-12-05 10:09:05.021 INFO 54702 --- [oundedElastic-1] storage-blob-cdc-source.kamelet.yaml:138 : Microsoft.Storage.BlobDeleted - /blobServices/default/containers/kamelets/blobs/nominatim-geocode-action.kamelet.yaml - nominatim-geocode-action.kamelet.yaml
2022-12-05 10:09:05.026 INFO 54702 --- [oundedElastic-1] log-sink : Exchange[ExchangePattern: InOnly, BodyType: com.fasterxml.jackson.databind.node.ObjectNode, Body: { "topic" : "/subscriptions/13d32827-569a-4093-bb0a-6d4bcebc757b/resourceGroups/kamelets-resources/providers/Microsoft.Storage/storageAccounts/kameletsaccount", "subject" : "/blobServices/default/containers/kamelets/blobs/nominatim-geocode-action.kamelet.yaml", "eventType" : "Microsoft.Storage.BlobDeleted", "id" : "33e99ac3-301e-006f-5589-086acf06f835", "data" : { "api" : "DeleteBlob", "requestId" : "33e99ac3-301e-006f-5589-086acf000000", "eTag" : "0x8DAD6A05B7E3A14", "contentType" : "application/x-yaml", "contentLength" : 117703, "blobType" : "BlockBlob", "url" : "https://kameletsaccount.blob.core.windows.net/kamelets/nominatim-geocode-action.kamelet.yaml", "sequencer" : "000000000000000000000000000096D200000000003cd61b", "storageDiagnostics" : { "batchId" : "5230b727-8006-0045-0089-08b5df000000" } }, "dataVersion" : "", "metadataVersion" : "1", "eventTime" : "2022-12-05T09:09:04.445698Z"}]
2022-12-05 10:09:05.027 INFO 54702 --- [oundedElastic-1] mentation.ServiceBusReceiveLinkProcessor : {"az.sdk.message":"Adding credits.","prefetch":0,"requested":2,"linkCredits":0,"expectedTotalCredit":2,"queuedMessages":1,"creditsToAdd":1,"messageQueueSize":0}
^C2022-12-05 10:09:08.094 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.0-SNAPSHOT (azure-storage-blob-cdc) is shutting down (timeout:10s)
2022-12-05 10:09:08.099 INFO 54702 --- [ - ShutdownTask] servicebus.ServiceBusReceiverAsyncClient : Removing receiver links.
2022-12-05 10:09:08.103 INFO 54702 --- [ - ShutdownTask] aging.servicebus.ServiceBusClientBuilder : {"az.sdk.message":"Closing a dependent client.","numberOfOpenClients":0}
2022-12-05 10:09:08.103 INFO 54702 --- [ - ShutdownTask] aging.servicebus.ServiceBusClientBuilder : No more open clients, closing shared connection.
2022-12-05 10:09:08.103 INFO 54702 --- [ - ShutdownTask] ementation.ServiceBusConnectionProcessor : {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"N/A"}
2022-12-05 10:09:08.103 INFO 54702 --- [ - ShutdownTask] re.amqp.implementation.ReactorConnection : {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_a947d3_1670231321658","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."}
2022-12-05 10:09:08.104 INFO 54702 --- [ - ShutdownTask] ementation.ServiceBusConnectionProcessor : {"az.sdk.message":"Channel is disposed.","entityPath":"N/A"}
2022-12-05 10:09:08.120 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Routes stopped (stopped:3)
2022-12-05 10:09:08.120 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Stopped log-sink-2 (kamelet://source)
2022-12-05 10:09:08.120 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Stopped azure-storage-blob-cdc-source-1 (azure-servicebus://kamelets_servicebus_queue)
2022-12-05 10:09:08.120 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Stopped route1 (kamelet://azure-storage-blob-cdc-source)
2022-12-05 10:09:08.126 INFO 54702 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.0-SNAPSHOT (azure-storage-blob-cdc) shutdown in 32ms (uptime:26s JVM-uptime:31s)
2022-12-05 10:09:08.126 INFO 54702 --- [ main] org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.0-SNAPSHOT shutdown
----
=== Cleanup Servicebus, Azure Storage Blob and Eventgrid through Terraform
You'll need to cleanup everything from AWS console or CLI.
If you used terraform it will be enough to run terraform destroy
[source,sh]
----
cd terraform/
----
At this point you should be to run the destroy
[source,sh]
----
terraform destroy
----
You'll need to specify the same var used for terraform apply.
At the end the Azure enviroment on your account will be clean.
=== Help and contributions
If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/community/support/[let us know].
We also love contributors, so
https://camel.apache.org/community/contributing/[get involved] :-)
The Camel riders!