com.amazonaws.regions.Region Scala Examples
The following examples show how to use com.amazonaws.regions.Region.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: EagerCloudFormationDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.DeleteQueueRequest import com.amazonaws.services.cloudformation.AmazonCloudFormationClient import com.amazonaws.services.cloudformation.model.DeleteStackRequest import aws.daleks.util.Humid class EagerCloudFormationDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val cloudformation = withRegion(new AmazonCloudFormationClient(credentials), region) def exterminate = { val stacks = cloudformation.describeStacks.getStacks asScala stacks foreach { stack => try { info(this,s"** Exterminating CloudFormation Stack " + stack.getStackName()) Humid { cloudformation.deleteStack(new DeleteStackRequest().withStackName(stack.getStackName())) } } catch { case e: Exception => println(s"! Failed to exterminate Beanstalk Application ${stack.getStackName}: ${e.getMessage()}") } } } }
Example 2
Source File: EagerElastiCacheDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.DeleteQueueRequest import com.amazonaws.services.elasticache.AmazonElastiCacheClient import com.amazonaws.services.elasticache.model.DeleteCacheClusterRequest import aws.daleks.util.Humid class EagerElastiCacheDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val ecache = withRegion(new AmazonElastiCacheClient(credentials), region) def exterminate = { val caches = ecache.describeCacheClusters.getCacheClusters asScala caches foreach { c => try { info(this,"Exterminating Cache Cluster " + c.getCacheClusterId) Humid{ ecache.deleteCacheCluster(new DeleteCacheClusterRequest().withCacheClusterId(c.getCacheClusterId())) } } catch { case e: Exception => println(s"! Failed to exterminate Cache Cluster ${c.getCacheClusterId()}: ${e.getMessage()}") } } } }
Example 3
Source File: EagerRDSDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.services.rds.AmazonRDSClient import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.rds.model.DeleteDBInstanceRequest import aws.daleks.util.Humid class EagerRDSDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val rds = withRegion(new AmazonRDSClient(credentials), region) def exterminate = { val databases = rds.describeDBInstances.getDBInstances asScala databases foreach { db => println("** Exterminating RDS Database " + db.getDBInstanceIdentifier) val delReq = new DeleteDBInstanceRequest delReq.setDBInstanceIdentifier(db.getDBInstanceIdentifier()) delReq.setSkipFinalSnapshot(true); Humid { rds.deleteDBInstance(delReq) } } } }
Example 4
Source File: EagerSNSDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.DeleteQueueRequest import com.amazonaws.services.sns.AmazonSNSClient import scala.collection.JavaConverters._ import aws.daleks.util.Humid class EagerSNSDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val sns = withRegion(new AmazonSNSClient(credentials),region) def exterminate = { val topics = sns.listTopics.getTopics asScala topics.foreach { t => println("** Exterminating SNS Topic " + t.getTopicArn()) Humid {sns.deleteTopic(t.getTopicArn())} } } }
Example 5
Source File: EagerDynamoDBDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import com.amazonaws.services.s3.AmazonS3Client import com.amazonaws.regions.ServiceAbbreviations import scala.collection.JavaConverters._ import com.amazonaws.services.s3.model.{ Region => S3Region } import com.amazonaws.services.s3.model.S3ObjectSummary import com.amazonaws.services.s3.model.Bucket import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient import aws.daleks.util.Humid class EagerDynamoDBDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val dynamo = withRegion(new AmazonDynamoDBClient(credentials), region) def exterminate = { val tables: Seq[String] = dynamo.listTables.getTableNames asScala tables foreach { t => info(this,s"Exterminating DyanmoDB Table ${t}") Humid { dynamo.deleteTable(t) } } } }
Example 6
Source File: EagerEMRDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.DeleteQueueRequest import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClient import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest import aws.daleks.util.Humid class EagerEMRDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val emr = withRegion(new AmazonElasticMapReduceClient(credentials), region) def exterminate = { val clusters = emr.listClusters.getClusters.asScala clusters map { _.getId() } foreach { id => try { info(this,s"Exterminating Clusters $id") val req = new TerminateJobFlowsRequest req.setJobFlowIds(List(id).asJava) Humid { emr.terminateJobFlows(req) } } catch { case e: Exception => println(s"! Failed to exterminate Clusters ${id}: ${e.getMessage()}") } } } }
Example 7
Source File: EagerSQSDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.DeleteQueueRequest import aws.daleks.util.Humid class EagerSQSDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val sqs = withRegion(new AmazonSQSClient(credentials), region) def exterminate = { val queues = sqs.listQueues.getQueueUrls asScala queues foreach { q => println("Esterminating SQS Queue " + q) Humid { sqs.deleteQueue(new DeleteQueueRequest().withQueueUrl(q)) } } } }
Example 8
Source File: EagerS3Dalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.regions.Region import com.amazonaws.services.s3.AmazonS3Client import com.amazonaws.regions.ServiceAbbreviations import scala.collection.JavaConverters._ import com.amazonaws.services.s3.model.{ Region => S3Region } import com.amazonaws.services.s3.model.S3ObjectSummary import com.amazonaws.services.s3.model.Bucket import aws.daleks.util.Humid class EagerS3Dalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val s3 = { val s3 = new AmazonS3Client(credentials); val endpoint = region.getServiceEndpoint(ServiceAbbreviations.S3); s3.setEndpoint(endpoint); withRegion(s3, region) } def buckets = (s3.listBuckets.asScala).filter { bucket => val name = bucket.getName val keep = name.startsWith("logs") || name.startsWith("billing") || name.startsWith("share") !keep }.filter { bucket => val locStr = s3.getBucketLocation(bucket.getName) val bucketRegion = S3Region.fromValue(locStr).toAWSRegion() bucketRegion.equals(region) } def exterminate = buckets foreach { bucket => val bucketName = bucket.getName //TODO: Support > 1000 Objects val objects = s3.listObjects(bucketName).getObjectSummaries.asScala.par objects.foreach { o => println("** Exterminating S3 Object " + bucket.getName + "/" + o.getKey); Humid { s3.deleteObject(o.getBucketName, o.getKey) } } val versions = s3.listVersions(bucketName, "").getVersionSummaries().asScala.par versions.foreach { v => println("** Exterminating S3 Version " + bucket.getName + "/" + v.getKey() + " v" + v.getVersionId); Humid { s3.deleteVersion(bucketName, v.getKey, v.getVersionId) } } try { println("** Exterminating S3 Bucket Policy " + bucket.getName) Humid { s3.deleteBucketPolicy(bucket.getName()) } println("** Exterminating S3 Bucket " + bucket.getName) Humid { s3.deleteBucket(bucket.getName) } } catch { case e: Exception => println(s"! Failed to exterminate S3 Bucket ${bucket.getName}: ${e.getMessage()}") } } }
Example 9
Source File: EagerBeanstalkDalek.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkClient import com.amazonaws.regions.Region import scala.collection.JavaConverters._ import com.amazonaws.services.elasticbeanstalk.model.EnvironmentStatus import com.amazonaws.services.elasticbeanstalk.model.ApplicationDescription import com.amazonaws.services.elasticbeanstalk.model.DeleteApplicationRequest import com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription import com.amazonaws.services.elasticbeanstalk.model.TerminateEnvironmentRequest import aws.daleks.util.Humid class EagerBeanstalkDalek(implicit region: Region, credentials: AWSCredentialsProvider) extends Dalek { val beanstalk = withRegion(new AWSElasticBeanstalkClient(credentials), region) def exterminate = { val TERMINATED = EnvironmentStatus.Terminated.toString() val envs = beanstalk.describeEnvironments().getEnvironments().asScala filter { e => !TERMINATED.equalsIgnoreCase(e.getStatus()) } val apps = try { beanstalk.describeApplications.getApplications asScala } catch { case e: Exception => { println("Could not fectch beanstalk applications: " + e.getMessage()); List.empty } } envs foreach exterminateEnv apps foreach exterminateApp } def exterminateEnv(env: EnvironmentDescription) = try { val envName = env.getEnvironmentName() println(s"** Exterminating Beanstalk Environment ${envName} [${env.getStatus()} ] ") Humid { beanstalk.terminateEnvironment(new TerminateEnvironmentRequest() .withEnvironmentName(envName) .withTerminateResources(true)) } } catch { case e: Exception => println(s"! Failed to exterminate Beanstalk Environment ${env.getEnvironmentName()} [id: ${env.getEnvironmentId} ]: ${e.getMessage()}"); } def exterminateApp(app: ApplicationDescription) = try { println("** Exterminating Beanstalk Application " + app.getApplicationName()) Humid { beanstalk.deleteApplication(new DeleteApplicationRequest().withApplicationName(app.getApplicationName())) } } catch { case e: Exception => println(s"! Failed to exterminate Beanstalk Application ${app.getApplicationName()}: ${e.getMessage()}") } }
Example 10
Source File: EagerAWSDaleks.scala From aws-training-demo with Apache License 2.0 | 5 votes |
package aws.daleks.eager import com.amazonaws.regions.Regions import com.amazonaws.regions.Regions._ import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider import com.amazonaws.regions.Region import com.amazonaws.auth.DefaultAWSCredentialsProviderChain import com.amazonaws.auth.profile.ProfileCredentialsProvider object EagerAWSDaleks extends App { println("EXTERMINATE!") def findArg(arg:String):Option[String] = { val i = args.indexOf(s"-$arg") if ( i >= 0) Option(args(i+1)) else None } val profile = findArg("profile") implicit val credentials = profile match { case Some(prf) => new ProfileCredentialsProvider(prf) case None => new DefaultAWSCredentialsProviderChain } val excludedRegions = List(GovCloud,CN_NORTH_1) val regions = Regions.values diff excludedRegions println(s"Exterminating regions [${regions.mkString(",")}]") val globals = List( new EagerRoute53Dalek(), new EagerIAMDalek()) val regionals = regions .map { Region.getRegion(_) } .par .foreach { implicit region => println("Preparing extermination of region ["+region+"]") List(new EagerS3Dalek, new EagerBeanstalkDalek, new EagerCloudFormationDalek, new EagerDynamoDBDalek, new EagerElastiCacheDalek, new EagerEMRDalek, new EagerRDSDalek, new EagerS3Dalek, new EagerSNSDalek, new EagerSQSDalek, new EagerEC2Dalek) foreach {_.exterminate} } globals foreach { _.exterminate } println("EXTERMINATE!") }
Example 11
Source File: S3Config.scala From akka-persistence-s3 with MIT License | 5 votes |
package akka.persistence.s3 import com.amazonaws.regions.{ Regions, Region } import com.typesafe.config.Config private object AWSRegionNames { val GovCloud = Regions.GovCloud.getName val US_EAST_1 = Regions.US_EAST_1.getName val US_WEST_1 = Regions.US_WEST_1.getName val US_WEST_2 = Regions.US_WEST_2.getName val EU_WEST_1 = Regions.EU_WEST_1.getName val EU_CENTRAL_1 = Regions.EU_CENTRAL_1.getName val AP_SOUTHEAST_1 = Regions.AP_SOUTHEAST_1.getName val AP_SOUTHEAST_2 = Regions.AP_SOUTHEAST_2.getName val AP_NORTHEAST_1 = Regions.AP_NORTHEAST_1.getName val AP_NORTHEAST_2 = Regions.AP_NORTHEAST_2.getName val SA_EAST_1 = Regions.SA_EAST_1.getName val CN_NORTH_1 = Regions.CN_NORTH_1.getName } class S3ClientConfig(config: Config) { import AWSRegionNames._ val awsKey = config getString "aws-access-key-id" val awsSecret = config getString "aws-secret-access-key" val awsUseDefaultCredentialsProviderChain = config getBoolean "aws-use-default-credentials-provider-chain" val region: Region = config getString "region" match { case GovCloud => Region.getRegion(Regions.GovCloud) case US_EAST_1 => Region.getRegion(Regions.US_EAST_1) case US_WEST_1 => Region.getRegion(Regions.US_WEST_1) case US_WEST_2 => Region.getRegion(Regions.US_WEST_2) case EU_WEST_1 => Region.getRegion(Regions.EU_WEST_1) case EU_CENTRAL_1 => Region.getRegion(Regions.EU_CENTRAL_1) case AP_SOUTHEAST_1 => Region.getRegion(Regions.AP_SOUTHEAST_1) case AP_SOUTHEAST_2 => Region.getRegion(Regions.AP_SOUTHEAST_2) case AP_NORTHEAST_1 => Region.getRegion(Regions.AP_NORTHEAST_1) case AP_NORTHEAST_2 => Region.getRegion(Regions.AP_NORTHEAST_2) case SA_EAST_1 => Region.getRegion(Regions.SA_EAST_1) case CN_NORTH_1 => Region.getRegion(Regions.CN_NORTH_1) } val endpoint: Option[String] = { val e = config getString "endpoint" if (e == "default") None else Some(e) } object options { val pathStyleAccess = config getBoolean "options.path-style-access" val chunkedEncodingDisabled = config getBoolean "options.chunked-encoding-disabled" } }
Example 12
Source File: S3EventMigrationHandler.scala From flyway-awslambda with MIT License | 5 votes |
package crossroad0201.aws.flywaylambda import com.amazonaws.regions.{Region, Regions} import com.amazonaws.services.lambda.runtime.events.S3Event import com.amazonaws.services.lambda.runtime.{Context, RequestHandler} import com.amazonaws.services.s3.{AmazonS3, AmazonS3Client} import scala.util.{Failure, Success} class S3EventMigrationHandler extends RequestHandler[S3Event, Unit] with S3MigrationHandlerBase { override def handleRequest(event: S3Event, context: Context): Unit = { val logger = context.getLogger implicit val s3Client: AmazonS3 = new AmazonS3Client().withRegion(Region.getRegion(Regions.fromName(event.getRecords.get(0).getAwsRegion))) logger.log(s"Flyway migration start. by ${event.getRecords.get(0).getEventName} s3://${event.getRecords.get(0).getS3.getBucket.getName}/${event.getRecords.get(0).getS3.getObject.getKey}") val s3 = event.getRecords.get(0).getS3 val migrationPrefix = { val objectKey = s3.getObject.getKey objectKey.substring(0, objectKey.lastIndexOf("/")) } migrate(s3.getBucket.getName, migrationPrefix)(context, s3Client) match { case Success(r) => logger.log(r) case Failure(e) => e.printStackTrace() } } }
Example 13
Source File: InvokeMigrationHandler.scala From flyway-awslambda with MIT License | 5 votes |
package crossroad0201.aws.flywaylambda import java.io.{BufferedOutputStream, InputStream, OutputStream, PrintWriter} import com.amazonaws.regions.{Region, Regions} import com.amazonaws.services.lambda.runtime.{Context, RequestStreamHandler} import com.amazonaws.services.s3.{AmazonS3, AmazonS3Client} import scala.io.{BufferedSource, Codec} import scala.util.{Failure, Success, Try} class InvokeMigrationHandler extends RequestStreamHandler with S3MigrationHandlerBase { type BucketName = String type Prefix = String type ConfFileName = String override def handleRequest(input: InputStream, output: OutputStream, context: Context): Unit = { def parseInput: Try[(BucketName, Prefix, ConfFileName)] = Try { import spray.json._ import DefaultJsonProtocol._ val json = new BufferedSource(input)(Codec("UTF-8")).mkString val jsObj = JsonParser(json).toJson.asJsObject jsObj.getFields( "bucket_name", "prefix" ) match { case Seq(JsString(b), JsString(p)) => { jsObj.getFields( "flyway_conf" ) match { case Seq(JsString(c)) => (b, p, c) case _ => (b, p, "flyway.conf") } } case _ => throw new IllegalArgumentException(s"Missing require key [bucketName, prefix]. - $json") } } val logger = context.getLogger implicit val s3Client: AmazonS3 = new AmazonS3Client().withRegion(Region.getRegion(Regions.fromName(sys.env("AWS_REGION")))) (for { i <- parseInput _ = { logger.log(s"Flyway migration start. by invoke lambda function(${i._1}, ${i._2}, ${i._3}).") } r <- migrate(i._1, i._2, i._3)(context, s3Client) } yield r) match { case Success(r) => logger.log(r) val b = r.getBytes("UTF-8") val bout = new BufferedOutputStream(output) Stream.continually(bout.write(b)) bout.flush() case Failure(e) => e.printStackTrace() val w = new PrintWriter(output) w.write(e.toString) w.flush() } } }
Example 14
Source File: SQSConsumer.scala From sqs-kafka-connect with Apache License 2.0 | 5 votes |
package com.hivehome.kafka.connect.sqs import javax.jms.{JMSException, MessageConsumer, Session} import com.amazon.sqs.javamessaging.SQSConnectionFactory import com.amazonaws.auth.{AWSCredentialsProviderChain, BasicAWSCredentials, DefaultAWSCredentialsProviderChain} import com.amazonaws.internal.StaticCredentialsProvider import com.amazonaws.regions.{Region, Regions} object SQSConsumer { def apply(conf: Conf): MessageConsumer = { val chain = buildCredentialsProviderChain(conf) createSQSConsumer(conf, chain) } @throws(classOf[JMSException]) private def createSQSConsumer(conf: Conf, chain: AWSCredentialsProviderChain): MessageConsumer = { val region = Regions.fromName(conf.awsRegion) val connectionFactory = SQSConnectionFactory.builder .withRegion(Region.getRegion(region)) .withAWSCredentialsProvider(chain) .build val connection = connectionFactory.createConnection val session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE) val queue = session.createQueue(conf.queueName.get) val consumer = session.createConsumer(queue) connection.start() consumer } private def buildCredentialsProviderChain(conf: Conf): AWSCredentialsProviderChain = { (conf.awsKey, conf.awsSecret) match { case (Some(key), Some(secret)) => val credentials = new BasicAWSCredentials(key, secret) new AWSCredentialsProviderChain(new StaticCredentialsProvider(credentials), new DefaultAWSCredentialsProviderChain) case _ => new DefaultAWSCredentialsProviderChain } } }
Example 15
Source File: SQSSupport.scala From sqs-kafka-connect with Apache License 2.0 | 5 votes |
package com.hivehome.kafka.connect.sqs import com.amazonaws.regions.{Region, Regions} import com.amazonaws.services.sqs.AmazonSQSClient import com.amazonaws.services.sqs.model.{CreateQueueRequest, SendMessageRequest, SendMessageResult} import org.scalacheck.Gen import scala.collection.JavaConverters._ trait SQSSupport { val queueName = Gen.alphaStr .map(a => s"test-connect-${a.take(10)}") .sample.get var queueUrl: String = null val sqs = new AmazonSQSClient() sqs.setRegion(Region.getRegion(Regions.EU_WEST_1)) def createQueue(): Unit = { val request = new CreateQueueRequest(queueName) .withAttributes(Map("VisibilityTimeout" -> "2").asJava) val result = sqs.createQueue(request) queueUrl = result.getQueueUrl println("Url for created Queue = " + queueUrl) } def deleteQueue(): Unit = { sqs.deleteQueue(queueUrl) } def sendMessage(msgText: String): SendMessageResult = { sqs.sendMessage(new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody(msgText)) } }
Example 16
Source File: AwsNodeDiscoverer.scala From haystack-traces with Apache License 2.0 | 5 votes |
package com.expedia.www.haystack.trace.storage.backends.cassandra.client import java.util.Collections import com.amazonaws.regions.{Region, Regions} import com.amazonaws.services.ec2.AmazonEC2Client import com.amazonaws.services.ec2.model.{DescribeInstancesRequest, Filter, Instance, InstanceStateName} import org.slf4j.LoggerFactory import scala.collection.JavaConverters._ object AwsNodeDiscoverer { private val LOGGER = LoggerFactory.getLogger(AwsNodeDiscoverer.getClass) private[haystack] def discover(client: AmazonEC2Client, tags: Map[String, String]): Seq[String] = { val filters = tags.map { case (key, value) => new Filter("tag:" + key, Collections.singletonList(value)) } val request = new DescribeInstancesRequest().withFilters(filters.asJavaCollection) val result = client.describeInstances(request) val nodes = result.getReservations .asScala .flatMap(_.getInstances.asScala) .filter(isValidInstance) .map(_.getPrivateIpAddress) LOGGER.info("EC2 nodes discovered [{}]", nodes.mkString(",")) nodes } // check if an ec2 instance is in running state private def isValidInstance(instance: Instance): Boolean = { // instance should be in running state InstanceStateName.Running.toString.equals(instance.getState.getName) } }