AWS Lambda is a popular serverless computing service offered by Amazon Web Services Which is used to create functions and self-contained apps developed using one of the supporting languages and runtimes. These functions can be uploaded to AWS Lambda for getting executed in a flexible and efficient manner.
The AWS Lambda functions are capable of performing a range of computing tasks, ranging from serving web pages and processing data streams to calling specific APIs and integrating with other suitable AWS services.
Essentially being serverless, the computing service does not require developers to maintain their own servers to run the functions and develop applications.AWS Lambda is a fully managed service that handles all the infrastructure for the developers. It is, therefore, important to note that being serverless does not mean that the service does not use any server. It simply implies that the operating systems, servers, and network layer, and other key components are already taken care of by the service. This allows the developer to focus only on the code used for development.
In this article, we will discuss the major steps involved in creating AWS Lambda for the purpose of algorithmic trading.
1. Creating An Alpaca API Account
Start by creating an account with Alpaca API. Alpaca API is a commission-free brokerage platform that facilitates trading for users via API. After creating the account, the platform would provide you with an API Key ID and a secret key that can be referenced in the Python script. This will help you in creating a bridge for automating your trading strategy.
Here, it is important to note that the “commission-free” nature of Alpaca implies that the platform does not levy commission charges for Alpaca self-directed individual brokerage accounts used for trading US-listed securities via APIs. Users may need to pay the necessary SEC and FINRA fees as levied.
After you have created your Alpaca API account, you can take your API trading keys and store them at a secure location. It is recommended to store the keys in your system environment variables.
2. Creating An AWS Account
Now, you will be required to create a root and an IAM account with AWS. This would provide you with a security layer while using AWS.
If you are new to AWS, the concept of an IAM account might be new for you. IAM stands for Identity Account Management and helps you in building security policies for individuals, services, and different types of accounts. It is important to be well-versed with an IAM account before going ahead with this procedure.
3. Setting Up A Command Line Interface In AWS
While doing the grunt work on your local device, you may need to talk to the AWS console without going to the front-end. You will then be pushing your container image to ECR via your command line. It is, therefore, important to set up a command line with AWS before going ahead with the process.
4. Creating Container Repository In ECR
Once you have set up your command line, navigate to the service of ECR in your AWS console. Select the option of “Create A Repository” and go ahead with the settings. If everything goes well, you would see your repository appear in the list.
You will now need to set up specific permissions for the created repository. When you click on the created repository, you will see the option for setting permissions under the same.
Now, you can add a policy statement through your AWS console or with the policy JSON at the top. Here, you will see the IAM entities to which you are willing to grant permission to the concerned repository.
5. Building Container Image Using Docker
You will now need to go ahead with building your container image using docker. There are two major components involved in building a docker image for AWS Lambda – Dockerfile and Lambda Handler.
Dockerfile contains the OS, software, and package dependencies required for creating a lambda. The Lambda Handler is the code required for your lambda to run effectively. It is important to keep all these files in the same folder.
In order to complete creating the docker image for your lambda, make sure that you save both the files and open up the command line as well as “cd” where these files are stored. Once you are there, you need to open the ECR in your AWS console and the repository you created in the steps above. Then, click on the option of “View Push Commands” located on the top-right corner of the window.
Finally, refresh your ECR page to check if your image has been created successfully.
6. Building Lambda Function And Deploying The Image
After setting up your container image, you need to go to the lambda service within your AWS console and create a new function. Select the option of your container image and give a suitable name to the function. After naming the function, select the container image you just created.
It will not take more than a minute to create the function. Once you see the bar on the top turn green, you will need to make a few configurations.
Start by configuring the test event on the top-right corner of the window. Put a suitable name on it and click on “Save”.
Then, depending on the code you are willing to run, you might need to increase the timeout and memory for your lambda in the basic settings.
Finally, check if your first lambda function works by running your test.
7. Adding Or Editing Your Lambda Functions In Your Container Image
After setting up your container image, you can add new lambdas and edit the existing ones without the need to rebuild your customer image. It is important to note that you will need to rebuild the container in case you want to add new package dependencies.
8. Creating A Rule with EventBridge
Now, look for the option for “EventBridge” in your AWS console and create the first rule. While creating a rule, always remember that the AWS time would be in UTC. This would require you to do the math for the time when your cron expression should run.
After you have started creating your first rule, you will need to specify the target. Then, save the rule and go back to your lambda to check whether the rule is attached to it.
And that is it! Follow these steps with care and precision to create an AWS Lambda for the purpose of algorithmic trading. This would help you in creating a serverless tech stack that allows users to automate algorithmic trading strategies.