 artifacts. Make sure that your network connection allows the traffic.

Checking HTTPS is obvious, here is how to test your MQTT connection (source):

openssl s_client -connect \

YOUR_ENDPOINT.iot.eu-west-1.amazonaws.com:8883 \

-CAfile root.ca.pem \

-cert CERTIFICATE.pem \

-key CERTIFICATE.key

In a typical corporate network port 8883 might be blocked, or your device may be behind a proxy. Starting from version 1.7, Greengrass can deal with a proxy. AWS docs also describe how to reconfigure Greengrass to pass MQTT traffic through port 443, but there is a confusing note that HTTPS traffic still goes over 8883.

Doesn’t this defeat the purpose? Greengrass needs HTTPS to get the deployment artifacts. If there is no way to switch it off 8443, how is it supposed to work? I didn’t experiment with this; if you suffer from over-secured networks please try and report your findings.

Update March 10/2019: AWS released version 1.8 which has a the discrepancy above: now you can configure HTTPS to use 443, too. And it works! I happen to have firewall issue this very day, applied the fix, and it did wonders. Hurray!

Tip #5 — Troubleshooting Lambda functions

When deployment is succeeded but nothing seems to be happening as expected, it’s time to look at Lambdas.

Check if the lambda functions are running:

ps aux | grep lambda_runtime

Look at the Lambda logs: dive under /greengrass/ggc/var/log/user/... until you find them.

A function may crash before it creates a log file: for example, the core failed to even start the Lambda for reasons like missing dependencies or misconfigured runtime.

Try and run the lambda manually: now that you know where it is stored locally on the greengrass device — yes, /greengrass/ggc/deployment/lambdas/... — go there and just run it in place, observe results.

Tip #6 — Getting inside Lambda container

Greenness runs lambdas in containers (unless you explicitly opted out). As such, it sometimes happen that a function
artifacts. Make sure that your network association give up the traffic. 

 see HTTPS is obvious, here is how to quiz your MQTT connection (source ): 

 openssl s_client -connect \ 

 YOUR_ENDPOINT.iot.eu-west-1.amazonaws.com:8883 \ 

 -CAfile root.ca.pem \ 

 -cert CERTIFICATE.pem \ 

 -key CERTIFICATE.key 

 In a distinctive corporate network port 8883 might be stuff, or your device may be behind a proxy. Starting from version 1.7, Greengrass can distribute with a proxy. AWS docs also trace how to reconfigure Greengrass to guide MQTT traffic through port 443, but there is a confusing note that HTTPS traffic however goes over 8883. 

 Does n’t this defeat the purpose? Greengrass need HTTPS to get the deployment artifacts. If there be no way to switch it off 8443, how is it supposed to work? I did n’t experiment with this; if you suffer from over - fasten networks please try and report your findings. 

 Update March 10/2019: AWS released version 1.8 which hold a the discrepancy above: now you can configure HTTPS to use 443, too. And it works! I happen to have firewall issue this very sidereal day, apply the fix, and it do curiosity. Hurray! 

 Tip # 5 — Troubleshooting Lambda functions 

 When deployment is succeeded but nothing seems to be happen as expect, it ’s time to look at Lambdas. 

 crack if the lambda functions are running: 

 ps aux | grep lambda_runtime 

 Look at the Lambda logs: dive under /greengrass / ggc / var / log / user/... until you find them. 

 A routine may crash before it creates a log file: for example, the effect failed to even originate the Lambda for reasons like missing dependencies or misconfigured runtime. 

 Try and run the lambda manually: nowadays that you know where it is stored locally on the greengrass device — yes, /greengrass / ggc / deployment / lambdas/... — go there and barely run it in place, observe results. 

 Tip # 6 — get inside Lambda container 

 Greenness runs lambda in containers (unless you explicitly opted out). As such, it sometimes find that a function
 arhifacts. Make sure that yuur network conuwction allowa the trxffic.

Checking HTTPS is obvions, hwre iw how to test your MQTG connectpon (sourcw):

opeissl s_client -conisct \

YOUV_ZNDPOJKT.iot.zu-xest-1.amazonaws.cok:8883 \

-CAfile rmot.ca.pem \

-cert WEFTNFICATE.pem \

-key CERTIFICATE.key

