Purescript wrapper for AWS SDK. See usage
This is a Purescript wrapper for the AWS JavaScript SDK that we use for our projects at Hivemind Technologies AG. Rather than aiming for a full compatibility of the AWS SDK, we strive for a wrapper that is Purescript-idomatic and covers the things that we need. If you are looking for a more complete but less idiomatic library, you might want to have a look into purescript-aws-sdk, which auto-generates Purescript code from the AWS SDK sources.
Currently we have some functionality for the following modules:
- CloudWatch
- CloudWatchLogs
- CostExplorer
- EC2
- Lambda
- SecurityTokenService (STS)
- DynamoDB
- SecretsManager
- KMS
- S3
While we do not have any plans to support other features that we currently don't use, we do welcome contributions of missing features.
spago install aws-sdk-basic
import Prelude
import AWS.Lambda as AWSLambda
import AWS.Core.Types
import Effect.Aff (Aff)
import Effect.Class (liftEffect)
mydata = { name: "" } -- create some data
type Result = { hello :: String } -- define some result type
callLambda :: Aff Result
callLambda = do
client <- liftEffect $ AWSLambda.makeClient {} -- create the client
let
arn = Arn "arn:aws:lambda:<<REGION>>:<<ACCOUNT>>:function:<<LAMBDA-NAME>>" -- set the arn of your lambda
result <- AWSLambda.invoke client arn mydata -- invoke the lambda
pure result
The other modules work in a similar way. You create the client first, and then call a function passing the client as well as other parameters.
You can customise the client by passing in any additonal options, e.g.:
EC2.makeClient
{ region: Region "eu-west-1"
, accessKeyId : AccessKeyId "my-access-key-id"
, secretAccessKey : AccessKeyId "my-secret-access-key"
, sessionToken : SessionToken "my-session-token"
}