When building skills for the Alexa Skills Kit, we kept running into a major inconvenience. To test our code, we needed to first package it, then upload it to AWS. This was a major drag when we were developing skills, especially if we wanted to work with actual requests and responses as they would come from Alexa – either via the Service Simulator or an Echo device.
We are excited to release a tool we use internally to help with this issue, bst proxy.
Using bst proxy and the bst proxy service (or you can deploy and host your own), you can now interact with your Alexa Skill from an actual device while you develop. You can see the requests and responses in real time and make updates on your machine without needing to redeploy every change.
Get Started
First install the CLI with NPM:
$ npm install -g bespoken-tools
You can use the proxy in two ways, with a server running locally on a port:
$ bst proxy http 9999
or with a Node.js Lambda:
$ bst proxy lambda index.js
Run the command and update your skill to point to the proxy service with the URL that is printed:
Now you can edit your Alexa skill and test the updates in real time.
What’s Next
We are working on more functionality, so make sure you stay connected.
[…] next day we released bst proxy. Then, we tinkered with Alexa audio, introduced a few $ bst commands, and just 2 months later […]
I am having problems linking my skill. Basically have a Lambda function that connects to my HomeAssistant instance for I can use Alexa to trigger activities in my house. Problem is from what I can tell, when I try to link it fails with a very generic response to try again later and think it’s because I’m not using port 443 but https on another port as 443 is already in use for something else. Rumor has it if I include a lambda proxy and a proxy service run by BST tools I can work around this. Not sure this is the issue, but any details on how to set this up? The above talks about setting things up locally and having the proxy be on ports like 9999 but that wouldn’t fix this issue if it’s the issue.
Thanks.
Hello John, what the proxy does is expose a public https url to what you serve behind.
“bst proxy lambda index.js” will start index.js as server and then send you a url to receive the data. We shouldn’t be interefering with anything on port http 3000 in your machine. Let us know if you need more help!