मैं डायनेमोडीबी धाराओं का उपयोग करके डायनेमोडीबी तालिका परिवर्तनों को कैप्चर करने का प्रयास कर रहा हूं और एडब्ल्यूएस प्रदान किया गया है जो जावा डायनेमोडीबी धाराओं Kinesis एडाप्टर प्रदान करता है। मैं एक स्कैला ऐप में एडब्ल्यूएस जावा एसडीके के साथ काम कर रहा हूं।एडब्लूएस जावा डायनेमो डीबी धाराओं का उपयोग कर प्रोटीन डाइनेमो डीबी धाराएं Kinesis एडाप्टर
मैंने AWS guide का पालन करके और code example प्रकाशित एडब्लूएस के माध्यम से जाकर शुरू किया। हालांकि मुझे अपने पर्यावरण में काम कर रहे अमेज़ॅन का अपना प्रकाशित कोड प्राप्त करने में समस्याएं आ रही हैं। मेरा मुद्दा KinesisClientLibConfiguration
ऑब्जेक्ट के साथ है।
उदाहरण कोड में, KinesisClientLibConfiguration
डायनेमो डीबी द्वारा प्रदान की गई धारा एआरएन के साथ कॉन्फ़िगर किया गया है।
lazy val streamArn = dynamoClient.describeTable(config.tableName)
.getTable.getLatestStreamArn
और फिर प्रदान की ARN साथ KinesisClientLibConfiguration
बनाने:
new KinesisClientLibConfiguration("streams-adapter-demo",
streamArn,
streamsCredentials,
"streams-demo-worker")
मैं पहली बार मेरी डायनमो मेज से वर्तमान ARN लगाने के आधार पर अपने स्काला अनुप्रयोग में एक समान तरीके का अनुसरण किया
lazy val kinesisConfig :KinesisClientLibConfiguration =
new KinesisClientLibConfiguration(
"testProcess",
streamArn,
defaultProviderChain,
"testWorker"
).withMaxRecords(1000)
.withRegionName("eu-west-1")
.withMetricsLevel(MetricsLevel.NONE)
.withIdleTimeBetweenReadsInMillis(500)
.withInitialPositionInStream(InitialPositionInStream.TRIM_HORIZON)
मैंने प्रदत्त स्ट्रीम एआरएन सत्यापित किया है और सब कुछ जो मैं एडब्ल्यूएस कंसोल में देखता हूं उससे मेल खाता है।
क्रम मैं अंत में एक अपवाद बताते हुए कि प्रदान की ARN मान्य स्ट्रीम नाम नहीं है हो रही है पर:
com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShardSyncTask call
SEVERE: Caught exception while sync'ing Kinesis shards and leases
com.amazonaws.services.kinesis.model.AmazonKinesisException: 1 validation
error detected: Value 'arn:aws:dynamodb:eu-west-1:STREAM ARN' at
'streamName' failed to satisfy constraint: Member must satisfy regular
expression pattern: [a-zA-Z0-9_.-]+ (Service: AmazonKinesis; Status Code:
400; Error Code: ValidationException; Request ID:)
KinesisClientLibConfiguration
इस पर उपलब्ध कराई गई मतलब है प्रलेखन को देखते हुए के रूप में दूसरा पैरामीटर रूप में सूचीबद्ध है एआरएन के किसी भी उल्लेख के बिना स्ट्रीमनाम।
मुझे एआरएन से संबंधित KinesisClientLibConfiguration
पर कुछ भी नहीं मिल रहा है। चूंकि मैं डायनेमोडीबी स्ट्रीम के साथ काम कर रहा हूं और एक किनेस स्ट्रीम नहीं हूं, इसलिए मुझे यह भी पता नहीं है कि मेरा स्ट्रीम नाम कैसे ढूंढें।
इस बिंदु पर मुझे यकीन है कि प्रकाशित एडब्ल्यूएस उदाहरण से मुझे क्या याद आ रही है, ऐसा लगता है कि वे केसीएल के पुराने संस्करण का उपयोग कर रहे हैं। मैं अमेज़ॅन-किनेसिस-क्लाइंट के संस्करण 1.7.0 का उपयोग कर रहा हूं।
आपको एक उदाहरण और एक संक्षिप्त स्पष्टीकरण जोड़कर अपना जवाब सुधारना चाहिए। शायद [यह] पढ़ना (https://stackoverflow.com/help/how-to-answer) आपको अपना उत्तर सुधारने में मदद करता है। – Markus