मैं एडब्ल्यूएस आईओटी कोर में एक विषय पर प्रकाशित करने के लिए aws-amplify
PubSub.publish
तक पहुंचने का प्रयास कर रहा हूं। मैं संस्करण "aws-amplify": "2.1.0"
का उपयोग कर रहा हूं।
handleSubmit = async () => {
await PubSub.publish('topic', { msg: 'Hello to all subscribers!' });
};
मेरी aws-exports.js
फ़ाइल निम्नानुसार कॉन्फ़िगर की गई है।
const awsmobile = {
"aws_project_region": "us-east-2",
"aws_cognito_region": "us-east-2",
"aws_user_pools_id": "poolid",
"aws_user_pools_web_client_id": "webclientid",
"aws_cognito_identity_pool_id": "identitypoolid",
"oauth": {}
};
export default awsmobile;
बटन पर क्लिक करने से handleSubmit
फंक्शन कॉल होता है और PubSub.publish
निम्न त्रुटि देता है।
Uncaught (in promise) TypeError: Cannot read property 'byteLength' of undefined
at Object.isEmptyData (browserHashUtils.js:30)
at Hmac.push../node_modules/aws-sdk/lib/browserHmac.js.Hmac.update (browserHmac.js:34)
at encrypt (Signer.js:50)
at get_signing_key (Signer.js:222)
at Function.Signer.signUrl (Signer.js:374)
at AWSIoTProvider.<anonymous> (AWSIotProvider.js:233)
at step (AWSIotProvider.js:152)
at Object.next (AWSIotProvider.js:83)
at fulfilled (AWSIotProvider.js:37)
1 उत्तर
Amplify PubSub Provider के ठीक से कॉन्फ़िगर नहीं होने के कारण ऐसा हुआ।
मेरा गलत कॉन्फ़िगरेशन:
Amplify.addPluggable(new AWSIoTProvider({
aws_pubsub_region: process.env.region,
aws_pubsub_endpoint: `wss://${process.env.REACT_APP_MQTT_ID}.iot.${process.env.REACT_APP_REGION}.amazonaws.com/mqtt`,
}));
यहाँ मैंने process.env.region
env वेरिएबल सेट नहीं किया है। यह त्रुटि का कारण बना। इसे उचित env वेरिएबल (process.env.REACT_APP_REGION
) में बदलने से समस्या ठीक हो गई।
कार्यशील कॉन्फ़िगरेशन:
Amplify.addPluggable(new AWSIoTProvider({
aws_pubsub_region: process.env.REACT_APP_REGION,
aws_pubsub_endpoint: `wss://${process.env.REACT_APP_MQTT_ID}.iot.${process.env.REACT_APP_REGION}.amazonaws.com/mqtt`,
}));
संबंधित सवाल
नए सवाल
amazon-web-services
Amazon Web Services (AWS) एक सार्वजनिक-क्लाउड है: IaaS (एक सेवा के रूप में अवसंरचना) और अमेज़न द्वारा उपलब्ध कराए गए SaaS (एक सेवा के रूप में सॉफ़्टवेयर)। प्रोग्रामिंग और आर्किटेक्चर के बारे में प्रश्न विषय पर हैं। Https://serverfault.com पर सामान्य सर्वर सहायता प्राप्त की जा सकती है। AWS टैग का उपयोग शायद ही कभी किया जाता है और आमतौर पर अन्य टैग के साथ प्रश्न के विषय को अधिक स्पष्ट रूप से परिभाषित करने के लिए उपयोग किया जाएगा।