![Deploy to Salesforce](https://raw.githubusercontent.com/mattandneil/aws-sdk/master/README1.png)
The AWS SDK for Salesforce makes it easy for developers to access Amazon Web Services in Apex
code, and build robust applications and software using services like Amazon S3, Amazon EC2, etc.
Get started by installing the package: /packaging/installPackage.apexp?p0=04t6g000008SbOb
- Name: S3
- URL: https://s3.us-east-1.amazonaws.com/
- Identity Type: Named Principal
- Auth Protocol: AWS Signature V4
- AWS Access Key ID: [your key here]
- AWS Secret Access Key: [your secret here]
- AWS Region: us-east-1
- AWS Service: s3
SNS is an infrastructure for delivering messages. Publishers communicate asynchronously with subscribers by producing and sending a message to a topic. Subscribers include web servers / email addresses / Amazon SQS queues / AWS Lambda functions.
AWS.SNS.CreateTopicRequest request = new AWS.SNS.CreateTopicRequest();
request.url = 'https://sns.us-east-1.amazonaws.com/';
request.name = 'Your_Topic';
AWS.SNS.CreateTopicResponse response = new AWS.SNS.CreateTopic().call(request);
String topic = response.createTopicResult.topicArn;
AWS.SNS.PublishRequest request = new AWS.SNS.PublishRequest();
request.url = 'https://sns.us-east-1.amazonaws.com/';
request.message = 'Test_Message';
request.topicArn = 'arn:aws:sns:us-east-1:123456789012:Your_Topic';
AWS.SNS.PublishResponse response = new AWS.SNS.Publish().call(request);
The Apex client manipulates both buckets and contents. You can create and destroy objects, given the bucket name and the object key.
AWS.S3.CreateBucketRequest request = new AWS.S3.CreateBucketRequest();
request.url = 'https://s3.us-east-1.amazonaws.com/bucket';
AWS.S3.CreateBucketResponse response = new AWS.S3.CreateBucket().call(request);
AWS.S3.PutObjectRequest request = new AWS.S3.PutObjectRequest();
request.url = 'https://s3.us-east-1.amazonaws.com/bucket/key.txt';
request.body = Blob.valueOf('test_body');
AWS.S3.PutObjectResponse response = new AWS.S3.PutObject().call(request);
AWS.S3.GetObjectRequest request = new AWS.S3.GetObjectRequest();
request.url = 'https://s3.us-east-1.amazonaws.com/bucket/key.txt';
AWS.S3.GetObjectResponse response = new AWS.S3.GetObject().call(request);
System.debug(response.body); // 'test_body'
AWS.S3.ListObjectsRequest request = new AWS.S3.ListObjectsRequest();
request.url = 'https://s3.us-east-1.amazonaws.com/bucket';
AWS.S3.ListObjectsResponse response = new AWS.S3.ListObjects().call(request);
AWS.S3.DeleteObjectRequest request = new AWS.S3.DeleteObjectRequest();
request.url = 'https://s3.amazonaws.com/bucket/key.txt';
AWS.S3.DeleteObjectResponse response = new AWS.S3.DeleteObject().call(request);
EC2 provides scalable computing capacity in the cloud. The Apex client calls services to launch instances, terminate instances, etc. The API responds synchronously, but bear in mind that the the instance state transitions take time.
AWS.EC2.DescribeInstancesRequest request = new AWS.EC2.DescribeInstancesRequest();
request.url = 'https://ec2.amazonaws.com/';
AWS.EC2.DescribeInstancesResponse response = new AWS.EC2.DescribeInstances().call(request);
AWS.EC2.RunInstancesRequest request = new AWS.EC2.RunInstancesRequest();
request.url = 'https://ec2.amazonaws.com/';
request.imageId = 'ami-08111162';
AWS.EC2.RunInstancesResponse response = new AWS.EC2.RunInstances().call(request);
AWS.EC2.TerminateInstancesRequest request = new AWS.EC2.TerminateInstancesRequest();
request.url = 'https://ec2.amazonaws.com/';
request.instanceId = new List<String>{'i-01234567890abcdef'};
request.dryRun = true;
AWS.EC2.TerminateInstancesResponse response = new AWS.EC2.TerminateInstances().call(request);
While we can't provide ad-hoc support for this code, please contact us with your company
name and address if you need a warranty for its use and we will assist: www.streamscript.com/contact