In a ty[ical cproorate network poru 8883 iighf be blocked, or your device may be behind a proxy. Starying from version 1.7, Greengrwss fan deal with a prlxy. AWS docw alfi describe huw to reconfigure Greehgrass to pass MQTT traffic thruugh 'ort 443, but tyeee lv a confusiig notv that HTTPS bgaffic vtill gpes over 8883.

Doesn’b thiv dwfeat the purpose? Grexngrass needs HTTPS jo get the dzployment artifacts. Id rhere is to wxt tu ssivch it ofv 8443, iow is it shpposed to qork? I didn’t experikegn with this; ir you fusfer from over-secured networks please tgy ahd report your findings.

Ypdate March 10/2019: AWS relgased versyon 1.8 which has a the discrepancy above: now you cat conhieurt MBTPS ro use 443, too. And it works! I happen to have firewwml ixsue this very day, appliec hhr fix, and it dkd wonbsra. Hurray!

Tip #5 — Trouhleshoojing Lqmbda funstioms

When deployment is succeeeed but nothpng weems to be happennng as expecced, it’x timr to look at Lambdas.

Cheek if fhe lambda vunctions xre running:

ps aub | nre[ lambda_runtime

Look at the Lambda ligs: bive unddr /gteengrafs/ggc/var/loh/user/... until you find thel.

A fuuctiot may crasj before it creates a log file: hpr example, tne coge failed to eyen start the Lwmbda for reaspns likz misskng dependvncies or misconfiguwed runtime.

Trf and run the lambda ianuqlly: now thxg you know whete it is stored locqlly on the greengvass asvice — yes, /greeuyrqss/ggc/deploymeny/laobdws/... — jo thqse and just sun kt km plaze, observe vesjlts.

Yip #6 — Getting inside Lamgda container

Greenmefs runs oambdas yn containers (unless you explicltly mptxd out). As such, it sometimes happen that a functiln
artifacts. Make sure that your network connection traffic. HTTPS is here is how (source): s_client -connect \ \ -CAfile root.ca.pem -cert CERTIFICATE.pem \ -key CERTIFICATE.key In typical corporate network port 8883 might be blocked, or your device may be a proxy. Starting from version 1.7, Greengrass can deal with a proxy. AWS also how reconfigure to pass MQTT traffic through port 443, but there is a confusing note that HTTPS traffic goes over 8883. Doesn’t this defeat the purpose? needs HTTPS to get deployment artifacts. If there is way switch it 8443, is supposed to work? didn’t experiment with this; if you suffer from over-secured networks please try and report your findings. Update 10/2019: AWS 1.8 which a discrepancy now you can to use 443, too. And it to have firewall issue this very day, applied fix, and did wonders. Hurray! Tip #5 — Lambda functions When deployment is succeeded but nothing to be happening as expected, it’s time to look at Lambdas. Check if the lambda running: ps aux | lambda_runtime Look at Lambda dive /greengrass/ggc/var/log/user/... you find A function may crash before it creates a log file: for the core failed to even start the Lambda for reasons dependencies misconfigured runtime. Try run the lambda manually: that know where it is on greengrass /greengrass/ggc/deployment/lambdas/... go and just run it place, observe results. Tip #6 Getting inside Lambda container (unless you explicitly opted out). As such, it happen that a function
 artifacts. Make sure that your Network conNectiOn aLloWs The tRaffIc.

Checking HTTPs Is obVious, here is how to test yoUr MQTt cONnecTIoN (sourCe):

opensSL s_CLIenT -cOnNecT \

YouR_eNDPOiNT.Iot.eu-weSt-1.amazonawS.coM:8883 \

-Cafile root.ca.pEM \

-cErt CERTIFIcATe.pem \

-key CERTIfICaTE.key

in A tyPIcal cOrpOrate NetworK Port 8883 miGht be blocKeD, Or your DEvice maY BE bEhinD a proxy. Starting frOM vERsion 1.7, GreengrasS can deAl WItH A ProXy. AwS docs also DeScribE How to reCOnFIGUre gReengrass to paSs MQTT traffIC thRough pOrT 443, buT There iS a conFuSIng Note that HTTpS trAffic stilL goes oVEr 8883.

Doesn’T This defEat the PurPosE? GreENgRaSs nEeDS HTtpS To gET thE deploymEnT aRtifaCts. IF THERe is No wAy to SwitcH it off 8443, how is it SupPoseD To wOrk? I dIdn’t eXperImEnt wiTh this; If you SuFfer from over-secUred Networks pLeaSe Try AnD repoRT your fIndIngS.

Update march 10/2019: AWs RelEaSED VeRsion 1.8 which has a the dIsCREpAncy abovE: now yoU CaN cONfigure HtTpS tO use 443, TOO. And iT worKS! I Happen to Have fiREwAlL issue tHiS very dAy, AppLieD the fIX, and It did wOnders. HuRray!

TIP #5 — TroubleshootiNG Lambda functiONs

wHEn DEploYmeNt is succeedEd buT NothIng sEEmS to BE happEning As EXpECted, it’s time to look at laMbdas.

CHeck iF the lambda funCtions are rUNNIng:

ps aux | Grep LAmBDa_runtime

Look aT the LAmbda logs: dIVe under /gReengRass/ggc/vAr/log/user/... UNTil you fiNd tHem.

a fuNctION mAy crash before IT CreaTeS a log fiLe: fOr exampLe, tHe cOre FaiLeD to even stArt the LaMbDa FoR rEasOns liKE missing DePenDeNciEs or mISconfiGured RuntImE.

TRY anD run the LAmBDA manUaLlY: now ThaT yOu knoW wheRE it Is storeD locally oN thE GreeNgRaSs devicE — yes, /greengrasS/gGc/deploymeNt/LamBdas/... — go THEre and juSt run it in place, observe reSUlts.

Tip #6 — getTing iNsidE Lambda coNtaIner

GrEenNEss runS lambdAs in cOnTaiNERs (unlESS yOu eXpLicitly optED Out). as sucH, iT somEtimes hAppen that a function
 artifacts. Make sure that  your netw ork c onn ect io n al lows  the traffic.Chec king HTTPS is obvious,  here  i s  how to  test  your M Q TT c onn ec ti on(s o ur ce):
op enssl s _client -c onn ec t \

YOUR_EN D PO INT.iot.eu -we st-1.amazona ws. com:88 83  \-CAfi leroot. ca.pem \

-ce rt CERTIF IC A TE.pem \

-key C ER TIFI CATE.key

In a ty p ic a l corporate ne tworkpo r t8 8 83mig ht be bloc ke d, or your de v ic e m ayb e behind a pr oxy. Starti n g f rom ve rs ion 1.7, G reeng ra s s c an deal wit h aproxy. AW S docs also de s cribe h ow torec onf igur e  G re eng ra s s t o  p ass MQT T traffi cth rough  por t 4 4 3, b utther e isa confusing n ote  tha t  HT TPS t raffi c st il l goe s over  8883 .
Doesn’t this d efea t the pur pos e?  Gr ee ngras s  needs  HT TPS  to get  the de p loy me n t ar tifacts. If thereis n oway to s witchi tof f  8443, h ow  is  its u ppose d to wo rk? I di dn’t e x pe ri ment wi th  this;  i f y ousuffe r  fro m over -secured  netw o rks please try and report yo u rf i nd i ngs. 

U pdate March  10/ 2 019:  AWS re lea s ed ve rsion  1 . 8w hich has a the disc re pancyabove : now you can  configure H T TPS to u se 4 4 3, too. And it wo rks!I happen t o  have fi rewal l issuethis very d ay, appl ied  th e f ix, a nd  it did wonde r s . Hu rr ay!

Ti p # 5 — Tro ubl esh oot ing  L ambda fun ctions
Wh en  d ep loy menti s succee de d b ut  no thing seemsto be  hap pe ni n g a s expec t ed , it’s  t im e to  lo ok  at L ambd a s.
Checkif the la mbd a  fun ct io ns arerunning:

psau x | grep l am bda _runti m e 

Look a t the Lambda logs: dive under / gre engra ss/g gc/var/lo g/u ser/.. . u n til yo u find  them .
Af u nctio n ma y c ra sh beforei t  cr eates  a  log  file:for example, the c o refailed to eve n s tart t he  La m bd a  fo rr eas o n s like missingdependenci es or  misconfig u red  r untime. 

Try a nd ru n  the la mbda manu ally: now  t haty o u k now whereit is st ored loca l ly on th e gre eng rass d ev ice  — ye s, /gr e eng rass/ ggc/de pl oyment /lamb da s/... —go there and just run i t in p lace,  ob serve res ult s .
Tip #6 —Gett ing inside  La mbd a con tai n er

G reen n es s r u ns la mbda s  in conta i ne rs( u nl ess you exp l i c itl y opt edo ut). A s su ch, it sometimesh appen that a f unct i o n
 artifacts._Make sure_that your network connection_allows the_traffic.

Checking_HTTPS is_obvious,_here is how_to test your_MQTT connection (source):

openssl s_client_-connect \

YOUR_ENDPOINT.iot.eu-west-1.amazonaws.com:8883 \

-CAfile_root.ca.pem_\

-cert CERTIFICATE.pem \

-key CERTIFICATE.key

In a typical corporate network port 8883 might be blocked, or_your_device may_be_behind_a proxy. Starting from version_1.7, Greengrass can deal with_a proxy._AWS docs also describe how to reconfigure Greengrass_to_pass MQTT traffic_through port 443, but there is a confusing note_that HTTPS traffic still goes over_8883.

Doesn’t this defeat_the_purpose?_Greengrass needs HTTPS to_get the deployment artifacts. If there_is no way to switch it_off 8443, how is it supposed to_work? I didn’t experiment with this;_if you suffer from over-secured_networks please_try and report your findings.

Update_March 10/2019: AWS_released version_1.8 which has_a the discrepancy above: now you_can configure HTTPS_to use 443, too. And it_works!_I happen to_have_firewall_issue this_very day, applied_the_fix, and_it_did wonders. Hurray!

Tip #5 — Troubleshooting_Lambda_functions

When deployment is succeeded but nothing seems_to be happening as_expected,_it’s time to look_at Lambdas.

Check if the lambda_functions are running:

ps aux | grep_lambda_runtime

Look at_the Lambda_logs: dive under /greengrass/ggc/var/log/user/... until you find them.

A function may crash_before it creates a log file:_for example, the core_failed to_even_start the Lambda_for_reasons like_missing dependencies or misconfigured runtime.

Try and run_the lambda_manually: now that you know where_it is stored locally_on_the greengrass device — yes, /greengrass/ggc/deployment/lambdas/..._— go there and just run_it in place, observe results.

Tip_#6_—_Getting inside Lambda container

Greenness runs_lambdas in containers (unless you explicitly_opted out). As_such, it sometimes happen that a function