<div dir="ltr">Aha. I did not know about the 8 second limit. I use Alexa with a Philips smart lighting hub to control house lights. Sometimes nothing happens...<div>I assumed this was Alexa not understanding a Scottish accent. I forgive Alexa now - she might have been having trouble talking to the Hue.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 25 Nov 2020 at 10:21, Tim Cutts <<a href="mailto:tjrc@sanger.ac.uk">tjrc@sanger.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div style="overflow-wrap: break-word;">
Indeed, my main personal experience with Lambda so far has been in writing an Alexa skill in my spare time.  It’s been quite fun, and very instructive in the benefits and pitfalls of lambda.
<div><br>
</div>
<div>My main takehomes so far:</div>
<div><br>
</div>
<div>1.  I love the fact that there’s basically no code at all other than that required to deliver the actual skill. Just handler functions for the incoming requests (Intents, as Amazon call them)</div>
<div><br>
</div>
<div>2.  Debugging is awkward.  There is no interactive debugging, as far as I can tell.   Log inspection is about all you have, and some errors are obtuse (for example, some valid Node.js constructs produce syntax errors on Lambda, and it’s very hard
 to track down when it happens - unit tests all pass locally but then you get a syntax error in the LogWatch logs, with a useless stack trace that doesn’t tell you where the syntax error is).  Debugging and unit testing on your laptop is hard to do; many Alexa
 APIs rely on real hardware functions and the simulators don’t handle them.</div>
<div><br>
</div>
<div>3.  Persistence of data is fairly straightforward using S3 buckets or DynamoDB, and I haven’t noticed latency issues with those (of course the interactions are on a human timescale, so latency isn’t really much of an issue)</div>
<div><br>
</div>
<div>4.  Interaction with external services can be problematic; Alexa lambda functions must return within 8 seconds, which can be fun if your skill needs to fetch data from some other source (in my case a rather sluggish data service in Azure run by
 my local council), and there’s no clean way to handle the event if you hit the 8 second limit, the function just gets terminated and Alexa returns a rather meaningless error to the user.</div>
<div><br>
</div>
<div>Tim</div>
<div><br>
</div>
<div>
<div>
<blockquote type="cite">
<div>On 25 Nov 2020, at 09:45, John Hearns <<a href="mailto:hearnsj@gmail.com" target="_blank">hearnsj@gmail.com</a>> wrote:</div>
<br>
<div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
BTW, I am sure everyone knows this but if you have a home assistant such as Alexa everytime you ask Alexa it is a lambda which is spun up </div>
<br>
</div>
</blockquote>
</div>
<br>
</div>



-- 
 The Wellcome Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 

</div>

</blockquote></div>