So 2017 was the year that I needed to buy a new iPhone. After having watched the announcements I eventually convinced myself to spring for the X model (and am still happy with that decision). When launch date came, I visited the Apple stores in my vicinity and quickly learned that I would need an online reservation to score a device, though that turned out be harder then expected.
Eventually the constant checking got the better of me and I automated the Apple website product check call using a scheduled Lambda (see code below) and set a CloudWatch Alarm based on the error metric from the Lambda - simple but effective and helped me finally get a device :)