| == Camel Example Kamelet SQL and AWS Secrets Manager Properties Function |
| |
| === Introduction |
| |
| This example shows how to use ready to use Kamelets that you can find at the |
| https://camel.apache.org/camel-kamelets/next/[Camel Kamelet Catalog]. |
| |
| The application is run with `KameletMain` class from camel-kamalet-main JAR. |
| This makes it easy to run Camel standalone with Kamelet that can be automatically |
| downloaded from github, and to use YAML DSL for creating Camel routes that use the Kamelets. |
| The example has no Java code at all. |
| |
| A Camel routes is _coded_ in the `my-route.yaml` file using the YAML DSL that uses the Kamelet, |
| and log the result from the Kamelet to the console. |
| |
| === Setting up your container |
| |
| First of all run the command to start PostgreSQL |
| |
| ```shell script |
| docker run --name psql -e POSTGRES_PASSWORD=secret -d postgres |
| ``` |
| |
| Now you need to setup Database and populate it: |
| |
| And run the following scripts |
| |
| ```shell script |
| docker exec -i psql psql -U postgres < script/table.sql |
| docker exec -i psql psql -U postgres < script/populate.sql |
| ``` |
| |
| Now the database has been populated |
| |
| ```shell script |
| docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' psql |
| 172.17.0.2 |
| ``` |
| |
| Take note of the container IP. |
| |
| === Save the secret on AWS Secrets Manager |
| |
| Login into your AWS account console. |
| |
| Jump to AWS Secrets Manager. |
| |
| Create a new secret for a different database and select Postgresql. |
| |
| Now you can create a secret, by populating the form, or by providing a json in plain text in the text field. |
| |
| ```shell script |
| { |
| "username": "postgres", |
| "password": "secret", |
| "engine": "postgres", |
| "host": "172.17.0.2", |
| "port": "5432", |
| "dbname": "postgres" |
| } |
| ``` |
| |
| Save the secret by naming it postgresql. |
| |
| === Set up credentials for AWS Secrets Manager |
| |
| In src/main/resources/application.properties, populate the camel.vault.aws.* properties correctly. |
| |
| Now you are ready to run this example. |
| |
| === Build |
| |
| You will need to compile this example first: |
| |
| [source,sh] |
| ---- |
| $ mvn compile |
| ---- |
| |
| === Run |
| |
| You can run this example using |
| |
| [source,sh] |
| ---- |
| $ mvn camel:run |
| ---- |
| |
| The application is also built as a _fat jar_ (see `pom.xml`), which you can run with |
| |
| [source,sh] |
| ---- |
| $ mvn package -DskipTests |
| $ java -jar target/camel-example-kamelet-sql-jar-with-dependencies.jar |
| ---- |
| |
| === Output |
| |
| You should see multiple lines coming from the Database at the first run |
| |
| [source,sh] |
| ---- |
| 18:27:31.439 [Camel (postgresql-source-kamelet) thread #1 - sql://SELECT%20*%20FROM%20accounts] INFO info - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: {"user_id":29996,"username":"John","city":"New York"}] |
| 18:27:31.440 [Camel (postgresql-source-kamelet) thread #1 - sql://SELECT%20*%20FROM%20accounts] INFO info - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: {"user_id":29997,"username":"John","city":"New York"}] |
| 18:27:31.441 [Camel (postgresql-source-kamelet) thread #1 - sql://SELECT%20*%20FROM%20accounts] INFO info - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: {"user_id":29998,"username":"John","city":"New York"}] |
| 18:27:31.442 [Camel (postgresql-source-kamelet) thread #1 - sql://SELECT%20*%20FROM%20accounts] INFO info - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: {"user_id":29999,"username":"John","city":"New York"}] |
| 18:27:31.443 [Camel (postgresql-source-kamelet) thread #1 - sql://SELECT%20*%20FROM%20accounts] INFO info - Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: {"user_id":30000,"username":"John","city":"New York"}] |
| ---- |
| |
| |
| === 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! |