After having a Lord of the Rings and The Hobbit movie marathon this weekend, I fired up a ZX Spectrum emulator and relived playing the text adventure game The Hobbit. I shared some screenshots in this thread on Twitter here:
The Hobbit was released in 1982 for the ZX Spectrum. For it’s time, it has some interesting features, like NPCs that wandered around, and language parsing of statements allowing you to interact with the NPCs, like ‘say to Elrond “read map”‘.
Given the unusual (for the time) ability to interact with the NPCs, there even exists a ZX Spectrum emulator specifically to play The Hobbit, which also shows the state of the interactive characters and objects in the game as you play. This is well worth taking a look at to get an insight into how the game works – quite an achievement for an 8 bit game in only 48k: http://members.aon.at/~ehesch1/wl/wl.htm
Not all the Oracle Instant Client files are needed. From this older npm module to automate the packaging of the required libraries, I used this same list of required libraries:
libons.so (not packaged in current Instant Client)
libaio.so (from separate download - see next step)
libaio – if you’re on a Linux platform you can ‘apt-get install libaio’ or similar, but building my Lambda on a Mac I had to manually download the package and extract just the .so file from here (download the Arch Linux x64 package): https://pkgs.org/download/libaio
Put these in a /lib dir and zip up the folder and files. Use this to create a Lambda Layer.
For the Lambda itself install the node.js module for the api:
For a Lambda to access an AWS RDS database instance, it needs to be in the same VPC as the RDS instance. However, if you haven’t created and assigned a role with persmissions for the Lambda to access the VPC, you’ll see this error when creating your Lambda:
To fix this per steps in the tutorial here, create a role with permission ‘AWSLambdaVPCAccessExecutionRole’.