You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/kn/2-farm/lessons/5-migrate-application-to-th...
localizeflow[bot] 8671d5c4aa
chore(i18n): sync translations with latest source changes (#571)
6 months ago
..
README.md chore(i18n): sync translations with latest source changes (#571) 6 months ago
assignment.md chore(i18n): sync translations with latest source changes (#571) 6 months ago

README.md

ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಲಾಜಿಕ್ ಅನ್ನು ಕ್ಲೌಡ್ ಗೆ ಸ್ಥಳಾಂತರಿಸಿ

ಈ ಪಾಠದ ಸ್ಕೆಚ್ನೋಟ್ ಅವಲೋಕನ

ಸ್ಕೆಚ್ನೋಟ್ ನಿತ್ಯ ನರಸಿಂಹನ್ ಅವರಿಂದ. ದೊಡ್ಡ ಆವೃತ್ತಿಗಾಗಿ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.

ಈ ಪಾಠವನ್ನು IoT ಆರಂಭಿಕರಿಗಾಗಿ ಪ್ರಾಜೆಕ್ಟ್ 2 - ಡಿಜಿಟಲ್ ಕೃಷಿ ಸರಣಿ ನ ಭಾಗವಾಗಿ Microsoft Reactor ನಿಂದ ಬೋಧಿಸಲಾಗಿದೆ.

ನೀವ್ ಐಒಟಿ ಸಾಧನವನ್ನು ಸರ್ವರ್‍ಲೆಸ್ ಕೋಡ್ ಮೂಲಕ ನಿಯಂತ್ರಿಸಿ

ಪೂರ್ವ-ಉಪನ್ಯಾಸ ಕುಯಿಜ್

ಪೂರ್ವ-ಉಪನ್ಯಾಸ ಕುಯಿಜ್

ಪರಿಚಯ

ಕೊನೆಯ ಪಾಠದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಗಿಡದ ಮಣ್ಣಿನ ತೇವಾಂಶ ನಿಗಾ ಮತ್ತು ರಿಲೇ ನಿಯಂತ್ರಣವನ್ನು ಕ್ಲೌಡ್ ಆಧಾರಿತ ಐಒಟಿ ಸೇವೆಯ ಜೊತೆಗೆ ಸಂಪರ್ಕಿಸುವುದನ್ನು ಕಲಿತಿರಿ. ಮುಂದಿನ ಹಂತವೆಂದರೆ ರಿಲೇ ಸಮಯ ನಿರ್ವಹಿಸುವ ಸರ್ವರ್ ಕೋಡ್ ಅನ್ನು ಕ್ಲೌಡ್ ಗೆ ಸ್ಥಳಾಂತರಿಸುವುದು. ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಸರ್ವರ್‍ಲೆಸ್ ಫಂಕ್ಷನ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ಕಲಿಯಬಹುದು.

ಈ ಪಾಠದಲ್ಲಿ ನಾವು ನೋಡೋಣ:

ಸರ್ವರ್‍ಲೆಸ್ ಎಂದರೆ ಏನು?

ಸರ್ವರ್‍ಲೆಸ್ ಅಥವಾ ಸರ್ವರ್‍ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಅಂದರೆ ಬಣ್ಣೋವ ಬಿಗ್ಗಮನ ಮಾಡಲು ಬಣ್ಣೋವ ಸಂದಡ್ಡಿಗಳ ಫಲವಾಗಿ ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಚಲಿಸುವ ಸಣ್ಣ ಮಾದರಿಯ ಕೋಡ್ ಬ್ಲಾಕ್ಗಳನ್ನು ರಚಿಸುವುದು. ಸಂಧ್ಯಾ ಸಂಭವಿಸಿದಾಗ ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಅವರಿಗೆ ಈ ಘಟನೆ ಬಗ್ಗೆ ಡೇಟಾ ನೀಡಲಾಗುತ್ತದೆ. ಈ ಸಂಭವಗಳು ವೆಬ್ ವಿನಂತಿಗಳು, ಕ್ಯೂ ಮೇಲೆ ಪ್ರಕಟಿತ ಸಂದೇಶಗಳು, ಡೇಟಾಬೇಸ್ ನಲ್ಲಿ ಡೇಟಾ ಬದಲಾವಣೆಗಳು, ಅಥವಾ ಐಒಟಿ ಸಾಧನಗಳಿಂದ ಐಒಟಿ ಸೇವೆಗಳಿಗೆ ಕಳುಹಿಸಿದ ಸಂದೇಶಗಳು ಮುಂತಾದ ಹಲವಾರು ವಿಧಗಳಾಗಿರಬಹುದು.

ಐಒಟಿ ಸೇವೆಯಿಂದ ಸರ್ವರ್‍ಲೆಸ್ ಸೇವೆಗೆ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವುದು, ಅದನ್ನು ವಿವಿಧ ಫಂಕ್ಷನ್ಗಳು ಸಮಕಾಲೀನವಾಗಿ ನಿರ್ವಹಿಸುತ್ತಿವೆ

💁 ನೀವು ಮೊದಲು ಡೇಟಾಬೇಸ್ ಟ್ರಿಗರ್ಸ್ ಬಳಸಿ থাকಿಲೇ, ಇದನ್ನು ಅದೇ ರೀತಿಯಾಗಿ ಪರಿಗಣಿಸಬಹುದು, ಘಟನೆಯಿಂದ ಪ್ರೇರಿತವಾಗುವ ಕೋಡ್, ಉದಾಹರಣೆಗೆ ಸಾಲನ್ನು ಸೇರಿಸುವಾಗ.

ಹಲವಾರು ಸಂದೇಶಗಳನ್ನು ಸಮಕಾಲೀನವಾಗಿ ಕಳುಹಿಸಿದಾಗ, ಸರ್ವರ್‍ಲೆಸ್ ಸೇವೆ ಅಂಗಡಿಗಳನ್ನು ಹರಡುತ್ತದೆ

ನಿಮ್ಮ ಕೋಡ್ ಆ ಘಟನೆಯಾಗುವಾಗ ಮಾತ್ರ ಚಲಿಸುತ್ತದೆ, ಇತರೆ ಸಮಯದಲ್ಲಿ ನೀವು ಯಾವುದೇ ನಿಮ್ಮ ಕೋಡ್ ಜೀವಂತವಾಗಿರಿಸುವುದಿಲ್ಲ. ಘಟನೆಯಾಗುವಾಗ, ನಿಮ್ಮ ಕೋಡ್ ಲೋಡ್ ಆಗಿ ಚಲಿಸುತ್ತದೆ. ಇದರಿಂದ ಸರ್ವರ್‍ಲೆಸ್ ಬಹಳವೇ ಪರಿಮಾಣ ದಕ್ಷವಾಗಿರುತ್ತದೆ - ಅನೇಕ ಘಟನೆಗಳು ಸಮಕಾಲೀನವಾಗಿ ಸಂಭವಿಸಿದರೆ, ಕ್ಲೌಡ್ ಒದಗಿಸುವವರು ನಿಮ್ಮ ಕಾರ್ಯವನ್ನು ಒಪ್ಪಿಗೆಯಾದಷ್ಟು ಸರ್ವರ್‍ಗಳಲ್ಲಿ ಸಮಕಾಲೀನವಾಗಿ ನಡೆಸಬಹುದು. ಇದರ ದೋಷವೆಂದರೆ ಘಟನೆಗಳ ನಡುವೆ ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬೇಕಾದರೆ, ಅದನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುವ ಬದಲು ಡೇಟಾಬೇಸ್ ನಲ್ಲಿ ಉಳಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ.

ನಿಮ್ಮ ಕೋಡ್ ಘಟನೆಯ ವಿವರಗಳನ್ನು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿಟ್ಟುಕೊಂಡು ಕಾರ್ಯವಾಗಿರುವ ಫಂಕ್ಷನ್ ಆಗಿ ಬರೆದಿರುತ್ತದೆ. ನೀವು ಬಹು ವಿಧದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಸರ್ವರ್‍ಲೆಸ್ ಫಂಕ್ಷನ್ಗಳನ್ನು ಬರೆಯಬಹುದು.

🎓 ಸರ್ವರ್‍ಲೆಸ್ ಅನ್ನು_Functions as a service (FaaS)_ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ ಕಾರಣ ಪ್ರತಿ ಘಟನೆ ಪ್ರೇರಣೆಯನ್ನು ಕೋಡ್ ನಲ್ಲಿ ಫಂಕ್ಷನ್ ಆಗಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಹೆಸರಿನ ವಿರುದ್ಧವಾಗಿ, ಸರ್ವರ್‍ಲೆಸ್ ನಿಜವಾಗಿಯೂ ಸರ್ವರ್ ಗಳನ್ನು ಉಪಯೋಗಿಸುತ್ತದೆ. ಹೆಸರಿನ ಅರ್ಥವೆಂದರೆ ನೀವು ಡೆವಲಪರ್ ಆಗಿ ನಿಮ್ಮ ಕೋಡ್ ಚಾಲನೆ ಮಾಡಲು ಅಗತ್ಯವಿರುವ ಸರ್ವರ್ ಗಳ ಬಗ್ಗೆ ಚಿಂತಿಸುವ ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಗಮನಿಸುವುದು ನಿಮ್ಮ ಕೋಡ್ ಘಟನೆಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದು ಮಾತ್ರವಾಗಿದೆ. ಕ್ಲೌಡ್ ಒದಗಿಸುವವರು ಸರ್ವರ್‍ಲೆಸ್ ರನ್ ಟೈಮ್ ಹೊಂದಿರುತ್ತಾನೆ ಅದು ಸರ್ವರ್ ಗಳ ನಿಯೋಜನೆ, ನೆಟ್ವರ್ಕಿಂಗ್, ಸಂಗ್ರಹಣೆ, ಸಿಪಿಯು, ಮೆಮೊರಿ ಮತ್ತು ಇತರ ಎಲ್ಲ ಮೌಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ಮಾದರಿಯಲ್ಲಿ ನೀವು ಸರ್ವರ್ ಪ್ರತಿ ಪಾವತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಇಲ್ಲ ಸರ್ವರ್ ಇಲ್ಲ. ಬದಲಾಗಿ, ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಚಲಿಸುವ ಸಮಯ ಮತ್ತು ಬಳಸಿದ ಮೆಮೊರಿ ಪ್ರಮಾಣಕ್ಕೆ ಪಾವತಿಸುತ್ತೀರಿ.

💰 ಸರ್ವರ್‍ಲೆಸ್ ಕ್ಲೌಡ್ ನಲ್ಲಿ ಕೋಡ್ ಚಾಲಿಸಲು ಒಂದು ಅತಿಥೀಮೂಲ್ಯದ ವಿಧಾನ. ಉದಾಹರಣೆಗೆ, ಬರೆಯುವ ಸಮಯದಲ್ಲಿ, ಒಂದು ಕ್ಲೌಡ್ ಒದಗಿಸುವವರು ಎಲ್ಲಾ ನಿಮ್ಮ ಸರ್ವರ್‍ಲೆಸ್ ಫಂಕ್ಷನ್ಗಳನ್ನು ಒಟ್ಟು 1,000,000 ಬಾರಿ ತಿಂಗಳಿಗೆ ಚಾಲನೆ ಮಾಡಲು ಅನುಮತಿಸುತ್ತಾರೆ ನಂತರ ಅದಕ್ಕೆ $0.20 ದರ ಸುತ್ತ 1,000,000 ಚಾಲನೆಗಳಿಗಾಗಿರುತ್ತದೆ. ನಿಮ್ಮ ಕೋಡ್ ಕಾರ್ಯನಿರ್ವಹಿಸದಾಗ, ನೀವು ಪಾವತಿಸುವುದಿಲ್ಲ.

ನೀವು ಐಒಟಿ ಡೆವಲಪರ್ ಆಗಿದ್ದಲ್ಲಿ, ಸರ್ವರ್‍ಲೆಸ್ ಮಾದರಿ ಅತ್ಯುತ್ತಮವಾಗಿದೆ. ನೀವು ಚರ್ಚೆಯ ಅಂಶವನ್ನು ಓದುತ್ತಿರಿ, ನಿಮಗೆ ಅನೇಕ ಐಒಟಿ ಸಾಧನಗಳಿಂದ ಕಳುಹಿಸಿದ ಸಂದೇಶಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಫಂಕ್ಷನ್ ಬರೆಯಬಹುದು. ನಿಮ್ಮ ಕೋಡ್ అన్ని ಸಂದೇಶಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತದೆ ಆದರೆ ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ನೀವು ಚಿತ್ರಿಸಿದ ಕೋಡ್ ಅನ್ನು ನೆನಪಿಡಿ, ಅದು MQTT ಮೂಲಕ ಸಂದೇಶಗಳನ್ನು ಕೇಳುವ ಸರ್ವರ್ ಕೋಡ್ ಆಗಿತ್ತು. ಇದೇ ಸರ್ವರ್‍ಲೆಸ್ ಮೂಲಕ ಕ್ಲೌಡ್ ನಲ್ಲಿ ಹೇಗೆ ಚಲಿಸಬಹುದು? ಕೋಡ್ ಹೇಗೆ ಬದಲಾಯಿಸಬಹುದು ಎಂದು ನೀವು ಎಷ್ಟು ಭಾವಿಸುತ್ತೀರಿ?

💁 ಸರ್ವರ್‍ಲೆಸ್ ಮಾದರಿ ಇನ್ನು ಹಲವು ಕ್ಲೌಡ್ ಸೇವೆಗಳಲ್ಲಿ ಸಕ್ರಿಯವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಸರ್ವರ್‍ಲೆಸ್ ಡೇಟಾಬೇಸ್ ಗಳು ಈಗ ಕ್ಲೌಡ್ ನಲ್ಲಿ ಲಭ್ಯವಿವೆ ಮತ್ತು ಅದರಲ್ಲಿ ನೀವು ಡೇಟಾಬೇಸ್ ವಿರುದ್ಧ ಮಾಡಿದ ಪ್ರತಿಯೊಂದು ವಿನಂತಿಗೆ ಪಾವತಿಸುತ್ತೀರಿ, ಉದಾಹರಣೆಗೆ ಕ್ವೇರಿ ಅಥವಾ ಸೇರಿಸುವಿಕೆ. ಸಾಮಾನ್ಯವಾಗಿ ಇದಕ್ಕೆ ಈ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಆಗುವ ಕೆಲಸದ ಪ್ರಮಾಣದ ಆಧಾರದ ಮೇಲೆ ದರ ನಿಗದಿಯಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ ಪ್ರಾಥಮಿಕ ಕೀಲಿಗೊಂದು ಸಾಲು ಆಯ್ಕೆ ಮಾಡುವುದು, ಹಲವಾರು ಪಟ್ಟಿಕೆಗಳು ಸೇರಿಸಿ ಸಾವಿರಾರು ಸಾಲುಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವುದಕ್ಕಿಂತ ಕಡಿಮೆ ವೆಚ್ಚವಾಗುತ್ತದೆ.

ಸರ್ವರ್‍ಲೆಸ್ ಅಪ್ಲಿಕೇಶನ್ ರಚನೆ

Microsoft ನ ಸರ್ವರ್‍ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಸೇವೆ叫ಬಳಿಕ Azure Functions ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

Azure Functions ಲೋಗೋ

ಕೆಳಗಿನ ಚಿಕ್ಕ ವೀಡಿಯೋದಲ್ಲಿ Azure Functions ನ ಅವಲೋಕನ ದೊರೆಯುತ್ತದೆ

Azure Functions ಅವಲೋಕನ ವೀಡಿಯೋ

🎥 ವೀಡಿಯೋ ನೋಡಲು ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ

ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಂಡು Microsoft Azure Functions ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನಲ್ಲಿ Azure Functions ನ ಅವಲೋಕನ ಓದಿ ಅಧ್ಯಯನ ಮಾಡಿರಿ.

Azure Functions ಬರೆಯಲು, ನಿಮ್ಮ ಆಯ್ಕೆಯ ಭಾಷೆಯಲ್ಲಿ Azure Functions ಆ್ಯಪ್ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿರಿ. Azure Functions ಬಾಕ್ಸಿನಿಂದ Python, JavaScript, TypeScript, C#, F#, Java ಮತ್ತು Powershell ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಈ ಪಾಠದಲ್ಲಿ ನೀವು Python ನಲ್ಲಿ Azure Functions ಆ್ಯಪ್ ಬರೆಯುವುದನ್ನು ಕಲಿಯುತ್ತೀರಿ.

💁 Azure Functions ಕಸ್ಟಮ್ ಹ್ಯಾಂಡ್ಲರ್ ಗಳನ್ನು ಸಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು HTTP ವಿನಂತಿಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಯಾವುದೇ ಭಾಷೆಯಲ್ಲಿ ನಿಮ್ಮ ಫಂಕ್ಷನ್ಗಳನ್ನು ಬರೆಯಬಹುದು, ಹಳೆಯ ಭಾಷೆಗಳು ಹಾಗೆ COBOL ಸಹ.

ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ನಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚು ಟ್ರಿಗರ್ ಗಳಿರುತ್ತವೆ - ಘಟಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಫಂಕ್ಷನ್ಗಳು. ನೀವು ಒಂದೇ ಆ್ಯಪ್ ನಲ್ಲಿ ಒಷ್ಟು ಟ್ರಿಗರ್ ಗಳನ್ನೂ ಇರಿಸಬಹುದಾಗಿದೆ, ಮತ್ತು ಅದರಲ್ಲಿನ ಎಲ್ಲವೂ ಸಾಮಾನ್ಯ ಸಂರಚನೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಉದಾಹರಣೆಗೆ ನಿಮಗಿರುವ Functions ಆ್ಯಪ್ ಸಂರಚನಾ ಫೈಲ್ ನಲ್ಲಿ ನಿಮ್ಮ ಐಒಟಿ ಹಬ್ ಕನೆಕ್ಷನ್ ವಿವರಗಳಿರಬಹುದು, ಮತ್ತು ಆ ಆ್ಯಪ್ನಲ್ಲಿನ ಎಲ್ಲ ಫಂಕ್ಷನ್ಗಳು ಈ ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿ ಘಟನಗಳಿಗೆ ಕೇಳಬಹುದಾಗಿರುತ್ತವೆ.

ಕಾರ್ಯ - Azure Functions ಉಪಕರಣಗಳ ಸ್ಥಾಪನೆ

ಬರೆಯುತ್ತಿರುವ ಕ್ಷಣದಲ್ಲಿ, Azure Functions ಕೋಡ್ ಉಪಕರಣಗಳು Apple Silicon ನಲ್ಲಿ Python ಪ್ರಾಜೆಕ್ಟ್ ಗಳಿಗೆ ಸಂಪೂರ್ಣ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ನೀವು Intel ಆಧಾರಿತ ಮಾಕ್, ವಿಂಡೋಸ್ ಪಿಸಿ ಅಥವಾ ಲಿನಕ್ಸ್ ಪಿಸಿ ಬಳಸಬೇಕು.

Azure Functions ನ ಒಂದು ಅದ್ಭುತ ವೈಶಿಷ್ಟ್ಯವೆಂದರೆ ಅವುಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ ಮಾಡಬಹುದು. ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಉಪಯೋಗವಾಗುವ ರನ್‍ಟೈಮ್ ನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಓಡಿಸಬಹುದು, ಮತ್ತು ನೀವು IoT ಸಂದೇಶಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಕೋಡ್ ಬರೆಯಲು ಹಾಗೂ ಅದನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಡಿಬಗ್ಗೊಳಿಸಲು ಸಹ ಸಾಧ್ಯ. ನಿಮ್ಮ ಕೋಡ್ ತೃಪ್ತಿದಾಯಕವಾಗಿದ್ರೆ ಅದನ್ನು ನಂತರ ಕ್ಲೌಡ್ ಗೆ ನಿಯೋಜಿಸಬಹುದು.

Azure Functions ಉಪಕರಣ CLI ಆಗಿ ಲಭ್ಯವಿದೆ, ಅದು Azure Functions Core Tools ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ.

  1. Azure Functions Core Tools ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನಲ್ಲಿ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ Azure Functions ಕೋರ್ ಟೂಲ್ಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ

  2. VS ಕೋಡ್ ಗೆ Azure Functions\Extension ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ. ಈ\Extension ಅನ್ನು Functions ರಚನೆ, ಡಿಬಗ್ಗಿಂಗ್ ಮತ್ತು ನಿಯೋಜನೆಗೆ ಬೆಂಬಲ ನೀಡುತ್ತದೆ. ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು Azure Functions\Extension ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನೋಡಿ.

ನೀವು ನಿಮ್ಮ Azure Functions ಆ್ಯಪ್ ಅನ್ನು ಕ್ಲೌಡ್ ಗೆ ನಿಯೋಜಿಸಿದಾಗ, ಅವು ಅಪ್ಲಿಕೇಶನ್ ಫೈல்கள் ಮತ್ತು ಲಾಗ್ ಫೈಲ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸ್ವಲ್ಪ ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್ ಬಳಸುತ್ತಾರೆ. ನೀವು ನಿಮ್ಮ Functions ಆ್ಯಪ್ ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ ಮಾಡಿದಾಗಲೂ, ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್ ಗೆ ಸಂಪರ್ಕ ಹೊಂದಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ನಿಜವಾದ ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್ ಬಳಸದಿದ್ದೂ Azurite ಎಂದು ಕರೆಯುವ ಸ್ಟೋರೇಜ್ ಎಮ್ಯುಲೇಟರ್ ಬಳಸಬಹುದು. ಇದು ಸ್ಥಳೀಯವಾಗಿ ಓಡುತ್ತದೆ ಆದರೆ ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್ ಎಂಬಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

🎓 ಅಜೂರ್‌ನಲ್ಲಿ, Azure Functions uses an Azure Storage Account. ಈ ಖಾತೆಗಳು ಫೈಲ್ಗಳು, ಬ್ಲಾಬ್ಸ್, ಟೇಬಲ್‌ಗಳಲ್ಲಿ ಡೇಟಾ ಅಥವಾ ಕ್ಯೂ ಗಳು ಮೊದಲಾದ ಡೇಟಾ ಸಂಗ್ರಹಿಸಬಹುದು. ನೀವು ಹಲವಾರು ಆ್ಯಪ್ ಗಳ ನಡುವೆ ಒಂದು ಸ್ಟೋರೇಜ್ ಖಾತೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು, ಉದಾಹರಣೆಗೆ ಒಂದು Functions ಆ್ಯಪ್ ಮತ್ತು ಒಂದು ವೆಬ್ ಆ್ಯಪ್.

  1. Azurite ಒಂದು Node.js ಆ್ಯಪ್ ಆಗಿದೆ, ಆದ್ದರಿಂದ ನೀವು Node.js ಸ್ಥಾಪಿಸಬೇಕು. ಡೌನ್‌ಲೋಡ್ ಮತ್ತು ಸ್ಥಾಪನೆ ಸೂಚನೆಗಳನ್ನು Node.js ವೆಬ್‌ಸೈಟ್ ನಲ್ಲಿ ಸ್ಪಷ್ಟವಾಗಿ ಕಾಣಬಹುದು. ನೀವು Mac ಬಳಸುತ್ತಿದ್ದರೆ, ನೀವು ಇದನ್ನು Homebrew ಇಂದಲೂ ಸ್ಥಾಪಿಸಬಹುದು.

  2. ಕೆಳಗಿನ ಆದೇಶ ಬಳಸಿಕೊಂಡು Azurite ಅನ್ನು ಸ್ಥಾಪಿಸಿ (npm ಎಂಬ ಉಪಕರಣವು Node.js ಸ್ಥಾಪಿಸಿದಾಗ ಲಭ್ಯವಾಗುತ್ತದೆ):

    npm install -g azurite
    
  3. Azuriteಗೆ ಡೇಟಾ ಸಂಗ್ರಹಿಸಲು azurite ಎಂಬ ಫೋಲ್ಡರ್ ರಚಿಸಿ:

    mkdir azurite
    
  4. ಈ ಹೊಸ ಫೋಲ್ಡರ್ ಅನ್ನು Azurite ಗೆ ನೀಡಿ ಚಾಲನೆ ಮಾಡಿ:

    azurite --location azurite
    

    Azurite ಸ್ಟೋರೇಜ್ ಎಮ್ಯುಲೇಟರ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಸ್ಥಳೀಯ Functions ರನ್ ಟೈಮ್ ಗೆ ಸಂಪರ್ಕಕ್ಕೆ ಸಿದ್ಧವಾಗುತ್ತದೆ.

    ➜  ~ azurite --location azurite  
    Azurite Blob service is starting at http://127.0.0.1:10000
    Azurite Blob service is successfully listening at http://127.0.0.1:10000
    Azurite Queue service is starting at http://127.0.0.1:10001
    Azurite Queue service is successfully listening at http://127.0.0.1:10001
    Azurite Table service is starting at http://127.0.0.1:10002
    Azurite Table service is successfully listening at http://127.0.0.1:10002
    

ಕಾರ್ಯ - Azure Functions ಪ್ರಾಜೆಕ್ಟ್ ರಚಿಸಿ

Azure Functions CLI ಮೂಲಕ ಹೊಸ Functions ಆ್ಯಪ್ ರಚಿಸಬಹುದು.

  1. ನಿಮ್ಮ Functions ಆ್ಯಪ್ ಗೆ ಒಂದು ಫೋಲ್ಡರ್ ರಚಿಸಿ ಮತ್ತು ಅದರಲ್ಲಿ ಹೋಗಿ. ಹೆಸರನ್ನು soil-moisture-trigger ಎಂದು ಇರಿಸಿ

    mkdir soil-moisture-trigger
    cd soil-moisture-trigger
    
  2. ಈ ಫೋಲ್ಡರ್ ಒಳಗೆ Python ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸೃಷ್ಟಿಸಿ:

    python3 -m venv .venv
    
  3. ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸಕ್ರಿಯಗೊಳಿಸಿ:

    • Windows ನಲ್ಲಿ:

      • ನೀವು Command Prompt ಅಥವಾ Command Prompt through Windows Terminal ಬಳಸುತ್ತಿದ್ದರೆ, ಈ ಆದೇಶ ಅನ್ನು ಚಲಾಯಿಸಿ:

        .venv\Scripts\activate.bat
        
      • ನೀವು PowerShell ಬಳಸುತ್ತಿದ್ದರೆ, ಈ ಆದೇಶವನ್ನು ಚಲಾಯಿಸಿ:

        .\.venv\Scripts\Activate.ps1
        
    • macOS ಅಥವಾ Linux ನಲ್ಲಿ, ಈ ಆದೇಶವನ್ನು ಚಲಾಯಿಸಿ:

      source ./.venv/bin/activate
      

    💁 ಈ ಆದೇಶಗಳನ್ನು ನೀವು ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ರಚಿಸಿದ ಸ್ಥಳದಿಂದಲೇ ಚಲಾಯಿಸಬೇಕು. .venv ಫೋಲ್ಡರ್ ಒಳಗೆ ಹೋಗಬೇಕಾಗಿಲ್ಲ, ನೀವು ಯಾವಾಗಲೂ ಸಕ್ರಿಯಗೊಳಿಸುವ ಆದೇಶವನ್ನು ಮತ್ತು ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವ ಅಥವಾ ಕೋಡ್ ಓಡಿಸುವ ಆದೇಶಗಳನ್ನು ನೀವು ತಯಾರಿಸಿದ ಸ್ಥಳದಿಂದಲೇ ಚಲಾಯಿಸಬೇಕು.

  4. ಈ ಫೋಲ್ಡರ್ ನಲ್ಲಿ Functions ಆ್ಯಪ್ ರಚಿಸಲು ಕೆಳಗಿನ ಆದೇಶವನ್ನು ಚಲಾಯಿಸಿ:

    func init --worker-runtime python soil-moisture-trigger
    

    ಇದು ಪ್ರಸ್ತುತ ಫೋಲ್ಡರ್ ಒಳಗೆ ಮೂರು ಫೈಲ್ ಗಳನ್ನು ರಚಿಸುತ್ತದೆ:

    • host.json - ಈ JSON ಪೊರೆಗೆ Functions ಆ್ಯಪ್ ಗೆ ಸಂರಚನೆ ಇದೆ. ನೀವು ಇದನ್ನು ಬದಲಿಸಲು ಅಗತ್ಯವಿಲ್ಲ.
    • local.settings.json - ಈ JSON ಆಪ್ತೋಪೇಕ್ಷಿತವಾಗಿ ಸ್ಥಳೀಯವಾಗಿ ರನ್ನಿಂಗ್ ಸಮಯದಲ್ಲಿ ಬಳಸುವ ಸಂರಚನೆಗಳನ್ನು ಹೊಂದಿದೆ, ಉದಾ: ನಿಮ್ಮ IoT Hub ಕನೆಕ್ಷನ್ ಸ್ಟ್ರಿಂಗ್. ಈ ಸಂರಚನೆಗಳು ಸ್ಥಳೀಯ ಮಾತ್ರ, ಮತ್ತು ಸೋರ್ಸ್ ಕಂಟ್ರೋಲ್ ಗೆ ಸೇರಿಸಲಾಗಬಾರದು. ನಿಮ್ಮ ಆ್ಯಪ್ ಕ್ಲೌಡ್ ಗೆ ನಿಯೋಜಿಸಿದಾಗ, ಈ ಸಂರಚನೆಗಳು ನಿಯೋಜಿಸಲ್ಪಡುವುದಿಲ್ಲ, ಬದಲಿಗೆ ನೀವು ಅಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ ಗಳಿಂದ ಸಂರಚನೆಯನ್ನು ಬಳಸುತ್ತೀರಿ. ಈ ವಿಷಯವನ್ನು ನಂತರ ಕಾಣಲಾಗುವುದು.
    • requirements.txt - ಇದು Pip requirements ಫೈಲ್, ಈ ಫೈಲ್ ನಲ್ಲಿ ನಿಮಗೆ ಬೇಕಾದ ಪಿಪ್ ಪ್ಯಾಕೇಜ್ ಗಳ ವಿಷಯವಿರುತ್ತದೆ.
  5. local.settings.json ಫೈಲ್ ನಲ್ಲಿ Functions ಆ್ಯಪ್ ಅದನ್ನು ಬಳಸುವ ಸ್ಟೋರೇಜ್ ಖಾತೆಗಾಗಿ ಸೆಟ್ಟಿಂಗ್ ಇದೆ. ಇದು ಖಾಲಿಯಾಗಿರುತ್ತದೆ ಹಾಗಾಗಿ ಇದನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ. Azurite ಸ್ಥಳೀಯ ಡೇಟಾ ಸಂಗ್ರಹಣೆ ಎಮ್ಯುಲೇಟರ್ ಗೆ ಸಂಪರ್ಕಿಸಲು ಈ ಮೌಲ್ಯವನ್ನು ನೀವು ಈ ಕೆಳಗಿನಂತೆ ಹೊಂದಿಸಿ:

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    
  6. ಅಗತ್ಯವಾದ ಪಿಪ್ ಪ್ಯಾಕೇಜ್ ಗಳನ್ನು requirements ಫೈಲ್ ಮೂಲಕ ಸ್ಥಾಪಿಸಿ:

    pip install -r requirements.txt
    

    💁 ಕಾಮಗಾರಿ ಸಮಯದಲ್ಲಿ Functions ಆ್ಯಪ್ ಕ್ಲೌಡ್ ಗೆ ನಿಯೋಜಿತವಾಗುವಾಗ, ರನ್ ಟೈಮ್ ಸರಿಯಾದ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಈ ಫೈಲ್ ಅಗತ್ಯ.

  7. ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು, Functions ರನ್ ಟೈಮ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಬಹುದು. ಅದಕ್ಕಾಗಿ ಈ ಆದೇಶವನ್ನು ಚಲಾಯಿಸಿ:

    func start
    

    ನೀವು ರನ್ ಟೈಮ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆಯೆಂದು ಹಾಗೂ ಯಾವುದೇ ಕೆಲಸದ ಫಂಕ್ಷನ್ ಗಳು (ಟ್ರಿಗರ್ಗಳು) ಕಂಡುಬಂದಿಲ್ಲ ಎನ್ನುವುದು ವರದಿ ಮಾಡುತ್ತದೆಯೆಂದು ನೋಡಬಹುದು.

    (.venv) ➜  soil-moisture-trigger func start
    Found Python version 3.9.1 (python3).
    
    Azure Functions Core Tools
    Core Tools Version:       3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0  (64-bit)
    Function Runtime Version: 3.0.15417.0
    
    [2021-05-05T01:24:46.795Z] No job functions found.
    

    ⚠️ ನೀವು ಫೈರ್ವಾಲ್ ನೋಟಿಫಿಕೆಶನ್ ಕಂಡರೆ, ಪ್ರವೇಶ ನೀಡಿರಿ ಏಕೆಂದರೆ func ಅಪ್ಲಿಕೇಶನ್ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಓದುವ ಹಾಗೂ ಬರೆದಿಕೊಳ್ಳಲು ಅಗತ್ಯವಿದೆ.

    ⚠️ macOS ಬಳಕೆಯಲ್ಲಿ ನೀವು ಎಚ್ಚರಿಕೆ ಸೂಚನೆಗಳನ್ನು ಕಾಣಬಹುದು:

    (.venv) ➜  soil-moisture-trigger func start
    Found Python version 3.9.1 (python3).
    
    Azure Functions Core Tools
    Core Tools Version:       3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0  (64-bit)
    Function Runtime Version: 3.0.15417.0
    
    [2021-06-16T08:18:28.315Z] Cannot create directory for shared memory usage: /dev/shm/AzureFunctions
    [2021-06-16T08:18:28.316Z] System.IO.FileSystem: Access to the path '/dev/shm/AzureFunctions' is denied. Operation not permitted.
    [2021-06-16T08:18:30.361Z] No job functions found.
    

    Functions ಆ್ಯಪ್ ಸರಿಯಾಗಿ ಪ್ರಾರಂಭವಾದರೆ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ಫಂಕ್ಷನ್ಗಳನ್ನು ಸೂಚಿಸಿದರೆ, ನೀವು ಅವನ್ನು ನಿರ್ಲಕ್ಷಿಸಬಹುದು. Microsoft Docs Q&A ನಲ್ಲಿ ಇದನ್ನು ಒಳಗೊಂಡಿದೆ.

  8. Functions ಆ್ಯಪ್ ನ್ನು ನಿಲ್ಲಿಸಲು ctrl+c ಒತ್ತಿ.

  9. ಪ್ರಸ್ತುತ ಫೋಲ್ಡರ್ ಅನ್ನು VS ಕೋಡ್ ನಲ್ಲಿ ತೆರೆಯಿರಿ, ಅಥವಾ VS ಕೋಡ್ ತೆರೆಯುತ್ತಲೇ ನಂತರ ಈ ಫೋಲ್ಡರ್ ತೆರೆಯಿರಿ ಅಥವಾ ಕೆಳಗಿನ ಆದೇಶವನ್ನು ಓಡಿಸಿ:

    code .
    

    VS Code ನಿಮ್ಮ Functions ಪ್ರಾಜೆكتನ್ನು ಪತ್ತೆಮಾಡಿ, уведомление ಮೂಡಿಸುತ್ತದೆ:

    Detected an Azure Functions Project in folder "soil-moisture-trigger" that may have been created outside of
    VS Code. Initialize for optimal use with VS Code?
    

    The notification

    ಈ уведомлениеನಿಂದ ಹೌದು ಆಯ್ಕೆಮಾಡಿ.

  10. VS Code ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ Python ವರ್ಚುಯಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಚಾಲನೆಯಲ್ಲಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಅಗತ್ಯವಿದ್ದರೆ ಅದನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ಪುನರಾರಂಭಿಸಿ.

IoT ಹಬ್ ಘಟನಾ ಟ್ರಿಗರ್ ರಚಿಸಿ

Functions ಅಪ್ಲಿಕೇಶನ್ ನಿಮ್ಮ ಸರ್ವರ್‍ಲೆಸ್ ಕೋಡಿನ ಶೆಲ್ ಆಗಿದೆ. IoT ಹಬ್ ಘಟನೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು, ನೀವು ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ IoT ಹಬ್ ಟ್ರಿಗರ್ ಅನ್ನು ಸೇರಿಸಬಹುದು. ಈ ಟ್ರಿಗರ್ IoT ಹಬ್‌ಗೆ ಕಳುಹಿಸಲಾದ ಸಂದೇಶಗಳ ಸ್ಟ್ರೀಮ್‌ಗೆ ಸಂಪರ್ಕಿಸುವ ಅಗತ್ಯವಿದೆ ಮತ್ತು ಅದಕ್ಕೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು. ಈ ಸಂದೇಶಗಳ ಸ್ಟ್ರೀಮ್ ಪಡೆಯಲು, ನಿಮ್ಮ ಟ್ರಿಗರ್ IoT ಹಬ್ಬಿನ ಘಟನಾ ಹಬ್ ಹೊಂದಿಕೆಯಾಗುವ ಕೊನೇ ಬಿಂದುಗೆ ಸಂಪರ್ಕಿಸುವ ಅಗತ್ಯವಿದೆ.

IoT ಹಬ್ ಇನ್ನೊಂದು ಆಜೂರ್ ಸೇವೆಯಾಗಿರುವ ಆಜೂರ್ ಈವೆಂಟ್ ಹಬ್ಬ್ ಮೇಲೆ ಆಧಾರಿತವಾಗಿದೆ. ಈವೆಂಟ್ ಹಬ್ಬ್是一种允许您发送和接收消息的服务IoT Hub则扩展此服务以针对物联网设备提供额外功能。读取IoT Hub消息的方式与使用事件中心相同。

ಸ್ವಲ್ಪ ಸಂಶೋಧನೆ ಮಾಡಿ: Azure Event Hubs ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನಲ್ಲಿ ಈವೆಂಟ್ ಹಬ್ಬ್ಗಳ ಅವಲೋಕನ ಓದಿ. ಮೂಲಭೂತ ವೈಶಿಷ್ಟ್ಯತೆಗಳು IoT ಹಬ್ ಜೊತೆಗೆ ಹೇಗೆ ಹೋಲುತ್ತಾರೆ?

ಒಂದು IoT ಸಾಧನ IoT ಹಬ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು, ಅದು ಕೇವಲ ಅನುಮತಿಪಡಿಸಲಾದ ಸಾಧನಗಳಿಗೆ ಮಾತ್ರ ಸಂಪರ್ಕ ಇಲ್ಲವೆಂದೇ ಖಚಿತಪಡಿಸಲು ಹೀಗೊಂದು ಗುಪ್ತ ಕೀಲಿಯನ್ನು ಬಳಸಬೇಕು. ಸಂದೇಶಗಳನ್ನು ಓದುವಾಗ ಸಂಪರ್ಕಿಸುವಾಗವೂ ಇದೇ ನಿಯಮ ಅನ್ವಯಿಸುತ್ತದೆ, ನೀವು ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಬೇಕಾಗುತ್ತದೆ ಇದು ಗುಪ್ತ ಕೀಲಿಯನ್ನು ಒಳಗೊಂಡಿರಬೇಕು ಮತ್ತು IoT ಹಬ್ ವಿವರಗಳನ್ನೂ ಒಳಗೊಂಡಿರಬೇಕು.

💁 ನೀವು ಪಡೆದ ಡೀಫಾಲ್ಟ್ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ iothubowner ಅನುವುಗಳನ್ನು ಹೊಂದಿದೆ, ಇದು ಅದನ್ನು ಬಳಸುವ ಯಾವುದೇ ಕೋಡ್‌ಗೆ IoT ಹಬ್ಬಿನ ಪೂರ್ಣ ನಿರ್ವಾಹಕರ ಅನುವುಗಳನ್ನು ನೀಡುತ್ತದೆ. ಆದರ್ಶವಾಗಿ ನೀವು ಅತ್ಯಲ್ಪ ಮಟ್ಟಿನ ಅನುವುಗಳನ್ನು ಹೊಂದಿದ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಬಳಸಿ ಸಂಪರ್ಕ ಮಾಡಬೇಕು. ಇದು ಮುಂದಿನ ಪಾಠದಲ್ಲಿ ವಿವರಿಸಲಾಗುತ್ತದೆ.

ನಿಮ್ಮ ಟ್ರಿಗರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿದ ಬಳಿಕ, ಫಂಕ್ಷನ್ ಒಳಗಿನ ಕೋಡ್ ಪ್ರತಿಯೊಂದು IoT ಹಬ್ಬಿಗೆ ಕಳುಹಿಸಲಾದ ಸಂದೇಶಕ್ಕೂ ಕರೆಮಾಡಲಾಗುತ್ತದೆ, ಯಾವುದಾದರೂ ಸಾಧನದಿಂದ ಕಳುಹಿಸಲಾದುದೇ ಆಗಿರಲಿ. ಟ್ರಿಗರ್‌ಗೆ ಆ ಸಂದೇಶವು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ನೀಡಲಾಗುತ್ತದೆ.

ಕಾರ್ಯ - ಈವೆಂಟ್ ಹಬ್ ಹೊಂದಿಕೆಯಾಗುವ ಕೊನೇ ಬಿಂದುವಿನ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಪಡೆಯಿರಿ

  1. VS Code ಟರ್ಮಿನಲ್‌ನಿಂದ ಕೆಳಗಿನ ಕಮಾಂಡ್ ಅನ್ನು ಚಲಿಸಿ IoT ಹಬ್ಬಿನ ಈವೆಂಟ್ ಹಬ್ ಹೊಂದಿಕೆಯಾಗುವ ಕೊನೇ ಬಿಂದುಗೆ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಪಡೆಯಿರಿ:

    az iot hub connection-string show --default-eventhub \
                                      --output table \
                                      --hub-name <hub_name>
    

    <hub_name> ಅನ್ನು ನಿಮ್ಮ IoT ಹಬ್ಬಿನ ಹೆಸರಿನಿಂದ ಬದಲಾಯಿಸಿ.

  2. VS Code ನಲ್ಲಿ local.settings.json ಫೈಲ್ ತೆರೆಯಿರಿ. Values ವಿಭಾಗದೊಳಗೆ ಕೆಳಗಿನ ಹೆಚ್ಚುವರಿ ಮೌಲ್ಯ ಅನ್ನು ಸೇರಿಸಿ:

    "IOT_HUB_CONNECTION_STRING": "<connection string>"
    

    <connection string> ಅನ್ನು ಮುಂಚಿನ ಹಂತದಿಂದ ಪಡೆದ ಮೌಲ್ಯದಿಂದ ಬದಲಾಯಿಸಿ. ಈ ನೀವು ಸರಿಯಾದ JSON ಆಗಲು ಮೊದಲ ಸಾಲಿನ ನಂತರ ಕೋಮಾ ಸೇರಿಸುವ ಅಗತ್ಯ ಮಾಡಿಕೊಳ್ಳಿ.

ಕಾರ್ಯ - ಈವೆಂಟ್ ಟ್ರಿಗರ್ ರಚಿಸಿ

ನೀವು ಈಗ ಈವೆಂಟ್ ಟ್ರಿಗರ್ ರಚಿಸಲು ಸಿದ್ಧರಾಗಿದ್ದೀರಿ.

  1. VS Code ಟರ್ಮಿನಲ್‌ನಿಂದ soil-moisture-trigger ಫೋಲ್ಡರ್ ಒಳಗೆ ಕೆಳಗಿನ ಕಮಾಂಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    func new --name iot-hub-trigger --template "Azure Event Hub trigger"
    

    ಇದು iot-hub-trigger ಎನ್ನುವ ಹೊಸ ಫಂಕ್ಷನ್ ಸೃಷ್ಟಿಸುತ್ತದೆ. ಟ್ರಿಗರ್ IoT ಹಬ್ಬಿನ ಈವೆಂಟ್ ಹಬ್ ಹೊಂದಿಕೊಳ್ಳುವ ಕೊನೇ ಬಿಂದುವಿಗೆ ಸಂಪರ್ಕಿಸಿ, ನೀವು ಈವೆಂಟ್ ಹಬ್ ಟ್ರಿಗರ್ ಬಳಸಿ ಫಂಕ್ಷನ್ ರಚಿಸಬಹುದು. ವಿಶೇಷ IoT ಹಬ್ ಟ್ರಿಗರ್ ಇಲ್ಲ.

ಇದು soil-moisture-trigger ಫೋಲ್ಡರ್‌ಒಳಗೆ iot-hub-trigger ಎನ್ನುವ ಫೋಲ್ಡರ್ ರಚಿಸುತ್ತದೆ ಮತ್ತು ಆ ಫೋಲ್ಡರ್ ಈ ಫಂಕ್ಷನ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಈ ಫೋಲ್ಡರ್‌ಗೆ ಕೆಳಗಿನ ಫೈಲ್‌ಗಳು ಇರಬಹುದು:

  • __init__.py - ಈ ಪೈಥಾನ್ ಕೋಡ್ ಫೈಲ್ ಆಗಿದ್ದು, ಈ ಟ್ರಿಗರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ ಮತ್ತು ಮಾನ್ಯ ಪೈಥಾನ್ ಫೈಲ್ ಹೆಸರಿನ ಸಂಪ್ರದಾಯವನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಫೋಲ್ಡರ್ ಅನ್ನು ಪೈಥಾನ್ ಮೋಡ್ಯೂಲ್ ಆಗಿ ಮಾಡಿ.

    ಈ ಫೈಲ್ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ:

    import logging
    
    import azure.functions as func
    
    
    def main(event: func.EventHubEvent):
        logging.info('Python EventHub trigger processed an event: %s',
                    event.get_body().decode('utf-8'))
    

    ಟ್ರಿಗರ್ ಕೋರ್ ಆಗಿರುವುದು main ಫಂಕ್ಷನ್. IoT ಹಬ್ಬಿನ ಘಟನೆಗಳಿಂದ ಈ ಫಂಕ್ಷನ್ ಕರೆಯಲಾಗುತ್ತದೆ. ಈ ಫಂಕ್ಷನ್ event ಎಂಬ ಪ್ಯಾರಾಮೀಟರ್ ಹೊಂದಿದೆ ಇದರಲ್ಲಿ EventHubEvent ಇದೆ. ಪ್ರತಿಯೊಂದು ವೇಳೆ IoT ಹಬ್ಬಿಗೆ ಸಂದೇಶ ಕಳುಹಿಸುವಾಗ, ಈ ಫಂಕ್ಷನ್ event ಆಗಿ ಸಂದೇಶವು, ಅದರ ಜೊತೆಗೆ ಈ ಹಿಂದೆ ನೀವು ನೋಡಿದ ಟಿಪ್ಪಣಿಗಳಂತೆ ವೈಶಿಷ್ಟ್ಯಗಳು ಕೂಡಾ saamILLge ಕಳುಹಿಸಲಾಗುತ್ತವೆ.

    ಈ ಫಂಕ್ಷನ್ ಕೋರ್ ಘಟನೆಗಳನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ.

  • function.json - ಈ ಫೈಲ್ ಟ್ರಿಗರ್ ಇನ್ಪುಟ್ ಕಾಂಫಿಗರೇಶನ್ ಹೊಂದಿದೆ. ಪ್ರಮುಖ ಕಾಂಫಿಗರೇಶನ್ bindings ವಿಭಾಗದಲ್ಲಿ ಇರುತ್ತದೆ. ಬಿಂಗಿಂಗ್ ಎಂದರೆ ಆಜೂರ್ ಫಂಕ್ಷನ್ಸ್ ಮತ್ತು ಇತರ ಆಜೂರ್ ಸೇವೆಗಳ ನಡುವೆ ಸಂಪರ್ಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಈ ಫಂಕ್ಷನ್ ಒಂದಿಷ್ಟು ಬಿನ್ನಾಯ್ ಹೊಂದಿದೆ, ಅದು ಒಂದು ಇವೆಂಟ್ ಹಬ್ ನಿಂದ ಡೇಟಾಬಂದಿ ಪಡೆಯುತ್ತದೆ.

    💁 ನೀವು ಔಟ್ ಪುಟ್ ಬಿನ್ನಾಯಿ ಕೂಡ ಇರಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ನೀವು ಡೇಟಾಬೇಸ್‌ಗೆ ಔಟ್ ಪುಟ್ ಬಿನ್ನಾಯ್ ಸೇರಿಸಿ IoT ಹಬ್ ಘಟನೆ ಫಂಕ್ಷನ್‌ನಿಂದ ರಿಟರ್ನ್ ಮಾಡಿ ಡೇಟಾಬೇಸ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತ ಸೇರಿಸುವುದನ್ನು ಮಾಡಬಹುದು.

    ಸ್ವಲ್ಪ ಸಂಶೋಧನೆ ಮಾಡಿ: Azure Functions ಟ್ರಿಗರ್‌ಗಳು ಮತ್ತು ಬಿನ್ನಾಯಿಗಳು ಸಮ್Concepts ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಓದಿ.

    bindings ವಿಭಾಗದಲ್ಲಿ ಕೆಳಗಿನ ಪ್ರಮುಖ ವಿಡ್ರತೆಗಳಿವೆ:

    • "type": "eventHubTrigger" - ಈ ಫಂಕ್ಷನ್ ಈವೆಂಟ್ ಹಬ್ಬಿನಿಂದ ಈವೆಂಟ್ಗಳು ಬರುವುದನ್ನು ತಿಳಿಯುತ್ತದೆ

    • "name": "events" - ಇದು ಈವೆಂಟ್ ಹಬ್ ಘಟನಗಳ ಪ್ಯಾರಾಮೀಟರ್ ಹೆಸರು, ಇದು ಪೈಥಾನ್ ಕೋಡ್‍ನ main ಫಂಕ್ಷನ್‍ನ ಪ್ಯಾರಾಮೀಟರ್ ಹೆಸರಿನೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ

    • "direction": "in" - ಇದು ಇನ್ಪುಟ್ ಬಿನ್ನಾಯ್ ಆಗಿದ್ದು, ಈವೆಂಟ್ ಹಬ್ಬಿನಿಂದ ಡೇಟಾ ಬರುತ್ತದೆ

    • "connection": "" - ಈ ಸ್ಟ್ರಿಂಗ್ ಇದನ್ನು local.settings.json ಫೈಲ್‌ನಲ್ಲಿ ಡೇಟಾ ಓದಲು ಬಳಸುವ ಸೆಟ್ಟಿಂಗ್ ವಸ್ತು ಹೆಸರನ್ನು ಸೂಚಿಸುತ್ತದೆ.

      💁 ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ function.json ಫೈಲ್‌ನಲ್ಲಿ ಇರಿಸಲಾಗುವುದಿಲ್ಲ, ಇದು ನಿಮ್ಮ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಅನಿರೀಕ್ಷಿತವಾಗಿ ಬಹಿರಂಗಪಡಿಸುವುದನ್ನು ತಡೆಯಲು.

  1. Azure Functions ಟೆಂಪ್ಲೇಟ್ನಲ್ಲಿನ ಬગ್ ಕಾರಣದಿಂದ function.json ನಲ್ಲಿ cardinality ಕ್ಷೇತ್ರದ ಮೌಲ್ಯ ತಪ್ಪಿದೆ. ಈ ಮೌಲ್ಯವನ್ನು many ರಿಂದ one ಗೆ ಬದಲಾಯಿಸಿ:

    "cardinality": "one",
    
  2. function.json ಫೈಲ್‌ನಲ್ಲಿ "connection" ಮೌಲ್ಯವನ್ನು local.settings.json ಫೈಲ್‌ನ ಹೊಸ ಸೆಟ್ಟಿಂಗ್‌ಗೆ ಸೂಚಿಸುವಂತೆ ಬದಲಾಯಿಸಿ:

    "connection": "IOT_HUB_CONNECTION_STRING",
    

    💁 ನೆನಪಿಡಿ - ಇದು ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸೂಚಿಸಬೇಕು, ನಿಜವಾದ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಇರಕೂಡದು.

  3. ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ನಲ್ಲಿ eventHubName ಮೌಲ್ಯವಿದೆ, ಆದ್ದರಿಂದ function.json ಫೈಲ್‌ನ ಆ ಮೌಲ್ಯವನ್ನು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಗಾಗಿ ಬದಲಾಯಿಸಬೇಕು:

    "eventHubName": "",
    

ಕಾರ್ಯ - ಈವೆಂಟ್ ಟ್ರಿಗರ್ ನ ಚಾಲನೆ

  1. ನೀವು IoT ಹಬ್ ಘಟನೆ ಮಾನಿಟರ್ ರನ್ ಮಾಡುತ್ತಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಇದು ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಜೊತೆ samtidದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿದ್ದರೆ, ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಸಂಪರ್ಕಿಸಿ ಘಟನಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ.

    💁 ಹಲವಾರು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಕನ್ಸ್ಯೂಮರ್ ಗುಂಪುಗಳು ಬಳಸಿಕೊಂಡು IoT ಹಬ್ ಕೊನೆಯಲ್ಲಿ ಸಂಪರ್ಕ ಮಾಡಬಹುದು. ಇದು ನಂತರದ ಪಾಠದಲ್ಲಿ ವಿವರಿಸಲಾಗುವುದು.

  2. ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಲು, VS Code ಟರ್ಮಿನಲ್‌ನಿಂದ ಕೆಳಗಿನ ಕಮಾಂಡ್ ಚಲಿಸಿ:

    func start
    

    ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು iot-hub-trigger ಕಾರ್ಯವನ್ನು ಪತ್ತೆಮಾಡುತ್ತದೆ. ನಂತರ, ಕಳೆದ ದಿನದಲ್ಲಿ IoT ಹಬ್ಬಿಗೆ ಕಳುಹಿಸಲಾದ ಎಲ್ಲಾ ಘಟನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತದೆ.

    (.venv) ➜  soil-moisture-trigger func start
    Found Python version 3.9.1 (python3).
    
    Azure Functions Core Tools
    Core Tools Version:       3.0.3442 Commit hash: 6bfab24b2743f8421475d996402c398d2fe4a9e0  (64-bit)
    Function Runtime Version: 3.0.15417.0
    
    Functions:
    
            iot-hub-trigger: eventHubTrigger
    
    For detailed output, run func with --verbose flag.
    [2021-05-05T02:44:07.517Z] Worker process started and initialized.
    [2021-05-05T02:44:09.202Z] Executing 'Functions.iot-hub-trigger' (Reason='(null)', Id=802803a5-eae9-4401-a1f4-176631456ce4)
    [2021-05-05T02:44:09.205Z] Trigger Details: PartitionId: 0, Offset: 1011240-1011632, EnqueueTimeUtc: 2021-05-04T19:04:04.2030000Z-2021-05-04T19:04:04.3900000Z, SequenceNumber: 2546-2547, Count: 2
    [2021-05-05T02:44:09.352Z] Python EventHub trigger processed an event: {"soil_moisture":628}
    [2021-05-05T02:44:09.354Z] Python EventHub trigger processed an event: {"soil_moisture":624}
    [2021-05-05T02:44:09.395Z] Executed 'Functions.iot-hub-trigger' (Succeeded, Id=802803a5-eae9-4401-a1f4-176631456ce4, Duration=245ms)
    

    ಪ್ರತಿ ಫಂಕ್ಷನ್ ಕರೆಗೆ 'Executing 'Functions.iot-hub-trigger'' / 'Executed 'Functions.iot-hub-trigger'' ಎಂಬ ಲಾಗ್ ಬ್ಲಾಕ್ ನಮ್ಮಿಗಲ್ಲುತ್ತದೆ, ಇದರಿಂದ ಫಂಕ್ಷನ್ ನೊಳಗೆ ಎಷ್ಟು ಸಂದೇಶಗಳು ಸಂಸ್ಕರಿಸಲಾಯಿತು ಎಂಬುದು ತಿಳಿಯುತ್ತದೆ.

  3. ನಿಮ್ಮ IoT ಸಾಧನ ಚಾಲನೆಯಲ್ಲಿದೆಯಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನಿಮಗೆ ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಹೊಸ ಮಣ್ಣು ಆರ್ದ್ರತೆ ಸಂದೇಶಗಳು ಕಂಡುಬರುತ್ತವೆ.

  4. ಫಂಕ್ಷನ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಲ್ಲಿಸಿ ಮತ್ತು ಪುನರಾರಂಭಿಸಿ. ಹಿಂದಿನ ಸಂದೇಶಗಳನ್ನು ಪುನಃ ಪ್ರಕ್ರಿಯೆ ಮಾಡಬಾರದು, ಕೇವಲ ಹೊಸ ಸಂದೇಶಗಳನ್ನು ಮಾತ್ರ ಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತದೆ.

💁 VS Code ನಿಮ್ಮ Functions ನ ಡೀಬಗ್ ಕೂಡ ಬೆಂಬಲಿಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಕೋಡ್ ಸಾಲಿನ ಆರಂಭದ ಬಾರ್ಡರ್‌ನಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ, ಅಥವಾ ಸಾಲಿನ ಮೇಲೆ ಕರಸರ್ ಇಟ್ಟು Run -> Toggle breakpoint ಆಯ್ಕೆಮಾಡಿ, ಅಥವಾ F9 ಒತ್ತಿ ಬ್ರೇಕ್‌ಪಾಯಿಂಟ್ ಸಜ್ಜುಗೊಳಿಸಬಹುದು. F5 ಒತ್ತಿ ಅಥವಾ Run -> Start debugging ಆಯ್ಕೆಮಾಡಿ ಡೀಬಗರ್ ಪ್ರಾರಂಭಿಸಬಹುದು. ಈ ಮೂಲಕ ನೀವು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಇರುವ ಘಟನೆಗಳ ವಿವರಗಳನ್ನು ನೋಡಬಹುದು.

ದೋಷ ಪರಿಹಾರ

  • ಕೆಳಗಿನ ದೋಷ ಬಂದರೆ:

    The listener for function 'Functions.iot-hub-trigger' was unable to start. Microsoft.WindowsAzure.Storage: Connection refused. System.Net.Http: Connection refused. System.Private.CoreLib: Connection refused.
    

    Azurite ಚಾಲನೆಯಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ ಮತ್ತು local.settings.json ಫೈಲ್‌ನಲ್ಲಿ AzureWebJobsStorage ಅನ್ನು UseDevelopmentStorage=true ಆಗಿ ಹೊಂದಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ.

  • ಕೆಳಗಿನ ದೋಷ ಬಂದರೆ:

    System.Private.CoreLib: Exception while executing function: Functions.iot-hub-trigger. System.Private.CoreLib: Result: Failure Exception: AttributeError: 'list' object has no attribute 'get_body'
    

    function.json ಫೈಲ್‌ನ cardinality ಮೌಲ್ಯವನ್ನು one ಎಂದು ಹೊಂದಿಸಿದ್ದೀರಾ ಎಂದು ಪರಿಶೀಲಿಸಿ.

  • ಕೆಳಗಿನ ದೋಷ ಬಂದರೆ:

    Azure.Messaging.EventHubs: The path to an Event Hub may be specified as part of the connection string or as a separate value, but not both.  Please verify that your connection string does not have the `EntityPath` token if you are passing an explicit Event Hub name. (Parameter 'connectionString').
    

    function.json ಫೈಲ್‌ನ eventHubName ಮೌಲ್ಯವನ್ನು ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಹೊಂದಿಸಿದ್ದೀರಾ ಎಂದು ಪರಿಶೀಲಿಸಿ.

ಸರ್ವರ್‍ಲೆಸ್ ಕೋಡ್ ನಿಂದ ನೇರ ರೀತಿಯ ಕಮಾಂಡ್ ಕಳುಹಿಸಿ

ಇದುವರೆಗೆ ನಿಮ್ಮ Functions ಅಪ್ಲಿಕೇಶನ್ Event Hub ಹೊಂದಿಕೆಯಾಗುವ ಕೊನೆಯೃಂದಿನಿಂದ IoT ಹಬ್ಬಿನ ಸಂದೇಶಗಳನ್ನು ಕೇಳುತ್ತಿದೆ. ಈಗ ನೀವು IoT ಸಾಧನಕ್ಕೆ ಕಮಾಂಡ್ ಕಳುಹಿಸಬೇಕು. ಇದು Registry Manager ಮೂಲಕ ವೈಯಕ್ತಿಕ IoT ಹಬ್ ಗೆ ಸಂಪರ್ಕಿಸುವ ಬೇರೊಂದು ಸಂಪರ್ಕವನ್ನು ಬಳಸುವ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ. Registry Manager sebuah alat yang memungkinkan Anda melihat perangkat yang terdaftar di IoT Hub, berkomunikasi dengan perangkat tersebut dengan mengirim pesan dari cloud ke perangkat, permintaan metode langsung, atau memperbarui perangkat kembarannya. Anda juga dapat menggunakannya untuk mendaftarkan, memperbarui, atau menghapus perangkat IoT dari IoT Hub.

Registry Manager ಗೆ ಸಂಪರ್ಕಿಸಲು, ನಿಮಗೆ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಬೇಕಾಗುತ್ತದೆ.

ಕಾರ್ಯ - Registry Manager ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಪಡೆಯಿರಿ

  1. ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಪಡೆಯಲು, ಕೆಳಗಿನ ಕಮಾಂಡ್ ಚಾಲನೆ ಮಾಡಿ:

    az iot hub connection-string show --policy-name service \
                                      --output table \
                                      --hub-name <hub_name>
    

    <hub_name> ಅನ್ನು ನೀವು ಬಳಸಿದ IoT ಹಬ್ ಹೆಸರಿನಿಂದ ಬದಲಾಯಿಸಿ.

    ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ --policy-name service ಇರುವ ServiceConnect ನೀತಿಯಲ್ಲ್ದಿಂದ ಕೇಳಲಾಗುತ್ತದೆ. ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಕೇಳುವಾಗ, ನೀವು ಹಿದೆav电影 ಅದೊಂದು ಅನುಮತಿ ಮಾಡುತ್ತದೆ ಎಂದು ಸೂಚಿಸಬಹುದು. ServiceConnect ನೀತಿ ನಿಮ್ಮ ಕೋಡ್‌ಗೆ IoT ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕ ಮಾಡಿಸಿ ಮತ್ತು ಸಂದೇಶ ಕಳುಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

    ಸ್ವಲ್ಪ ಸಂಶೋಧನೆ ಮಾಡಿ: IoT Hub ಅನುಮತಿಯ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನಲ್ಲಿ ವಿಭಿನ್ನ ನೀತಿಗಳನ್ನು ಓದಿ.

  2. VS Code ನಲ್ಲಿ local.settings.json ಫೈಲ್ ತೆರೆಯಿರಿ. Values ವಿಭಾಗದಲ್ಲಿ ಕೆಳಗಿನ ಹೆಚ್ಚುವರಿ ಮೌಲ್ಯ ಸೇರಿಸಿ:

    "REGISTRY_MANAGER_CONNECTION_STRING": "<connection string>"
    

    <connection string> ಅನ್ನು ಹಿಂದಿನ ಹಂತದಿಂದ ಪಡೆದ ಮೌಲ್ಯದಿಂದ ಬದಲಾಯಿಸಿ. ಸರಿಯಾದ JSON ಆಗಿರಲು ಮೇಲಿನ ಸಾಲಿನ ನಂತರ ಕೋಮಾ ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ.

ಕಾರ್ಯ - ಸಾಧನಕ್ಕೆ ನೇರ ರೀತಿಯ ಕಮಾಂಡ್ ಕಳುಹಿಸಿ

  1. Registry Manager SDK Pip ಪ್ಯಾಕೇಜ್ ಮೂಲಕ ಲಭ್ಯವಿದೆ. ಈ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಅವಲಂಬನೆಗೆ ಸೇರಿಸಲು requirements.txt ಫೈಲ್‌ಗೆ ಕೆಳಗಿನ ಸಾಲು ಸೇರಿಸಿ:

    azure-iot-hub
    
  2. VS Code ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ವರ್ಚುಯಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸಕ್ರಿಯವಿದ್ದು ಅನ್ನು ಖಚಿತಪಡಿಸಿ, ಹಾಗೂ ಕೆಳಗಿನ ಕಮಾಂಡ್ ಚಲಿಸಿ Pip ಪ್ಯಾಕೇಜ್‍ಗಳನ್ನು ಸ್ಥಾಪಿಸಿ:

    pip install -r requirements.txt
    
  3. __init__.py ಫೈಲ್‍ಗೆ ಕೆಳಗಿನ ಇಂಪೋರ್ಟ್ಗಳನ್ನು ಸೇರಿಸಿ:

    import json
    import os
    from azure.iot.hub import IoTHubRegistryManager
    from azure.iot.hub.models import CloudToDeviceMethod
    

    ಇದು ಕೆಲವು ಸಿಸ್ಟಮ್ ಲೈಬ್ರರಿ ಗಳನ್ನು ಮತ್ತು Registry Manager ಜೊತೆಗೆ ನೇರ ವಿಧಾನ ಕಮಾಂಡ್ ಕಳುಹಿಸಲು ಬೇಕಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತದೆ.

  4. main ಮೆಥಡ್‌ನೊಳಗಿನ ಕೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ, ಆದರೂ ಮೆಥಡ್ ಅನ್ನು ಉಳಿಸಿಕೊಂಡಿರಿ.

  5. main ಮೆಥಡ್‌ನಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

    body = json.loads(event.get_body().decode('utf-8'))
    device_id = event.iothub_metadata['connection-device-id']
    
    logging.info(f'Received message: {body} from {device_id}')
    

    ಇದು ಇವೆಂಟ್‌ನ ಬಾಡಿ ಅನ್ನು ಹೊರತೆಗೆದು IoT ಸಾಧನದಿಂದ ಕಳುಹಿಸಲಾದ JSON ಸಂದೇಶವನ್ನು ಅಳವಡಿಸುತ್ತದೆ.

    ನಂತರ, ಸಂದೇಶದೊಂದಿಗೆ ಬರುವ ಟಿಪ್ಪಣಿಗಳಿಂದ ಸಾಧನ ಐಡಿ ಪಡೆಯುತ್ತದೆ. ಇವೆಂಟ್ ಬಾಡಿ ಸಂದೇಶವು ಟೆಲೆಮೆಟ್ರಿ ರೂಪದಲ್ಲಿ ಇದೆ ಮತ್ತು iothub_metadata ಡಿಕ್ಷನರಿಯಲ್ಲಿ IoT ಹಬ್ ನಿಂದ ಸದರಿ ಆದದ್ದ ಹೇಗಿರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಸಾಧನ ಐಡಿ ಹಾಗೂ ಸಂದೇಶ ಕಳುಹಿಸಿದ ಸಮಯಗಳಿವೆ.

    ಈ ಮಾಹಿತಿಯನ್ನು ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಲಾಗ್ ಮಾಡಲಾಗುತ್ತದೆ.

  6. ಇದಕ್ಕೆ ಕೆಳಗೆ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

    soil_moisture = body['soil_moisture']
    
    if soil_moisture > 450:
        direct_method = CloudToDeviceMethod(method_name='relay_on', payload='{}')
    else:
        direct_method = CloudToDeviceMethod(method_name='relay_off', payload='{}')
    

    ಇದು ಸಂದೇಶದಿಂದ ಮಣ್ಣಿನ ಆರ್ದ್ರತೆ (soil moisture) ಪಡೆಯುತ್ತದೆ. ನಂತರ ಆರ್ದ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸಿ ಮೌಲ್ಯ ಪ್ರಕಾರ relay_on ಅಥವಾ relay_off ನೇರ ಮಾರ್ಗ ವಿನಂತಿಗಾಗಿ ಸಹಾಯಕ ಕ್ಲಾಸ್ ರಚಿಸುತ್ತದೆ. ಮಾರ್ಗ ವಿನಂತಿ ಯಾವುದೇ ಪೇಲೋಡ್ ಬೇಕಾಗಿಲ್ಲ, ಆದ್ದರಿಂದ ಖಾಲಿ JSON ದಾಖಲೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.

  7. ಕೆಳಗೆ ಮತ್ತೊಂದು ಕೋಡ್ ಸೇರಿಸಿ:

    logging.info(f'Sending direct method request for {direct_method.method_name} for device {device_id}')
    
    registry_manager_connection_string = os.environ['REGISTRY_MANAGER_CONNECTION_STRING']
    registry_manager = IoTHubRegistryManager(registry_manager_connection_string)
    

    ಇದು local.settings.json ಫೈಲ್‌ನಿಂದ REGISTRY_MANAGER_CONNECTION_STRING ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಈ ಫೈಲ್‌ನ ಮೌಲ್ಯಗಳು ಪರಿಸರ ಚರಲಿಗಳಾಗಿವೆ, ಅವನ್ನು os.environ ಫಂಕ್ಷನ್ ಬಳಸಿ ಓದಬಹುದು, ಇದು ಎಲ್ಲಾ ಪರಿಸರ ಚರಲಿಗಳ ಡಿಕ್ಷನರಿ ಕಳುಹಿಸುತ್ತದೆ.

    💁 ಈ ಕೋಡ್ ಕ್ಲೌಡ್‌ಗೆ ನಿಯೋಜಿಸಿದಾಗ, local.settings.json ಮೌಲ್ಯಗಳು ಅಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಆಗಿ ಹೊಂದಿಸಿ ಅವುಗಳನ್ನು ಪರಿಸರ ಚರಲಿಗಳ ಮೂಲಕ ಓದಬಹುದು.

    ನಂತರ ಈ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್‌ನ ಸಹಾಯದಿಂದ Registry Manager ಸಹಾಯಕರ ಕ್ಲಾಸ್‌ನ ಉದಾಹರಣೆ ಸೃಷ್ಟಿಸಿ.

  8. ಕೆಳಗೆ ಮತ್ತೊಂದು ಕೋಡ್ ಸೇರಿಸಿ:

    registry_manager.invoke_device_method(device_id, direct_method)
    
    logging.info('Direct method request sent!')
    

    ಇದು ರಿಜಿಸ್ಟ್ರಿ ಮ್ಯಾನೇಜರ್‌ಗೆ ಟೆಲಿಮೆಟ್ರಿ ಕಳುಹಿಸಿದ ಸಾಧನಕ್ಕೆ ನೇರ ಮಾರ್ಗ ವಿನಂತಿ ಕಳುಹಿಸಲು ನಮ್ಮನ್ನು ಸೂಚಿಸುತ್ತದೆ.

💁 ನೀವು ಮೊದಲನೇ ಪಾಠಗಳಲ್ಲಿ MQTT ಬಳಸಿಕೊಂಡು ಸೃಷ್ಟಿಸಿದ ಆ್ಯಪ್‌ನ ಆವೃತ್ತಿಗಳಲ್ಲಿ, ರಿಲೇ ನಿಯಂತ್ರಣ ಆಜ್ಞೆಗಳು ಎಲ್ಲಾ ಸಾಧನಗಳಿಗೆ ಕಳುಹಿಸಲ್ಪಟ್ಟವು. ಕೋಡ್ ನೀವು ಒಂದೇ ಸಾಧನ ಹೊಂದಿದ್ದೀರೋ ಎಂದು ಊಹಿಸಿಕೊಂಡಿತ್ತು. ಕೋಡ್‌ನ ಈ ಆವೃತ್ತಿ ವಿಧಾನ ವಿನಂತಿಯನ್ನು ಒಂದು ಸಾಧನಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ಬಹುಮಟ್ಟಿನ ತಂಪಾಗು ಸಂವೇದಕಗಳು ಮತ್ತು ರಿಲೇಗಳ ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಸರಿಯಾದ ನೇರ ವಿಧಾನ ವಿನಂತಿಯನ್ನು ಸರಿಯಾದ ಸಾಧನಕ್ಕೆ ಕಳುಹಿಸುವ ಮೂಲಕ ಕೆಲಸ ಮಾಡುತ್ತದೆ.

  1. ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ, ಮತ್ತು ನಿಮ್ಮ IoT ಸಾಧನ ದತ್ತಾಂಶ ಕಳುಹಿಸುತ್ತಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಸಂದೇಶಗಳು ಪ್ರಕ್ರಿಯೆಗೆ ಒಳಗಾಗುತ್ತಿರುವುದನ್ನು ಮತ್ತು ನೇರ ವಿಧಾನ ವಿನಂತಿಗಳು ಕಳುಹಿಸಲ್ಪಡುತ್ತಿರುವುದನ್ನು ನೀವು ಕಾಣಬಹುದು. ಮಣ್ಣು ತಂಪಾಗು ಸಂವೇದಕವನ್ನು ಮಣ್ಣಿನ ಒಳಗೆ ಮತ್ತು ಹೊರಗೆ ಸರಿಸಿ ಮೌಲ್ಯಗಳನ್ನು ಬದಲಿಸುವುದನ್ನು ಮತ್ತು ರಿಲೇ ಆನ್ ಮತ್ತು ಆಫ್ ಆಗುವುದನ್ನು ನೋಡಿ

💁 ನೀವು ಈ ಕೋಡ್ ಅನ್ನು code/functions ಫೋಲ್ಡರ್ನಲ್ಲಿ ಕಾಣಬಹುದು.

ನಿಮ್ಮ ಸರ್ವರ್‌ಲೆಸ್ ಕೋಡ್ ಅನ್ನು ಕ್ಲೌಡ್‌ಗೆ ನಿಯೋಜಿಸು

ನಿಮ್ಮ ಕೋಡ್ ಈಗ ಸ್ಥಳೀಯವಾಗಿ ಚೆನ್ನಾಗಿಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ, ಆದ್ದರಿಂದ ಮುಂದಿನ ಹೆಜ್ಜೆ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ಕ್ಲೌಡ್‌ಗೆ ನಿಯೋಜಿಸುವುದು.

ಕಾರ್ಯ - ಕ್ಲೌಡ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸೃಷ್ಟಿಸು

ನಿಮ್ಮ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ IoT ಹಬ್ ಗೆ ಸೃಷ್ಟಿಸಿದ ರಿಸೋರ್ಸ್ ಗುಂಪಿನೊಳಗಿನ Azure ನಲ್ಲಿ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಸಂಪನ್ಮೂಲಕ್ಕೆ ನಿಯೋಜಿಸಬೇಕು. ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ ಆಗುತ್ತಿರುವ ಅನೂಕರಣ ಸಂಗ್ರಹ ಖಾತೆಯನ್ನು ಬದಲಾಯಿಸಲು Azure ನಲ್ಲಿ ಸಂಗ್ರಹ ಖಾತೆಯನ್ನು ಕೂಡ ಸೃಷ್ಟಿಸಬೇಕು.

  1. ಸಂಗ್ರಹ ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸುವುದಕ್ಕಾಗಿ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    az storage account create --resource-group soil-moisture-sensor \
                              --sku Standard_LRS \
                              --name <storage_name> 
    

<storage_name> ಅನ್ನು ನಿಮ್ಮ ಸಂಗ್ರಹ ಖಾತೆಯ ಹೆಸರಿನಿಂದ ಬದಲಿ ಮಾಡಿ. ಇದು ಜಾಗತಿಕವಾಗಿ ವಿಶಿಷ್ಟವಾಗಿರಬೇಕು ಏಕೆಂದರೆ ಇದು ಸಂಗ್ರಹ ಖಾತೆಗೆ ಪ್ರವೇಶಿಸಲು ಬಳಸುವ URL ಭಾಗವಾಗುತ್ತದೆ. ಈ ಹೆಸರಿಗಾಗಿ ನೀವು ಕೇವಲ ಕೆಳಗಿನ ಅಕ್ಷರಗಳು ಮತ್ತು ಸಂಖ್ಯೆಗಳನ್ನು ಬಳಸಿ, ಇತರೆ ಅಕ್ಷರಗಳನ್ನು ಬಳಸಬೇಡಿ, ಮತ್ತು ಇದು 24 ಅಕ್ಷರಗಳವರೆಗೆ ಮಾತ್ರ ಇರಬಹುದು. sms ಅಥವಾ ಅದಕ್ಕೆ байланысты ವಿಭಿನ್ನ ID, ವಿಭಿನ್ನ ಪದಗಳು ಅಥವಾ ನಿಮ್ಮ ಹೆಸರು ಸೇರಿಸಿ ಬಳಸಬಹುದು.

--sku Standard_LRS ಆಯ್ಕೆ ಮೇಲ್ಮಟ್ಟದ ಬೆಲೆಯಾಗಿರುವ ಸಾಮಾನ್ಯ ಗುರಿಯ ಖಾತೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಉಚಿತ ಸಂಗ್ರಹ ಸ್ಥರ ಇಲ್ಲ, ನೀವು ಬಳಕೆಮಾಡಿದಷ್ಟೇ ಪಾವತಿಸಬೇಕು. ವೆಚ್ಚಗಳು ತಗ್ಗಿವೆ, ಅತ್ಯಂತ ದುಬಾರಿ ಸಂಗ್ರಹವನ್ನು ಗಿಗಾಬೈಟ್ ಪ್ರತಿಮಹಾ US$0.05 ಕ್ಕಿಂತ ಕಡಿಮೆ ಬೆಲೆಯಾಗಿದೆ.

Azure Storage Account ಬೆಲೆಯ ಪುಟದಲ್ಲಿ ಬೆಲೆಯಲ್ಲಿ ಓದಿ.

  1. ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಸೃಷ್ಟಿಸಲು ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    az functionapp create --resource-group soil-moisture-sensor \
                          --runtime python \
                          --functions-version 3 \
                          --os-type Linux \
                          --consumption-plan-location <location> \
                          --storage-account <storage_name> \
                          --name <functions_app_name>
    

<location> ಅನ್ನು ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ ರಿಸೋರ್ಸ್ ಗುಂಪು ಸೃಷ್ಟಿಸುವಾಗ ಬಳಸಿದ ಸ್ಥಳದಿಂದ ಬದಲಿ ಮಾಡಿ.

<storage_name> ಅನ್ನು ಹಿಂದಿನ ಹಂತದಲ್ಲಿ ನೀವು ಸೃಷ್ಟಿಸಿದ ಸಂಗ್ರಹ ಖಾತೆಯ ಹೆಸರಿನಿಂದ ಬದಲಿ ಮಾಡಿ.

<functions_app_name> ಅನ್ನು ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್‌ಗಾಗಿ ಅನನ್ಯ ಹೆಸರಿನಿಂದ ಬದಲಿ ಮಾಡಿ. ಇದು ಜಾಗತಿಕವಾಗಿ ವಿಶಿಷ್ಟವಾಗಿರಬೇಕು ಏಕೆಂದರೆ ಇದು ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್‌ಗೆ ಪ್ರವೇಶಿಸಲು ಬಳಸಬಹುದಾದ URL ಭಾಗವಾಗುತ್ತದೆ. soil-moisture-sensor- ಅಥವಾ ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಅನನ್ಯ ಐಡಿಯಂಟಿಫೈಯರ್, ಕೆಲವು ಯಾದೃಚ್ಛಿಕ ಪದಗಳು ಅಥವಾ ನಿಮ್ಮ ಹೆಸರು ಸೇರಿಸಿ ಬಳಸಬಹುದು.

--functions-version 3 ಆಯ್ಕೆ Azure Functions ನ ಆವೃತ್ತಿಯನ್ನು 3 ಆಗಿ ಹೊಂದಿಸುತ್ತದೆ. ಆವೃತ್ತಿ 3 ಹೊಸದು.

--os-type Linux ಆಯ್ಕೆ ಫಂಕ್ಷನ್ಸ್ ರನ್‌ಟೈಮ್‌ಗೆ ಈ ಕಾರ್ಯನಿರ್ವಹಣೆಗಾಗಿ ಲಿನಕ್ಸ್ನೊಂದಿಗೆ OS ಅನ್ನು ಬಳಸಲು ತಿಳಿಸುತ್ತದೆ. ಫಂಕ್ಷನ್ಸ್ ಅನ್ನು ಲಿನಕ್ಸ್ನಲ್ಲಿಯೂ ಅಥವಾ ವಿಂಡೋಸ್‌ನಲ್ಲಿಯೂ ಹೋಸ್ಟ್ ಮಾಡಬಹುದು, ಭಾಷೆ ಅವಲಂಬಿಸಿ. Python ಆ್ಯಪ್ ಗಳು ಕೇವಲ ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ಮಾತ್ರ ಬೆಂಬಲಿತವಾಗಿವೆ.

ಕಾರ್ಯ - ನಿಮ್ಮ ಆ್ಯಪ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಅಪ್ಲೋಡ್ ಮಾಡು

ನೀವು ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ, local.settings.json ಫೈಲ್ ನಲ್ಲಿ ನಿಮ್ಮ IoT ಹಬ್ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್‌ಗಳಿಗೆ ಕೆಲವು ಸೆಟ್ಟಿಂಗ್ಸ್ ಅನ್ನು შენಿಸಿಕೊಂಡಿದ್ದೀರಿ. ಈವೆ ನಿಮ್ಮ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಗೆ Azure ನಲ್ಲಿ ಆಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಆಗಿ ಬರೆಯಬೇಕು, ಇದರಿಂದ ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಕೆ ಮಾಡಬಹುದು.

🎓 local.settings.json ಫೈಲ್ ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಮಾತ್ರ; ಮತ್ತು ಈ ಫೈಲ್ ಅನ್ನು GitHub ಮುಂತಾದ ಮೂಲ ನಿಯಂತ್ರಣದಲ್ಲಿ ಸೇರಿಸಬಾರದು. ಕ್ಲೌಡ್‌ಗೆ ನಿಯೋಜಿಸಿರುವಾಗ, ಆಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಗಳನ್ನು ಇಡಲಾಗುತ್ತದೆ. ಆಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಕೀ/ಮೌಲ್ಯ ಜೋಡಿಗಳಾಗಿದ್ದು, ಕ್ಲೌಡ್ ನಲ್ಲಿ ಹುಟ್ಟುಹೊಡೆಯಲ್ಪಡುವದು ಮತ್ತು ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಮೌಲ್ಯಗಳಿಂದ ನೀವು ಅಥವಾ ರನ್‌ಟೈಮ್ ನಿಮ್ಮ ಕೋಡ್‌ಗೆ ಅಥವಾ IoT ಹಬ್‌ಗೆ ಸಂಪರ್ಕ ಮಾಡಲು ಓದಲಾಗುತ್ತದೆ.

  1. ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಆಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ನಲ್ಲಿ IOT_HUB_CONNECTION_STRING ಸೆಟ್ಟಿಂಗ್ ನ್ನು ಹೊಂದಿಸಲು ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    az functionapp config appsettings set --resource-group soil-moisture-sensor \
                                          --name <functions_app_name> \
                                          --settings "IOT_HUB_CONNECTION_STRING=<connection string>"
    

<functions_app_name> ಅನ್ನು ನೀವು ಬಳಸಿದ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಹೆಸರಿನಿಂದ ಬದಲಿ ಮಾಡಿ.

<connection string> ಅನ್ನು ನಿಮ್ಮ local.settings.json ಫೈಲಿನ IOT_HUB_CONNECTION_STRING ಮೌಲ್ಯದೊಂದಿಗೆ ಬದಲಿ ಮಾಡಿ.

  1. ಮೇಲಿನ ಹಂತವನ್ನು ಪುನರಾವರ್ತಿ ಮಾಡಿ, ಆದರೆ REGISTRY_MANAGER_CONNECTION_STRING ಗೆ local.settings.json ಫೈಲಿನ ಹೊಂದಬೇಕರಾಗುವ ಮೌಲ್ಯವನ್ನು ಬಡಲಿ ಮಾಡಿ.

ನೀವು ಈ ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸಿದಾಗ, ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಗೆ ಎಲ್ಲಾ ಆಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಗಳ ಪಟ್ಟಿ ಕೂಡಾ ಹೊರಬರುತ್ತದೆ. ನಿಮ್ಮ ಮೌಲ್ಯಗಳು ಸರಿಯಾಗಿ ಹೊಂದಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಲು ಇದನ್ನು ಉಪಯೋಗಿಸಬಹುದು.

💁 ನೀವು AzureWebJobsStorage ಗೆ ಈಗಾಗಲೇ ಹೊಂದಿಸಿದ ಮೌಲ್ಯವನ್ನು ಕಾಣಬಹುದು. ನಿಮ್ಮ local.settings.json ಫೈಲ್‌ ನಲ್ಲಿ ಇದು ಸ್ಥಳೀಯ ಸಂಗ್ರಹ ಅನೂಕರಣಾರ್ಥದೆ ಬಳಸಲು ಹೊಂದಿದ್ದ ಮೌಲ್ಯ. ನೀವು ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಸೃಷ್ಟಿಸಿದಾಗ ಸಂಗ್ರಹ ಖಾತೆಯನ್ನು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ನೀಡಿದೀರಿ, ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಈ ಸೆಟ್ಟಿಂಗ್ ನಲ್ಲಿ ಹೊಂದಿಗೊಳ್ಳುತ್ತದೆ.

ಕಾರ್ಯ - ನಿಮ್ಮ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ಕ್ಲೌಡ್ ಗೆ ನಿಯೋಜಿಸು

ಈಗ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಸಿದ್ಧವಾಗಿದೆ, ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ನಿಯೋಜಿಸಬಹುದು.

  1. VS ಕೋಡ್ ಟರ್ಮಿನಲ್ ನಿಂದ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆ ಮಾಡಿ ನಿಮ್ಮ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಅನ್ನು ಪ್ರಕಟಿಸು:

    func azure functionapp publish <functions_app_name>
    

<functions_app_name> ಅನ್ನು ನೀವು ಬಳಸಿದ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಹೆಸರಿನಿಂದ ಬದಲಿ ಮಾಡಿ.

ಕೋಡ್ ಪ್ಯಾಕೇಜ್ ಆಗಿ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್ ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಅಲ್ಲಿ ಇದು ನಿಯೋಜಿಸಲ್ಪಟ್ಟು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಬಹಳಷ್ಟು ಕಾನ್ಸೋಲ್ ಔಟ್ ಪಟುಟ್ ಬರುತ್ತದೆ, ನಿಯೋಜನೆಯ ದೃಢೀಕರಣ ಮತ್ತು ನಿಯೋಜಿಸಲಾದ ಫಂಕ್ಷನ್ಸ್ ಪಟ್ಟಿ ಮೂಲಕ ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ. ಈ ಪ್ರಕರಣದಲ್ಲಿ ಪಟ್ಟಿ ಟ್ರಿಗ್ಗರ್ ಮಾತ್ರ ಸೇರಿರುತ್ತದೆ.

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in soil-moisture-sensor:
    iot-hub-trigger - [eventHubTrigger]

ನಿಮ್ಮ IoT ಸಾಧನದಲ್ಲಿ ಚಾಲನೆ ಇರಲಿ. ಮಣ್ಣಿನ ತಂಪಾಗು ಮಟ್ಟವನ್ನು ಬದಲಾಯಿಸಿ ಅಥವಾ ಸಂವೇದಕವನ್ನು ಮಣ್ಣಿನ ಒಳಗೆ ಮತ್ತು ಹೊರಗೆ ಸರಿಸಿ. ಮಣ್ಣು ತಂಪಾಗುವಿಕೆ ಬದಲಾಗುವಂತೆ ರಿಲೇ ಆನ್ ಮತ್ತು ಆಫ್ ಆಗುವುದು ಕಾಣಬಹುದು.


🚀 ಸವಾಲು

ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ, ನೀವು ರಿಲೇ ಸಮಯನಿಯಂತ್ರಣವನ್ನು MQTT ಸಂದೇಶಗಳ ಸ್ವೀಕಾರವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುವ ಮೂಲಕ ನಿರ್ವಹಿಸಿಕೊಂಡಿದ್ದಿರಿ, ರಿಲೇ ಆನ್ ಆಗಿದ್ದಾಗ ಮತ್ತು ತಾತ್ಕಾಲಿಕವಾಗಿ ಆಫ್ ಆದ ನಂತರ. ನೀವು ಇಲ್ಲಿ ಈ ವಿಧಾನವನ್ನು ಬಳಸಲಾಗದು - ನೀವು IoT ಹಬ್ ಟ್ರಿಗರ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

ನೀವು ನಿಮ್ಮ ಫಂಕ್ಷನ್ಸ್ ಆ್ಯಪ್‌ನಲ್ಲಿ ಇದನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಬಹುದು ಎಂಬುದರ ಕುರಿತು ವಿಭಿನ್ನ ಮಾಡುಮಾಡಿನ ಬಗ್ಗೆ ಯೋಚಿಸಿ.

ಪಾಠದ ನಂತರದ ಕ್ವಿಜ್

Post-lecture quiz

ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ

ನಿಯೋಜನೆ

Add manual relay control


ಅಸ್ಪಷ್ಟತೆ ಸೂಚನೆ:
ಈ ದಾಖಲೆ ಅನ್ನು AI ಅನುವಾದ ಸೇವೆ Co-op Translator ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನಾದರೂ ಯತ್ನಿಸುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಮಾನ್ಯತೆಗಳಿರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ದಾಖಲೆವೇ ಅಧಿಕೃತ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕಾಗಿದೆ. ಮಹತ್ವದ ಮಾಹಿತಿಗೆ ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಗ್ರಹಿಕೆಗಳಿಗಾಗಿ ನಾವು ಜವಾಬ್ದಾರರಾಗಿರುವುದಿಲ್ಲ.