我在Ubuntu 16.04桌面上安装了openwhisk本地安装。操作,触发器,规则和警报触发器正在工作。
我克隆了git存储库https://github.com/apache/incubator-openwhisk-package-kafka并按顺序运行以下命令: installCatalog.sh,gradlew:distDocker,installKafka.sh
然后我尝试创建一个触发器:
bin/wsk trigger create MyKafkaTrigger -f /messaging/kafkaFeed -p brokers "
[\"localhost:9092\", \"localhost:9093\"]" -p topic test -p isJSONData true -
-insecure
我正在关注自述文件的这一部分:“创建一个侦听通用Kafka实例的触发器”
我正在重新使用作为Openwhisk安装的一部分创建的Kafka实例,并创建了一个名为“test”的主题 - 我可以使用kafka命令行工具发布/使用该主题。
触发器创建失败(它删除触发器,说资源不存在)。
我观察到的一件事是在/ guest下创建了以下包:
bin/wsk package list /guest --insecurepackages
/guest/messagingWeb
private
/guest/messaging
我确实将Feed名称更改为/ guest / messaging / kafkFeed,只更改了kafkaFeed等,但结果略有不同:
bin/wsk trigger create MyKafkaTrigger -f /guest/messaging/kafkaFeed -p
brokers "[\"localhost:9092\", \"localhost:9093\"]" -p topic test -p
isJSONData true --insecure
提供一个JSON输出,说“错误”:“请求的资源不存在。”
bin/wsk trigger create MyKafkaTrigger -f /messaging/kafkaFeed -p brokers "
[\"localhost:9092\", \"localhost:9093\"]" -p topic test -p isJSONData true -
-insecure
GIVES
ok: deleted trigger MyKafkaTrigger
error: Unable to create trigger 'MyKafkaTrigger': Unable to invoke trigger
'MyKafkaTrigger' feed action '/messaging/kafkaFeed'; feed is not configured:
Unable to invoke action 'kafkaFeed': The supplied authentication is not
authorized to access this resource. (code 186)
寻求任何帮助
答案 0 :(得分:0)
我按照开发指南启动并运行:https://github.com/apache/incubator-openwhisk-package-kafka/blob/master/devGuide.md
以下是我成功创建Feed触发器的步骤:
通过运行
记下身份验证密钥bin/wsk -i property get --auth
运行安装脚本
./installKafka.sh <authKey> <edgehost> <dburl> <dbprefix> <apihost>
请注意,authKey
的值是从步骤1获得的值。有关其他参数的值,请参阅https://github.com/apache/incubator-openwhisk-package-kafka/blob/master/devGuide.md#install-actions
安装脚本成功完成后,请验证是否安装了正确的软件包。您应该看到messaging
和messagingWeb
个包。 e.g
bin/wsk -i package list /guest
packages
/guest/messagingWeb private
/guest/messaging shared
现在验证kafkaFeed
操作是否存在
bin/wsk -i package get --summary /guest/messaging
package /guest/messaging: Returns a result based on parameter endpoint
(parameters: *endpoint)
action /guest/messaging/kafkaProduce: Produce a message to a Kafka cluster
(parameters: base64DecodeKey, base64DecodeValue, brokers, key, topic, value)
feed /guest/messaging/kafkaFeed: Feed to listen to Kafka messages
(parameters: brokers, endpoint, isBinaryKey, isBinaryValue, isJSONData, topic)
现在,您可以通过将命名空间作为完整包名称的一部分传入,或者从包名称中删除前导/
来创建触发器
bin/wsk -i trigger create MyKafkaTrigger -f /guest/messaging/kafkaFeed -p brokers "[\"localhost:9092\", \"localhost:9093\"]" -p topic test -p isJSONData true
OR
bin/wsk -i trigger create MyKafkaTrigger -f messaging/kafkaFeed -p brokers "[\"localhost:9092\", \"localhost:9093\"]" -p topic test -p isJSONData true