正在尝试配置Spring-Cloud-Stream以从Azure事件中心使用。使用下面的yml将身份验证从SAS密钥切换到服务原则
spring:
cloud:
stream:
azure:
client-id: XXXX
client-secret: XXXXX
bindings:
input:
binder: helixInput
destination: destination
group: ${CONSUMER_GROUP:}
binders:
rabbitOutput:
type: rabbit
environment:
spring:
helixInput:
type: kafka
environment:
spring:
cloud:
stream:
kafka:
binder:
brokers: <Azure hostID >:9093
configuration:
sasl:
jaas:
config: org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://<<hostID>>;client-id=<<client-id>>;client-secret="<<secretID>>";EntityPath=destination";
mechanism: ${KAFKA_INPUT_SASL_MECHANISM:PLAIN}
security:
protocol: ${KAFKA_INPUT_SECURITY_PROTOCOL:SASL_SSL}
但是错误就像
原因:java。lang.IllegalArgumentException:未为组织的JAAS配置中的键“service\u principle\u azure”指定值。阿帕奇。Kafka。常见的安全JaasConfig。org上的parseAppConfigurationEntry(JaasConfig.java:116)~[kafka-clients-2.3.1.jar:na]。阿帕奇。Kafka。常见的安全JaasConfig。(JaasConfig.java:63)~[kafka-clients-2.3.1.jar:na]位于org。阿帕奇。Kafka。常见的安全JaasContext。在org上加载(JaasContext.java:90)~[kafka-clients-2.3.1.jar:na]。阿帕奇。Kafka。常见的安全JaasContext。loadClientContext(JaasContext.java:84)~[kafka-clients-2.3.1.jar:na]位于org。阿帕奇。Kafka。常见的网络渠道建设者。在org上创建(ChannelBuilders.java:124)~[kafka-clients-2.3.1.jar:na]。阿帕奇。Kafka。常见的网络渠道建设者。clientChannelBuilder(ChannelBuilders.java:67)~[kafka-clients-2.3.1.jar:na]位于org。阿帕奇。Kafka。客户。客户端。createChannelBuilder(ClientUtils.java:99)~[kafka-clients-2.3.1.jar:na]位于org。阿帕奇。Kafka。客户。管理KafkaAdminClient。createInternal(KafkaAdminClient.java:382)~[kafka-clients-2.3.1.jar:na]
示例可在github位置使用一个eventhub命名空间:https://github.com/MicrosoftDocs/azure-dev-docs/blob/master/articles/java/spring-framework/configure-spring-cloud-stream-binder-java-app-kafka-azure-event-hub.md