Home

Awesome

AWSSDK.jl

Julia interface for Amazon Web Services.

Based on JuliaCloud/AWSCore.jl.

This package provides automatically generated low-level API wrappers and documentation strings for each operation in each Amazon Web Service.

The following high-level packages are also available: AWS S3, AWS SQS, AWS SNS, AWS IAM, AWS EC2, AWS Lambda, AWS SES and AWS SDB. These packages include operation specific result structure parsing, error handling, type convenience functions, iterators, etc.

Full documentation is available here, or see below for some examples of how to get started.

This package is generated by AWSCore.jl/src/AWSAPI.jl.

Configuration

Option 1: environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY (and AWS_DEFAULT_REGION),

Option 2: ~/.aws/credentials file:

[default]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Option 3: run the AWS CLI configure command: aws configure.

SNS Example

julia> using AWSSDK.SNS

julia> AWSCore.set_debug_level(1)

julia> SNS.publish(PhoneNumber="+61401555555", Message="Hello")
Dict{String,Any} with 1 entry:
  "MessageId" => "f0607542-7b54-5c66-b271-27453b0bd979"

S3 Example

julia> using AWSSDK.S3

julia> r = S3.list_buckets()
XMLDict.XMLDictElement with 2 entries:
  "Owner"   => <Owner>…
  "Buckets" => <Buckets>…

julia> v = [b["Name"] for b in r["Buckets"]["Bucket"]]
3-element Array{String,1}:
 "bucket1"
 "bucket2"
 "bucket3"

julia> S3.put_object(Bucket="bucket1", Key="myfile", Body="mydata")
Response(200 OK, 10 headers, 0 bytes in body)

julia> S3.get_object(Bucket="bucket1", Key="myfile") |> String
"mydata"

EC2 Example

julia> using AWSSDK.EC2

julia> r = EC2.describe_images(Filter=[
    ["Name" => "owner-alias", "Value" => "amazon"],
    ["Name" => "name", "Value" => "amzn-ami-hvm-2015.09.1.x86_64-gp2"]])

XMLDict.XMLDictElement with 2 entries:
  "requestId" => "af8cf64c-d5b0-4e2e-959c-3f703eeb362f"
  "imagesSet" => <imagesSet>…

julia> r["imagesSet"]["item"]
XMLDict.XMLDictElement with 17 entries:
  "imageId"            => "ami-48d38c2b"
  "imageLocation"      => "amazon/amzn-ami-hvm-2015.09.1.x86_64-gp2"
  "imageState"         => "available"
  "imageOwnerId"       => "137112412989"
  "creationDate"       => "2015-10-29T18:16:22.000Z"
  "isPublic"           => "true"
  "architecture"       => "x86_64"
  "imageType"          => "machine"
  "sriovNetSupport"    => "simple"
  "imageOwnerAlias"    => "amazon"
  "name"               => "amzn-ami-hvm-2015.09.1.x86_64-gp2"
  "description"        => "Amazon Linux AMI 2015.09.1 x86_64 HVM GP2"
  "rootDeviceType"     => "ebs"
  "rootDeviceName"     => "/dev/xvda"
  "blockDeviceMapping" => <blockDeviceMapping>…
  "virtualizationType" => "hvm"
  "hypervisor"         => "xen"

SES Example

julia> r = SES.send_email(
    Source = "sam@octech.com.au",
    Destination = ["ToAddresses" => ["sam@octech.com.au"]],
    Message = [
        "Subject" => ["Data" => "Hello"],
        "Body" => ["Text" =>  ["Data" => "Hello"]]
    ])
XMLDict.XMLDictElement with 2 entries:
  "SendEmailResult"  => <SendEmailResult>…
  "ResponseMetadata" => <ResponseMetadata>…