46 KiB
ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਲਾਜਿਕ ਨੂੰ ਕਲਾਉਡ ਵਿੱਚ ਮਾਈਗ੍ਰੇਟ ਕਰੋ
ਸਕੈਚਨੋਟ ਨਿਤਿਆ ਨਰਸਿੰਮਨ ਦੁਆਰਾ। ਵੱਡੇ ਵਰਜਨ ਲਈ ਚਿੱਤਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
ਇਹ ਪਾਠ IoT ਫਾਰ ਬਿਗਿਨਰਜ਼ ਪ੍ਰੋਜੈਕਟ 2 - ਡਿਜ਼ਿਟਲ ਖੇਤੀਬਾੜੀ ਸੀਰੀਜ਼ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਮਾਈਕਰੋਸਾਫਟ ਰੀਐਕਟਰ ਤੋਂ ਸਿਖਾਇਆ ਗਿਆ ਸੀ।
ਪਾਠ ਤੋਂ ਪਹਿਲਾਂ ਕਵੀਜ਼
ਪਰਿਚਯ
ਪਿਛਲੇ ਪਾਠ ਵਿੱਚ, ਤੁਸੀਂ ਸਿੱਖਿਆ ਕਿ ਕਿਵੇਂ ਆਪਣੇ ਪੌਦੇ ਦੀ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੀ ਨਿਗਰਾਨੀ ਅਤੇ ਰੀਲੇ ਕੰਟਰੋਲ ਨੂੰ ਕਲਾਉਡ-ਅਧਾਰਿਤ IoT ਸੇਵਾ ਨਾਲ ਜੋੜਨਾ ਹੈ। ਅਗਲਾ ਕਦਮ ਰੀਲੇ ਦੇ ਸਮੇਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਵਾਲੇ ਸਰਵਰ ਕੋਡ ਨੂੰ ਕਲਾਉਡ ਵਿੱਚ ਮਾਈਗ੍ਰੇਟ ਕਰਨਾ ਹੈ। ਇਸ ਪਾਠ ਵਿੱਚ ਤੁਸੀਂ ਸਿੱਖੋਗੇ ਕਿ ਇਹ ਸਰਵਰਲੈੱਸ ਫੰਕਸ਼ਨਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਵੇਂ ਕਰਨਾ ਹੈ।
ਇਸ ਪਾਠ ਵਿੱਚ ਅਸੀਂ ਕਵਰ ਕਰਾਂਗੇ:
- ਸਰਵਰਲੈੱਸ ਕੀ ਹੈ?
- ਸਰਵਰਲੈੱਸ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਓ
- IoT ਹੱਬ ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਬਣਾਓ
- ਸਰਵਰਲੈੱਸ ਕੋਡ ਤੋਂ ਡਾਇਰੈਕਟ ਮੈਥਡ ਰਿਕਵੈਸਟ ਭੇਜੋ
- ਆਪਣੇ ਸਰਵਰਲੈੱਸ ਕੋਡ ਨੂੰ ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕਰੋ
ਸਰਵਰਲੈੱਸ ਕੀ ਹੈ?
ਸਰਵਰਲੈੱਸ ਜਾਂ ਸਰਵਰਲੈੱਸ ਕੰਪਿਊਟਿੰਗ ਵਿੱਚ ਛੋਟੇ ਕੋਡ ਦੇ ਬਲੌਕ ਬਣਾਉਣ ਸ਼ਾਮਲ ਹਨ ਜੋ ਵੱਖ-ਵੱਖ ਪ੍ਰਕਾਰ ਦੇ ਇਵੈਂਟਸ ਦੇ ਜਵਾਬ ਵਿੱਚ ਕਲਾਉਡ ਵਿੱਚ ਚਲਦੇ ਹਨ। ਜਦੋਂ ਇਵੈਂਟ ਹੁੰਦਾ ਹੈ, ਤੁਹਾਡਾ ਕੋਡ ਚਲਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਇਵੈਂਟ ਬਾਰੇ ਡਾਟਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। ਇਹ ਇਵੈਂਟ ਵੱਖ-ਵੱਖ ਚੀਜ਼ਾਂ ਤੋਂ ਹੋ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਵੈੱਬ ਰਿਕਵੈਸਟ, ਕਤਾਰ ਵਿੱਚ ਪਾਈ ਗਈਆਂ ਸੁਨੇਹੇ, ਡਾਟਾਬੇਸ ਵਿੱਚ ਡਾਟਾ ਵਿੱਚ ਬਦਲਾਅ, ਜਾਂ IoT ਡਿਵਾਈਸਾਂ ਦੁਆਰਾ IoT ਸੇਵਾ ਨੂੰ ਭੇਜੇ ਗਏ ਸੁਨੇਹੇ।
💁 ਜੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਡਾਟਾਬੇਸ ਟ੍ਰਿਗਰ ਵਰਤੇ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਇੱਕੋ ਜਿਹੇ ਸਮਝ ਸਕਦੇ ਹੋ, ਜਿੱਥੇ ਕੋਡ ਇਵੈਂਟ ਦੁਆਰਾ ਟ੍ਰਿਗਰ ਹੁੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਰੋਅ ਸ਼ਾਮਲ ਕਰਨਾ।
ਤੁਹਾਡਾ ਕੋਡ ਸਿਰਫ਼ ਉਸ ਸਮੇਂ ਚਲਦਾ ਹੈ ਜਦੋਂ ਇਵੈਂਟ ਹੁੰਦਾ ਹੈ, ਹੋਰ ਸਮਿਆਂ ਵਿੱਚ ਤੁਹਾਡਾ ਕੋਡ ਐਕਟਿਵ ਨਹੀਂ ਰਹਿੰਦਾ। ਇਹ ਸਰਵਰਲੈੱਸ ਨੂੰ ਬਹੁਤ ਸਕੇਲਬਲ ਬਣਾਉਂਦਾ ਹੈ - ਜੇਕਰ ਕਈ ਇਵੈਂਟ ਇੱਕੋ ਸਮੇਂ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਕਲਾਉਡ ਪ੍ਰਦਾਤਾ ਤੁਹਾਡੇ ਫੰਕਸ਼ਨ ਨੂੰ ਜਿੰਨੀ ਵਾਰ ਚਾਹੀਦਾ ਹੈ ਚਲਾ ਸਕਦਾ ਹੈ। ਇਸਦਾ ਨੁਕਸਾਨ ਇਹ ਹੈ ਕਿ ਜੇਕਰ ਤੁਹਾਨੂੰ ਇਵੈਂਟਸ ਦੇ ਵਿਚਕਾਰ ਜਾਣਕਾਰੀ ਸਾਂਝੀ ਕਰਨੀ ਹੋਵੇ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਮੈਮੋਰੀ ਵਿੱਚ ਸਟੋਰ ਕਰਨ ਦੀ ਬਜਾਏ ਕਿਤੇ ਹੋਰ ਜਿਵੇਂ ਡਾਟਾਬੇਸ ਵਿੱਚ ਸਟੋਰ ਕਰਨਾ ਪਵੇਗਾ।
ਤੁਹਾਡਾ ਕੋਡ ਇੱਕ ਫੰਕਸ਼ਨ ਵਜੋਂ ਲਿਖਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਇਵੈਂਟ ਬਾਰੇ ਵੇਰਵੇ ਇੱਕ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਲੈਂਦਾ ਹੈ। ਤੁਸੀਂ ਇਹ ਸਰਵਰਲੈੱਸ ਫੰਕਸ਼ਨ ਲਿਖਣ ਲਈ ਕਈ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।
🎓 ਸਰਵਰਲੈੱਸ ਨੂੰ ਫੰਕਸ਼ਨਜ਼ ਐਜ਼ ਅ ਸਰਵਿਸ (FaaS) ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਹਰ ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਨੂੰ ਕੋਡ ਵਿੱਚ ਇੱਕ ਫੰਕਸ਼ਨ ਵਜੋਂ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਨਾਮ ਦੇ ਬਾਵਜੂਦ, ਸਰਵਰਲੈੱਸ ਅਸਲ ਵਿੱਚ ਸਰਵਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਨਾਮ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ ਇੱਕ ਡਿਵੈਲਪਰ ਵਜੋਂ ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਸਰਵਰਾਂ ਦੀ ਚਿੰਤਾ ਨਹੀਂ ਹੁੰਦੀ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਹਾਡਾ ਕੋਡ ਚਲਾਉਣ ਲਈ ਲੋੜੀਂਦਾ ਹੈ। ਕਲਾਉਡ ਪ੍ਰਦਾਤਾ ਇੱਕ ਸਰਵਰਲੈੱਸ ਰੰਟਾਈਮ ਚਲਾਉਂਦਾ ਹੈ ਜੋ ਸਰਵਰਾਂ, ਨੈਟਵਰਕਿੰਗ, ਸਟੋਰੇਜ, ਸੀਪੀਯੂ, ਮੈਮੋਰੀ ਆਦਿ ਨੂੰ ਮੈਨੇਜ ਕਰਦਾ ਹੈ। ਇਸ ਮਾਡਲ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਸਰਵਰ ਪ੍ਰਤੀ ਭੁਗਤਾਨ ਨਹੀਂ ਕਰਦੇ, ਸਗੋਂ ਤੁਸੀਂ ਆਪਣੇ ਕੋਡ ਦੇ ਚਲਣ ਦੇ ਸਮੇਂ ਅਤੇ ਵਰਤੀ ਗਈ ਮੈਮੋਰੀ ਦੇ ਅਧਾਰ 'ਤੇ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ।
💰 ਸਰਵਰਲੈੱਸ ਕਲਾਉਡ ਵਿੱਚ ਕੋਡ ਚਲਾਉਣ ਦੇ ਸਭ ਤੋਂ ਸਸਤੇ ਤਰੀਕਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ, ਲਿਖਣ ਦੇ ਸਮੇਂ, ਇੱਕ ਕਲਾਉਡ ਪ੍ਰਦਾਤਾ ਤੁਹਾਡੇ ਸਾਰੇ ਸਰਵਰਲੈੱਸ ਫੰਕਸ਼ਨਜ਼ ਨੂੰ ਮਹੀਨੇ ਵਿੱਚ 1,000,000 ਵਾਰ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਬਿਨਾਂ ਕਿਸੇ ਖਰਚੇ ਦੇ, ਅਤੇ ਇਸ ਤੋਂ ਬਾਅਦ ਉਹ ਹਰ 1,000,000 ਚਲਾਉਣ ਲਈ US$0.20 ਚਾਰਜ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਤੁਹਾਡਾ ਕੋਡ ਨਹੀਂ ਚਲ ਰਿਹਾ ਹੁੰਦਾ, ਤਾਂ ਤੁਸੀਂ ਭੁਗਤਾਨ ਨਹੀਂ ਕਰਦੇ।
IoT ਡਿਵੈਲਪਰ ਵਜੋਂ, ਸਰਵਰਲੈੱਸ ਮਾਡਲ ਆਦਰਸ਼ ਹੈ। ਤੁਸੀਂ ਇੱਕ ਫੰਕਸ਼ਨ ਲਿਖ ਸਕਦੇ ਹੋ ਜੋ ਕਿਸੇ ਵੀ IoT ਡਿਵਾਈਸ ਤੋਂ ਭੇਜੇ ਗਏ ਸੁਨੇਹਿਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੋ ਤੁਹਾਡੀ ਕਲਾਉਡ-ਹੋਸਟ ਕੀਤੀ IoT ਸੇਵਾ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ। ਤੁਹਾਡਾ ਕੋਡ ਸਾਰੇ ਭੇਜੇ ਗਏ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੰਭਾਲੇਗਾ, ਪਰ ਸਿਰਫ਼ ਜਦੋਂ ਲੋੜ ਹੋਵੇ।
✅ ਉਸ ਕੋਡ ਨੂੰ ਮੁੜ ਦੇਖੋ ਜੋ ਤੁਸੀਂ MQTT ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੁਣਨ ਵਾਲੇ ਸਰਵਰ ਕੋਡ ਵਜੋਂ ਲਿਖਿਆ ਸੀ। ਇਹ ਕਲਾਉਡ ਵਿੱਚ ਸਰਵਰਲੈੱਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਵੇਂ ਚੱਲ ਸਕਦਾ ਹੈ? ਤੁਹਾਡੇ ਵਿਚਾਰ ਵਿੱਚ ਇਸਨੂੰ ਸਰਵਰਲੈੱਸ ਕੰਪਿਊਟਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਕਿਵੇਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ?
💁 ਸਰਵਰਲੈੱਸ ਮਾਡਲ ਹੋਰ ਕਲਾਉਡ ਸੇਵਾਵਾਂ ਵਿੱਚ ਵੀ ਜਾ ਰਿਹਾ ਹੈ, ਕੋਡ ਚਲਾਉਣ ਤੋਂ ਇਲਾਵਾ। ਉਦਾਹਰਣ ਵਜੋਂ, ਕਲਾਉਡ ਵਿੱਚ ਸਰਵਰਲੈੱਸ ਡਾਟਾਬੇਸ ਉਪਲਬਧ ਹਨ ਜੋ ਸਰਵਰਲੈੱਸ ਪ੍ਰਾਈਸਿੰਗ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਜਿੱਥੇ ਤੁਸੀਂ ਡਾਟਾਬੇਸ 'ਤੇ ਕੀਤੇ ਗਏ ਰਿਕਵੈਸਟ ਪ੍ਰਤੀ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਕਵੈਰੀ ਜਾਂ ਇੰਸਰਟ।
ਸਰਵਰਲੈੱਸ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਓ
ਮਾਈਕਰੋਸਾਫਟ ਦੀ ਸਰਵਰਲੈੱਸ ਕੰਪਿਊਟਿੰਗ ਸੇਵਾ ਨੂੰ Azure Functions ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਛੋਟੀ ਵੀਡੀਓ ਵਿੱਚ Azure Functions ਦਾ ਝਲਕ ਦਿੱਤਾ ਗਿਆ ਹੈ।
🎥 ਉੱਪਰ ਦਿੱਤੇ ਚਿੱਤਰ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਵੀਡੀਓ ਦੇਖੋ
✅ ਕੁਝ ਸਮਾਂ ਲਓ ਅਤੇ ਮਾਈਕਰੋਸਾਫਟ Azure Functions ਦਸਤਾਵੇਜ਼ ਵਿੱਚ Azure Functions ਦਾ ਝਲਕ ਪੜ੍ਹੋ।
Azure Functions ਲਿਖਣ ਲਈ, ਤੁਸੀਂ ਆਪਣੀ ਪਸੰਦ ਦੀ ਭਾਸ਼ਾ ਵਿੱਚ ਇੱਕ Azure Functions ਐਪ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ। Azure Functions ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ Python, JavaScript, TypeScript, C#, F#, Java, ਅਤੇ Powershell ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
💁 Azure Functions ਕਸਟਮ ਹੈਂਡਲਰਜ਼ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਕੋਈ ਵੀ ਭਾਸ਼ਾ ਵਰਤ ਸਕਦੇ ਹੋ ਜੋ HTTP ਰਿਕਵੈਸਟ ਨੂੰ ਸਮਰਥਨ ਕਰਦੀ ਹੈ। ⚠️ ਜੇ ਤੁਹਾਨੂੰ ਫਾਇਰਵਾਲ ਸੂਚਨਾ ਮਿਲਦੀ ਹੈ, ਤਾਂ ਪਹੁੰਚ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਕਿਉਂਕਿ
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 ਵਿੱਚ ਇਸ ਸਵਾਲ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ, ਇਹ ਚੇਤਾਵਨੀ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
-
Functions ਐਪ ਨੂੰ
ctrl+c
ਦਬਾ ਕੇ ਬੰਦ ਕਰੋ। -
ਮੌਜੂਦਾ ਫੋਲਡਰ ਨੂੰ VS Code ਵਿੱਚ ਖੋਲ੍ਹੋ, ਜਾਂ ਤਾਂ VS Code ਖੋਲ੍ਹ ਕੇ ਇਸ ਫੋਲਡਰ ਨੂੰ ਖੋਲ੍ਹੋ, ਜਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ:
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?
ਇਸ ਨੋਟੀਫਿਕੇਸ਼ਨ ਵਿੱਚੋਂ Yes ਚੁਣੋ।
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ VS Code ਟਰਮੀਨਲ ਵਿੱਚ Python ਵਰਚੁਅਲ ਐਨਵਾਇਰਮੈਂਟ ਚੱਲ ਰਿਹਾ ਹੈ। ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਸਨੂੰ ਬੰਦ ਕਰਕੇ ਮੁੜ ਚਾਲੂ ਕਰੋ।
IoT Hub ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਬਣਾਓ
Functions ਐਪ ਤੁਹਾਡੇ ਸਰਵਰਲੈਸ ਕੋਡ ਦਾ ਸ਼ੈੱਲ ਹੈ। IoT Hub ਇਵੈਂਟਸ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ, ਤੁਸੀਂ ਇਸ ਐਪ ਵਿੱਚ ਇੱਕ IoT Hub ਟ੍ਰਿਗਰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਟ੍ਰਿਗਰ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਦੇ ਸਟ੍ਰੀਮ ਨਾਲ ਜੁੜਨ ਦੀ ਲੋੜ ਰੱਖਦਾ ਹੈ ਜੋ IoT Hub ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦੇ ਹਨ। ਇਹ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਹਾਡੇ ਟ੍ਰਿਗਰ ਨੂੰ IoT Hub ਦੇ event hub compatible endpoint ਨਾਲ ਜੁੜਨ ਦੀ ਲੋੜ ਹੈ।
IoT Hub ਇੱਕ ਹੋਰ Azure ਸੇਵਾ 'Azure Event Hubs' ਦੇ ਅਧਾਰ 'ਤੇ ਬਣਾਇਆ ਗਿਆ ਹੈ। Event Hubs ਇੱਕ ਸੇਵਾ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। IoT Hub ਇਸਨੂੰ IoT ਡਿਵਾਈਸਾਂ ਲਈ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਵਧਾਉਂਦਾ ਹੈ। IoT Hub ਤੋਂ ਸੁਨੇਹੇ ਪੜ੍ਹਨ ਲਈ ਤੁਹਾਡਾ ਜੁੜਨ ਦਾ ਤਰੀਕਾ Event Hubs ਵਰਤਣ ਦੇ ਤਰੀਕੇ ਵਰਗਾ ਹੀ ਹੈ।
✅ ਕੁਝ ਖੋਜ ਕਰੋ: Azure Event Hubs ਦਸਤਾਵੇਜ਼ ਵਿੱਚ Event Hubs ਦਾ ਝਲਕ ਪੜ੍ਹੋ। ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ IoT Hub ਨਾਲ ਕਿਵੇਂ ਤੁਲਨਾਤਮਕ ਹਨ?
IoT ਡਿਵਾਈਸ ਨੂੰ IoT Hub ਨਾਲ ਜੁੜਨ ਲਈ ਇੱਕ ਗੁਪਤ ਕੁੰਜੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਸਿਰਫ਼ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਡਿਵਾਈਸਾਂ ਹੀ ਜੁੜ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਹੀ ਸਿਧਾਂਤ ਸੁਨੇਹੇ ਪੜ੍ਹਨ ਲਈ ਜੁੜਨ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ। ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਇੱਕ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਦੀ ਲੋੜ ਹੋਵੇਗੀ ਜਿਸ ਵਿੱਚ ਇੱਕ ਗੁਪਤ ਕੁੰਜੀ ਅਤੇ IoT Hub ਦੇ ਵੇਰਵੇ ਸ਼ਾਮਲ ਹਨ।
💁 ਡਿਫਾਲਟ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਜਿਸਨੂੰ ਤੁਸੀਂ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, iothubowner ਅਧਿਕਾਰਾਂ ਦੇ ਨਾਲ ਆਉਂਦੀ ਹੈ, ਜੋ ਇਸਨੂੰ ਵਰਤਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਕੋਡ ਨੂੰ IoT Hub 'ਤੇ ਪੂਰੇ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ। ਆਦਰਸ਼ ਤੌਰ 'ਤੇ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਲੋੜੀਂਦੇ ਅਧਿਕਾਰਾਂ ਦੇ ਸਭ ਤੋਂ ਘੱਟ ਪੱਧਰ ਨਾਲ ਜੁੜਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਅਗਲੇ ਪਾਠ ਵਿੱਚ ਕਵਰ ਕੀਤਾ ਜਾਵੇਗਾ।
ਜਦੋਂ ਤੁਹਾਡਾ ਟ੍ਰਿਗਰ ਜੁੜ ਜਾਂਦਾ ਹੈ, ਤਾਂ IoT Hub ਨੂੰ ਭੇਜੇ ਗਏ ਹਰ ਸੁਨੇਹੇ ਲਈ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਕੋਡ ਨੂੰ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਭਾਵੇਂ ਇਹ ਸੁਨੇਹਾ ਕਿਸੇ ਵੀ ਡਿਵਾਈਸ ਦੁਆਰਾ ਭੇਜਿਆ ਗਿਆ ਹੋਵੇ। ਟ੍ਰਿਗਰ ਨੂੰ ਸੁਨੇਹਾ ਇੱਕ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
ਕੰਮ - Event Hub compatible endpoint ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਪ੍ਰਾਪਤ ਕਰੋ
-
VS Code ਟਰਮੀਨਲ ਤੋਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ ਤਾਂ ਜੋ IoT Hub ਦੇ Event Hub compatible endpoint ਲਈ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਸਕੇ:
az iot hub connection-string show --default-eventhub \ --output table \ --hub-name <hub_name>
<hub_name>
ਨੂੰ ਆਪਣੇ IoT Hub ਲਈ ਵਰਤੇ ਗਏ ਨਾਮ ਨਾਲ ਬਦਲੋ। -
VS Code ਵਿੱਚ
local.settings.json
ਫਾਇਲ ਖੋਲ੍ਹੋ।Values
ਸੈਕਸ਼ਨ ਦੇ ਅੰਦਰ ਹੇਠਾਂ ਦਿੱਤਾ ਵਾਧੂ ਮੁੱਲ ਸ਼ਾਮਲ ਕਰੋ:"IOT_HUB_CONNECTION_STRING": "<connection string>"
<connection string>
ਨੂੰ ਪਿਛਲੇ ਕਦਮ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਮੁੱਲ ਨਾਲ ਬਦਲੋ। ਇਹ ਵੈਧ JSON ਬਣਾਉਣ ਲਈ ਉੱਪਰ ਦੀ ਲਾਈਨ ਦੇ ਬਾਅਦ ਇੱਕ ਕਾਮਾ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।
ਕੰਮ - ਇੱਕ ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਬਣਾਓ
ਹੁਣ ਤੁਸੀਂ ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਬਣਾਉਣ ਲਈ ਤਿਆਰ ਹੋ।
-
VS Code ਟਰਮੀਨਲ ਤੋਂ
soil-moisture-trigger
ਫੋਲਡਰ ਦੇ ਅੰਦਰ ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ:func new --name iot-hub-trigger --template "Azure Event Hub trigger"
ਇਹ ਇੱਕ ਨਵਾਂ Function
iot-hub-trigger
ਬਣਾਉਂਦਾ ਹੈ। ਟ੍ਰਿਗਰ IoT Hub ਦੇ Event Hub compatible endpoint ਨਾਲ ਜੁੜੇਗਾ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇੱਕ Event Hub ਟ੍ਰਿਗਰ ਵਰਤ ਸਕੋ। ਕੋਈ ਵਿਸ਼ੇਸ਼ IoT Hub ਟ੍ਰਿਗਰ ਨਹੀਂ ਹੈ।
soil-moisture-trigger
ਫੋਲਡਰ ਦੇ ਅੰਦਰ ਇੱਕ ਫੋਲਡਰ iot-hub-trigger
ਬਣਾਇਆ ਜਾਵੇਗਾ ਜਿਸ ਵਿੱਚ ਇਹ ਫੰਕਸ਼ਨ ਸ਼ਾਮਲ ਹੋਵੇਗਾ। ਇਸ ਫੋਲਡਰ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਫਾਇਲਾਂ ਸ਼ਾਮਲ ਹੋਣਗੀਆਂ:
-
__init__.py
- ਇਹ Python ਕੋਡ ਫਾਇਲ ਹੈ ਜੋ ਟ੍ਰਿਗਰ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੀ ਹੈ, Python ਮੋਡਿਊਲ ਬਣਾਉਣ ਲਈ ਮਿਆਰੀ ਫਾਇਲ ਨਾਮ ਕਨਵੈਨਸ਼ਨ ਵਰਤਦੀ ਹੈ।ਇਸ ਫਾਇਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਹੋਵੇਗਾ:
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 Hub ਤੋਂ ਆਉਣ ਵਾਲੇ ਇਵੈਂਟਸ ਨਾਲ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਸ ਫੰਕਸ਼ਨ ਵਿੱਚevent
ਨਾਮਕ ਇੱਕ ਪੈਰਾਮੀਟਰ ਹੁੰਦਾ ਹੈ ਜੋEventHubEvent
ਨੂੰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। ਹਰ ਵਾਰ ਜਦੋਂ IoT Hub ਨੂੰ ਸੁਨੇਹਾ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਫੰਕਸ਼ਨevent
ਦੇ ਤੌਰ 'ਤੇ ਸੁਨੇਹਾ ਅਤੇ ਉਹ ਗੁਣ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਜੋ ਪਿਛਲੇ ਪਾਠ ਵਿੱਚ ਵੇਖੇ ਗਏ annotations ਦੇ ਸਮਾਨ ਹਨ।ਇਸ ਫੰਕਸ਼ਨ ਦਾ ਮੁੱਖ ਹਿੱਸਾ ਇਵੈਂਟ ਨੂੰ ਲਾਗ ਕਰਦਾ ਹੈ।
-
function.json
- ਇਹ ਟ੍ਰਿਗਰ ਲਈ ਸੰਰਚਨਾ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। ਮੁੱਖ ਸੰਰਚਨਾbindings
ਨਾਮਕ ਸੈਕਸ਼ਨ ਵਿੱਚ ਹੈ। Binding Azure Functions ਅਤੇ ਹੋਰ Azure ਸੇਵਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਕਨੈਕਸ਼ਨ ਲਈ ਸ਼ਬਦ ਹੈ।💁 ਤੁਸੀਂ ਆਉਟਪੁੱਟ bindings ਵੀ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ ਫੰਕਸ਼ਨ ਦਾ ਆਉਟਪੁੱਟ ਕਿਸੇ ਹੋਰ ਸੇਵਾ ਨੂੰ ਭੇਜਿਆ ਜਾਵੇ। ਉਦਾਹਰਨ ਲਈ, ਤੁਸੀਂ ਡਾਟਾਬੇਸ ਲਈ ਇੱਕ ਆਉਟਪੁੱਟ binding ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ IoT Hub ਇਵੈਂਟ ਨੂੰ ਫੰਕਸ਼ਨ ਤੋਂ ਵਾਪਸ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਇਹ ਸਵੈਚਾਲਿਤ ਤੌਰ 'ਤੇ ਡਾਟਾਬੇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾਵੇਗਾ।
✅ ਕੁਝ ਖੋਜ ਕਰੋ: Azure Functions triggers and bindings concepts ਦਸਤਾਵੇਜ਼ ਵਿੱਚ bindings ਬਾਰੇ ਪੜ੍ਹੋ।
bindings
ਸੈਕਸ਼ਨ ਵਿੱਚ binding ਲਈ ਸੰਰਚਨਾ ਸ਼ਾਮਲ ਹੈ। ਦਿਲਚਸਪ ਮੁੱਲ ਹਨ:-
"type": "eventHubTrigger"
- ਇਹ ਫੰਕਸ਼ਨ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਇਸਨੂੰ Event Hub ਤੋਂ ਇਵੈਂਟਸ ਸੁਣਨ ਦੀ ਲੋੜ ਹੈ। -
"name": "events"
- ਇਹ Event Hub ਇਵੈਂਟਸ ਲਈ ਪੈਰਾਮੀਟਰ ਨਾਮ ਹੈ। ਇਹ Python ਕੋਡ ਵਿੱਚmain
ਫੰਕਸ਼ਨ ਵਿੱਚ ਪੈਰਾਮੀਟਰ ਨਾਮ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। -
"direction": "in"
- ਇਹ ਇੱਕ ਇਨਪੁੱਟ binding ਹੈ, ਇਵੈਂਟ Hub ਤੋਂ ਡਾਟਾ ਫੰਕਸ਼ਨ ਵਿੱਚ ਆਉਂਦਾ ਹੈ। -
"connection": ""
- ਇਹ ਸੰਰਚਨਾ ਸੈਟਿੰਗ ਤੋਂ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਨੂੰ ਪੜ੍ਹਨ ਲਈ ਨਾਮ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ।💁 ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਨੂੰ
function.json
ਫਾਇਲ ਵਿੱਚ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਇਸਨੂੰ ਸੈਟਿੰਗ ਤੋਂ ਪੜ੍ਹਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
-
-
Azure Functions ਟੈਂਪਲੇਟ ਵਿੱਚ ਇੱਕ ਬੱਗ ਦੇ ਕਾਰਨ,
function.json
ਵਿੱਚcardinality
ਫੀਲਡ ਲਈ ਗਲਤ ਮੁੱਲ ਹੈ। ਇਸ ਮੁੱਲ ਨੂੰmany
ਤੋਂone
ਵਿੱਚ ਅਪਡੇਟ ਕਰੋ:"cardinality": "one",
-
"connection"
ਦਾ ਮੁੱਲfunction.json
ਫਾਇਲ ਵਿੱਚ ਅਪਡੇਟ ਕਰੋ ਤਾਂ ਜੋ ਇਹlocal.settings.json
ਫਾਇਲ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤੇ ਨਵੇਂ ਮੁੱਲ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੇ:"connection": "IOT_HUB_CONNECTION_STRING",
💁 ਯਾਦ ਰੱਖੋ - ਇਹ ਸੈਟਿੰਗ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਅਸਲ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਸ਼ਾਮਲ ਕਰਨੀ।
-
ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਵਿੱਚ
eventHubName
ਮੁੱਲ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈfunction.json
ਫਾਇਲ ਵਿੱਚ ਇਸ ਲਈ ਮੁੱਲ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਇਸ ਮੁੱਲ ਨੂੰ ਖਾਲੀ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਅਪਡੇਟ ਕਰੋ:"eventHubName": "",
ਕੰਮ - ਇਵੈਂਟ ਟ੍ਰਿਗਰ ਚਲਾਓ
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ IoT Hub ਇਵੈਂਟ ਮਾਨੀਟਰ ਨਹੀਂ ਚਲਾ ਰਹੇ।
💁 ਕਈ ਐਪਸ IoT Hub endpoints ਨਾਲ ਵੱਖ-ਵੱਖ consumer groups ਵਰਤ ਕੇ ਜੁੜ ਸਕਦੇ ਹਨ।
-
Functions ਐਪ ਚਲਾਉਣ ਲਈ, VS Code ਟਰਮੀਨਲ ਤੋਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ:
func start
Functions ਐਪ ਸ਼ੁਰੂ ਹੋਵੇਗੀ, ਅਤੇ
iot-hub-trigger
ਫੰਕਸ਼ਨ ਨੂੰ ਖੋਜੇਗੀ। ਇਹ ਕੋਡlocal.settings.json
ਫਾਇਲ ਤੋਂREGISTRY_MANAGER_CONNECTION_STRING
ਲੋਡ ਕਰਦਾ ਹੈ। ਇਸ ਫਾਇਲ ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਮੁੱਲ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਾਂ ਵਜੋਂ ਉਪਲਬਧ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਇਨ੍ਹਾਂ ਨੂੰos.environ
ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਸਾਰੇ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਾਂ ਦੀ ਡਿਕਸ਼ਨਰੀ ਵਾਪਸ ਕਰਦਾ ਹੈ।
💁 ਜਦੋਂ ਇਹ ਕੋਡ ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ
local.settings.json
ਫਾਇਲ ਵਿੱਚ ਦਿੱਤੇ ਮੁੱਲ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਵਜੋਂ ਸੈਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਇਨ੍ਹਾਂ ਨੂੰ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਾਂ ਤੋਂ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਫਿਰ ਕੋਡ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰਜਿਸਟਰੀ ਮੈਨੇਜਰ ਹੈਲਪਰ ਕਲਾਸ ਦਾ ਇੱਕ ਇੰਸਟੈਂਸ ਬਣਾਉਂਦਾ ਹੈ।
-
ਇਸ ਤੋਂ ਹੇਠਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:
registry_manager.invoke_device_method(device_id, direct_method) logging.info('Direct method request sent!')
ਇਹ ਕੋਡ ਰਜਿਸਟਰੀ ਮੈਨੇਜਰ ਨੂੰ ਉਹ ਡਾਇਰੈਕਟ ਮੈਥਡ ਰਿਕਵੈਸਟ ਭੇਜਣ ਲਈ ਕਹਿੰਦਾ ਹੈ ਜੋ ਟੈਲੀਮੀਟਰੀ ਭੇਜਣ ਵਾਲੇ ਡਿਵਾਈਸ ਨੂੰ ਭੇਜਿਆ ਜਾਵੇ।
💁 ਐਪ ਦੇ ਪਿਛਲੇ ਪਾਠਾਂ ਵਿੱਚ ਬਣਾਏ ਗਏ ਵਰਜਨਾਂ ਵਿੱਚ, ਜਿੱਥੇ MQTT ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਸੀ, ਰੀਲੇ ਕੰਟਰੋਲ ਕਮਾਂਡ ਸਾਰੇ ਡਿਵਾਈਸਾਂ ਨੂੰ ਭੇਜੀਆਂ ਗਈਆਂ ਸਨ। ਕੋਡ ਨੇ ਧਾਰਨਾ ਕੀਤੀ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਸਿਰਫ ਇੱਕ ਹੀ ਡਿਵਾਈਸ ਹੋਵੇਗਾ। ਇਸ ਵਰਜਨ ਵਿੱਚ, ਕੋਡ ਇੱਕ ਹੀ ਡਿਵਾਈਸ ਨੂੰ ਮੈਥਡ ਰਿਕਵੈਸਟ ਭੇਜਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਕਈ ਮਾਇਸ਼ਚਰ ਸੈਂਸਰ ਅਤੇ ਰੀਲੇ ਸੈਟਅੱਪਸ ਦੇ ਨਾਲ ਕੰਮ ਕਰੇਗਾ, ਸਹੀ ਡਿਵਾਈਸ ਨੂੰ ਸਹੀ ਡਾਇਰੈਕਟ ਮੈਥਡ ਰਿਕਵੈਸਟ ਭੇਜੇਗਾ।
-
ਫੰਕਸ਼ਨ ਐਪ ਚਲਾਓ ਅਤੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ IoT ਡਿਵਾਈਸ ਡਾਟਾ ਭੇਜ ਰਿਹਾ ਹੈ। ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ ਸੁਨੇਹੇ ਪ੍ਰਕਿਰਿਆਸ਼ੀਲ ਹੋ ਰਹੇ ਹਨ ਅਤੇ ਡਾਇਰੈਕਟ ਮੈਥਡ ਰਿਕਵੈਸਟ ਭੇਜੇ ਜਾ ਰਹੇ ਹਨ। ਮਿੱਟੀ ਵਿੱਚ ਮਾਇਸ਼ਚਰ ਸੈਂਸਰ ਨੂੰ ਅੰਦਰ ਅਤੇ ਬਾਹਰ ਹਿਲਾਉਣ ਨਾਲ ਮੁੱਲ ਬਦਲਦੇ ਹੋਏ ਅਤੇ ਰੀਲੇ ਨੂੰ ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੋਣ ਦੇਖੋ।
💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code/functions ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ।
ਆਪਣਾ ਸਰਵਰਲੈੱਸ ਕੋਡ ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕਰੋ
ਤੁਹਾਡਾ ਕੋਡ ਹੁਣ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ, ਇਸ ਲਈ ਅਗਲਾ ਕਦਮ ਫੰਕਸ਼ਨ ਐਪ ਨੂੰ ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕਰਨਾ ਹੈ।
ਟਾਸਕ - ਕਲਾਉਡ ਰਿਸੋਰਸ ਬਣਾਓ
ਤੁਹਾਡੇ ਫੰਕਸ਼ਨ ਐਪ ਨੂੰ Azure ਵਿੱਚ ਇੱਕ ਫੰਕਸ਼ਨ ਐਪ ਰਿਸੋਰਸ ਵਿੱਚ ਡਿਪਲੌਇ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਤੁਹਾਡੇ IoT ਹੱਬ ਲਈ ਬਣਾਏ ਗਏ ਰਿਸੋਰਸ ਗਰੁੱਪ ਦੇ ਅੰਦਰ ਹੈ। ਤੁਹਾਨੂੰ Azure ਵਿੱਚ ਇੱਕ ਸਟੋਰੇਜ ਅਕਾਊਂਟ ਦੀ ਵੀ ਲੋੜ ਹੋਵੇਗੀ, ਜੋ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਚੱਲ ਰਹੇ ਇਮੀਲੇਟਡ ਸਟੋਰੇਜ ਦੀ ਜਗ੍ਹਾ ਲਵੇਗਾ।
-
ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ ਤਾਂ ਜੋ ਸਟੋਰੇਜ ਅਕਾਊਂਟ ਬਣਾਇਆ ਜਾ ਸਕੇ:
az storage account create --resource-group soil-moisture-sensor \ --sku Standard_LRS \ --name <storage_name>
<storage_name>
ਨੂੰ ਆਪਣੇ ਸਟੋਰੇਜ ਅਕਾਊਂਟ ਲਈ ਇੱਕ ਨਾਮ ਨਾਲ ਬਦਲੋ। ਇਹ ਨਾਮ ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਵਿਲੱਖਣ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਸਟੋਰੇਜ ਅਕਾਊਂਟ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ URL ਦਾ ਹਿੱਸਾ ਬਣਦਾ ਹੈ। ਇਸ ਨਾਮ ਲਈ ਤੁਸੀਂ ਸਿਰਫ ਛੋਟੇ ਅੱਖਰ ਅਤੇ ਅੰਕ ਵਰਤ ਸਕਦੇ ਹੋ, ਹੋਰ ਕੋਈ ਅੱਖਰ ਨਹੀਂ, ਅਤੇ ਇਹ 24 ਅੱਖਰਾਂ ਤੱਕ ਸੀਮਿਤ ਹੈ। ਕੁਝ ਜਿਵੇਂsms
ਅਤੇ ਅੰਤ ਵਿੱਚ ਕੋਈ ਵਿਲੱਖਣ ਪਛਾਣਕਰਤਾ ਸ਼ਾਮਲ ਕਰੋ, ਜਿਵੇਂ ਕੁਝ ਰੈਂਡਮ ਸ਼ਬਦ ਜਾਂ ਤੁਹਾਡਾ ਨਾਮ।--sku Standard_LRS
ਪ੍ਰਾਈਸਿੰਗ ਟੀਅਰ ਚੁਣਦਾ ਹੈ, ਸਭ ਤੋਂ ਘੱਟ ਲਾਗਤ ਵਾਲੇ ਜਨਰਲ-ਪਰਪਜ਼ ਅਕਾਊਂਟ ਨੂੰ ਚੁਣਦਾ ਹੈ। ਸਟੋਰੇਜ ਦਾ ਕੋਈ ਮੁਫ਼ਤ ਟੀਅਰ ਨਹੀਂ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਜੋ ਵਰਤਦੇ ਹੋ ਉਸ ਲਈ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ। ਲਾਗਤ ਸਬ ਤੋਂ ਮਹਿੰਗੇ ਸਟੋਰੇਜ ਲਈ ਪ੍ਰਤੀ ਮਹੀਨਾ ਪ੍ਰਤੀ ਗਿਗਾਬਾਈਟ ਸਟੋਰ ਕੀਤੇ US$0.05 ਤੋਂ ਘੱਟ ਹੈ।✅ ਸਟੋਰੇਜ ਦੀ ਕੀਮਤ ਬਾਰੇ Azure Storage Account pricing page 'ਤੇ ਪੜ੍ਹੋ।
-
ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ ਤਾਂ ਜੋ ਫੰਕਸ਼ਨ ਐਪ ਬਣਾਇਆ ਜਾ ਸਕੇ:
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 ਸਭ ਤੋਂ ਨਵਾਂ ਵਰਜਨ ਹੈ।--os-type Linux
ਫੰਕਸ਼ਨ ਰਨਟਾਈਮ ਨੂੰ ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਇਹ ਫੰਕਸ਼ਨਜ਼ ਨੂੰ ਹੋਸਟ ਕਰਨ ਲਈ Linux ਨੂੰ OS ਵਜੋਂ ਵਰਤੇ। ਫੰਕਸ਼ਨਜ਼ ਨੂੰ Linux ਜਾਂ Windows 'ਤੇ ਹੋਸਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਇਸ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਰਤੀ ਜਾ ਰਹੀ ਹੈ। Python ਐਪਸ ਸਿਰਫ Linux 'ਤੇ ਸਮਰਥਿਤ ਹਨ।
ਟਾਸਕ - ਆਪਣੀਆਂ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਅੱਪਲੋਡ ਕਰੋ
ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ Functions App ਵਿਕਸਿਤ ਕੀਤਾ, ਤਾਂ ਤੁਸੀਂ IoT ਹੱਬ ਲਈ ਕਨੈਕਸ਼ਨ ਸਟ੍ਰਿੰਗਜ਼ ਲਈ ਕੁਝ ਸੈਟਿੰਗਜ਼ ਨੂੰ local.settings.json
ਫਾਇਲ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ। ਇਹ ਸੈਟਿੰਗਜ਼ ਤੁਹਾਡੇ Functions App ਵਿੱਚ Azure ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਵਜੋਂ ਲਿਖੀਆਂ ਜਾਣ ਦੀ ਲੋੜ ਹੈ ਤਾਂ ਜੋ ਤੁਹਾਡਾ ਕੋਡ ਇਨ੍ਹਾਂ ਨੂੰ ਵਰਤ ਸਕੇ।
🎓
local.settings.json
ਫਾਇਲ ਸਿਰਫ ਸਥਾਨਕ ਵਿਕਾਸ ਸੈਟਿੰਗਾਂ ਲਈ ਹੈ, ਅਤੇ ਇਹਨਾਂ ਨੂੰ GitHub ਵਰਗੇ ਸਰੋਤ ਕੋਡ ਕੰਟਰੋਲ ਵਿੱਚ ਚੈੱਕ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ। ਜਦੋਂ ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਕੁੰਜੀ/ਮੁੱਲ ਜੋੜੇ ਹੁੰਦੇ ਹਨ ਜੋ ਕਲਾਉਡ ਵਿੱਚ ਹੋਸਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲਾਂ ਤੋਂ ਪੜ੍ਹੇ ਜਾਂਦੇ ਹਨ, ਜਾਂ ਤਾਂ ਤੁਹਾਡੇ ਕੋਡ ਵਿੱਚ ਜਾਂ ਰਨਟਾਈਮ ਦੁਆਰਾ ਜਦੋਂ ਤੁਹਾਡਾ ਕੋਡ IoT ਹੱਬ ਨਾਲ ਜੁੜਦਾ ਹੈ।
-
ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ ਤਾਂ ਜੋ
IOT_HUB_CONNECTION_STRING
ਸੈਟਿੰਗ ਨੂੰ Functions App ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਵਿੱਚ ਸੈਟ ਕੀਤਾ ਜਾ ਸਕੇ:az functionapp config appsettings set --resource-group soil-moisture-sensor \ --name <functions_app_name> \ --settings "IOT_HUB_CONNECTION_STRING=<connection string>"
<functions_app_name>
ਨੂੰ ਆਪਣੇ Functions App ਲਈ ਵਰਤੇ ਗਏ ਨਾਮ ਨਾਲ ਬਦਲੋ।<connection string>
ਨੂੰlocal.settings.json
ਫਾਇਲ ਵਿੱਚ ਦਿੱਤੇIOT_HUB_CONNECTION_STRING
ਦੇ ਮੁੱਲ ਨਾਲ ਬਦਲੋ। -
ਉੱਪਰ ਦਿੱਤੇ ਕਦਮ ਨੂੰ ਦੁਹਰਾਓ, ਪਰ
REGISTRY_MANAGER_CONNECTION_STRING
ਦਾ ਮੁੱਲlocal.settings.json
ਫਾਇਲ ਵਿੱਚ ਦਿੱਤੇ ਸੰਬੰਧਿਤ ਮੁੱਲ ਨਾਲ ਸੈਟ ਕਰੋ।
ਜਦੋਂ ਤੁਸੀਂ ਇਹ ਕਮਾਂਡ ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਇਹ ਫੰਕਸ਼ਨ ਐਪ ਲਈ ਸਾਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗਜ਼ ਦੀ ਸੂਚੀ ਵੀ ਆਉਟਪੁੱਟ ਕਰੇਗਾ। ਤੁਸੀਂ ਇਸਦਾ ਉਪਯੋਗ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੇ ਮੁੱਲ ਸਹੀ ਤੌਰ 'ਤੇ ਸੈਟ ਕੀਤੇ ਗਏ ਹਨ।
💁 ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ
AzureWebJobsStorage
ਲਈ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਮੁੱਲ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡੇlocal.settings.json
ਫਾਇਲ ਵਿੱਚ, ਇਹ ਸਥਾਨਕ ਸਟੋਰੇਜ ਇਮੀਲੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਸੈਟ ਕੀਤਾ ਗਿਆ ਸੀ। ਜਦੋਂ ਤੁਸੀਂ Functions App ਬਣਾਇਆ, ਤਾਂ ਤੁਸੀਂ ਸਟੋਰੇਜ ਅਕਾਊਂਟ ਨੂੰ ਇੱਕ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਪਾਸ ਕੀਤਾ, ਅਤੇ ਇਹ ਸੈਟਿੰਗ ਵਿੱਚ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਸੈਟ ਹੋ ਜਾਂਦਾ ਹੈ।
ਟਾਸਕ - ਆਪਣਾ Functions App ਕਲਾਉਡ ਵਿੱਚ ਡਿਪਲੌਇ ਕਰੋ
ਹੁਣ ਜਦੋਂ Functions App ਤਿਆਰ ਹੈ, ਤੁਹਾਡਾ ਕੋਡ ਡਿਪਲੌਇ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
-
ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ VS Code ਟਰਮੀਨਲ ਤੋਂ ਚਲਾਓ ਤਾਂ ਜੋ ਤੁਹਾਡਾ Functions App ਪਬਲਿਸ਼ ਕੀਤਾ ਜਾ ਸਕੇ:
func azure functionapp publish <functions_app_name>
<functions_app_name>
ਨੂੰ ਆਪਣੇ Functions App ਲਈ ਵਰਤੇ ਗਏ ਨਾਮ ਨਾਲ ਬਦਲੋ।
ਕੋਡ ਪੈਕ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ Functions App ਨੂੰ ਭੇਜਿਆ ਜਾਵੇਗਾ, ਜਿੱਥੇ ਇਹ ਡਿਪਲੌਇ ਅਤੇ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਵੇਗਾ। ਕਾਫ਼ੀ ਸਾਰਾ ਕਨਸੋਲ ਆਉਟਪੁੱਟ ਹੋਵੇਗਾ, ਜੋ ਡਿਪਲੌਇਮੈਂਟ ਦੀ ਪੁਸ਼ਟੀ ਅਤੇ ਡਿਪਲੌਇ ਕੀਤੀਆਂ ਫੰਕਸ਼ਨਜ਼ ਦੀ ਸੂਚੀ ਦੇ ਨਾਲ ਖਤਮ ਹੋਵੇਗਾ। ਇਸ ਮਾਮਲੇ ਵਿੱਚ ਸੂਚੀ ਵਿੱਚ ਸਿਰਫ ਟ੍ਰਿਗਰ ਸ਼ਾਮਲ ਹੋਵੇਗਾ।
Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in soil-moisture-sensor:
iot-hub-trigger - [eventHubTrigger]
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ IoT ਡਿਵਾਈਸ ਚੱਲ ਰਿਹਾ ਹੈ। ਮਿੱਟੀ ਵਿੱਚ ਮਾਇਸ਼ਚਰ ਦੀ ਪੱਧਰ ਬਦਲੋ ਜਾਂ ਸੈਂਸਰ ਨੂੰ ਮਿੱਟੀ ਵਿੱਚ ਅੰਦਰ ਅਤੇ ਬਾਹਰ ਹਿਲਾਓ। ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ ਜਿਵੇਂ ਮਿੱਟੀ ਦੀ ਨਮੀ ਬਦਲਦੀ ਹੈ, ਰੀਲੇ ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੁੰਦਾ ਹੈ।
🚀 ਚੁਣੌਤੀ
ਪਿਛਲੇ ਪਾਠ ਵਿੱਚ, ਤੁਸੀਂ ਰੀਲੇ ਲਈ ਸਮਾਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਸੀ MQTT ਸੁਨੇਹਿਆਂ ਤੋਂ ਅਨਸਬਸਕ੍ਰਾਈਬ ਕਰਕੇ ਜਦੋਂ ਰੀਲੇ ਚਾਲੂ ਸੀ, ਅਤੇ ਬੰਦ ਹੋਣ ਤੋਂ ਬਾਅਦ ਕੁਝ ਸਮੇਂ ਲਈ। ਤੁਸੀਂ ਇਹ ਢੰਗ ਇੱਥੇ ਵਰਤ ਨਹੀਂ ਸਕਦੇ - ਤੁਸੀਂ ਆਪਣੇ IoT ਹੱਬ ਟ੍ਰਿਗਰ ਤੋਂ ਅਨਸਬਸਕ੍ਰਾਈਬ ਨਹੀਂ ਕਰ ਸਕਦੇ।
ਸੋਚੋ ਕਿ ਤੁਸੀਂ ਆਪਣੇ Functions App ਵਿੱਚ ਇਸਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵੱਖ-ਵੱਖ ਢੰਗ ਕਿਵੇਂ ਵਰਤ ਸਕਦੇ ਹੋ।
ਪਾਠ-ਪਿੱਛਾ ਪ੍ਰਸ਼ਨੋੱਤਰੀ
ਸਮੀਖਿਆ ਅਤੇ ਖੁਦ ਅਧਿਐਨ
- ਸਰਵਰਲੈੱਸ ਕੰਪਿਊਟਿੰਗ ਬਾਰੇ ਵਿਕੀਪੀਡੀਆ ਦੇ ਸਰਵਰਲੈੱਸ ਕੰਪਿਊਟਿੰਗ ਪੰਨਾ 'ਤੇ ਪੜ੍ਹੋ।
- Azure ਵਿੱਚ ਸਰਵਰਲੈੱਸ ਵਰਤਣ ਬਾਰੇ ਪੜ੍ਹੋ, ਜਿਸ ਵਿੱਚ ਕੁਝ ਹੋਰ ਉਦਾਹਰਨਾਂ ਸ਼ਾਮਲ ਹਨ, Go serverless for your IoT needs Azure blog post 'ਤੇ।
- Azure Functions ਬਾਰੇ ਹੋਰ ਜਾਣੋ Azure Functions YouTube channel 'ਤੇ।
ਅਸਾਈਨਮੈਂਟ
ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।