Skip to content

Instantly share code, notes, and snippets.

@anik0054
anik0054 / SpecificationBuilder.java
Created February 19, 2020 19:04
Java specification builder
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.springframework.data.jpa.domain.Specification;
@anik0054
anik0054 / DynamoDBRecord.java
Created September 9, 2019 09:01
Add a record to DynamoDB
import java.time.LocalDateTime;
import java.time.ZoneId;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Item;
import com.amazonaws.services.dynamodbv2.document.Table;
@anik0054
anik0054 / index.js
Created September 9, 2019 08:17
AWS Lambda hanlder for DynamoDB Stream
exports.handler = async(event) => {
const eventName = event.Records[0].eventName;
const dynamodbRecord = event.Records[0].dynamodb;
if (eventName === 'REMOVE') {
const email = dynamodbRecord.OldImage.email.S;
console.log("Sending email to : " + email);
@anik0054
anik0054 / 01_sqs_based_autoscaling_policy.config
Last active January 11, 2019 10:53
Auto Scaling based on SQS message depth configuration
Resources:
ApproximateNumberOfMessagesVisibleAutoScalingAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmDescription: "Alarm if queue depth grows beyond threshold"
Namespace: "AWS/SQS"
MetricName: ApproximateNumberOfMessagesVisible
Dimensions:
- Name: QueueName