Unofficial AWS SDK for Lua, available for LuaJIT and Lua 5.1 and later.
The SDK is still in development and should not be considered production ready.
For release notes, see the CHANGELOG.
You can use the AWS SDK for Lua in your own project by adding this project as a Defold library dependency. Open your game.project file and in the dependencies field under project add:
https://github.com/britzl/aws-sdk-lua/archive/master.zip
Or point to the ZIP file of a specific release.
The SDK is currently not distributed via LuaRocks. LuaRocks distribution will happen once the SDK is stable and moved out of beta.
Using the AWS SDK for Lua is a simple process requiring only a few steps of configuration:
-- Configure AWS to work with Defold (specifically to use http.request() provided by the Defold engine to make HTTP calls)
local config = require "aws-skd.core.config"
config.use_defold() -- or config.use_corona() or config.use_luasocket()
-- Set access key and secret access key from game.project
local credentials = require "aws-sdk.core.credentials"
credentials.set(sys.get_config("aws.access_key"), sys.get_config("aws.secret_access_key"))
-- Initialise the AWS service to use, in this case GameLift
local gamelift = require "aws-sdk.gamelift"
gamelift.init({ region = "eu-central-1" })
-- Make a call to a GameLift endpoint
local input = gamelift.CreateGameSessionInput({
CreatorId = "c6e209af-4ac0-47b4-c752-60f81db6d2d0",
AliasId = "alias-4cfbed10-a54d-4e9f-8bc0-ba7f98a6ef40",
Name = "My session",
MaximumPlayerSessionCount = 10
})
gamelift.CreateGameSessionAsync(input, function(response, error_message)
if not error_message then
print(response.GameSession.GameSessionId)
end
end)
GameLift is the only service that has been properly tested.
The SDK generates the code for all AWS services, their input and output including input validation. The code generator uses official AWS SDK API definitions from the AWS SDK for Javascript project. The code generator uses a Mustache template and a small Python script to parse the API definitions and outputs one Lua file per AWS service. You can run the generator yourself from a terminal:
python generate.py
The script reads the definition files from apis/
folder and outputs generated code to the aws-sdk/
folder.
Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.
- Ask a question on the Defold forum
- Come join the Defold slack channel
- If it turns out that you may have found a bug, please open an issue
If you encounter a bug with the AWS SDK for Lua we would like to hear about it. Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. It’s helpful if you include the version of the SDK and the Lua version you’re using. Please include a stack trace and reduced repro case when appropriate, too.
The GitHub issues are intended for bug reports and feature requests. For help and questions with using the AWS SDK for Lua please make use of the resources listed in the Getting Help section. There are limited resources available for handling issues and by keeping the list of open issues lean we can respond in a timely manner.
This SDK is distributed under the Apache License, Version 2.0, see LICENSE.txt for more information.
The SDK uses code from the following projects:
- AWS Service definitions from the AWS SDK for Javascript
- Cryptographic functions from the Lua-Lockbox project.
- JSON encoder from json.lua
- URL encode/decode from the Lua User Wiki