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>…