0
votes

I'm developing a custom starter app using the code here, because I wanted to add TcpSSLContextSupport to it. I've managed to do that, and it worked fine on my local SCDF server, but now I want to deploy it on SCDF for Kubernetes over Google Cloud. I've created an image for it and it does work, but the behavior is a little unexpected.

I created a stream like: stream create stream-name --definition "app-name | log".

First off, it created a topic as per convention stream-name.app-name, and I was expecting it to show me the messages there, but it actually writes into the "output" topic, which is strange. I haven't provided any additional configuration. I tried it with SCDF latest version as well as 1.2.0.RELEASE with the same results.

1

1 Answers

0
votes

Since the topic stream-name.app-name is created, the SCDF correctly sets the outbound destination name for your source app. Note that SCDF sets only the property spring.cloud.stream.bindings.output.destination for the apps. Here, the outbound channel is assumed to be output.

I guess you have a different binding target name for the outbound message channel in your custom application. Since SCDF doesn't set the destination for this app, the app defaults to output as the destination.

Check your outbound target name in your custom app. You need to set the property spring.cloud.stream.bindings.<customOutboundTargetName>.destination as a deployment property for the app.

For instance,

dataflow:>stream deploy stream-name --properties "app.source-app-name.spring.cloud.stream.bindings.customOutboundTargetName.destination=yourTopic,app.sink-app-name.spring.cloud.stream.bindings.customInboudTargetName.destination=yourTopic"

Note: customOutboundTargetName and customInboundTargetName are set as output and input by default via SCDF.