Skip to content

Instantly share code, notes, and snippets.

View timo-boehm's full-sized avatar

Timo Böhm timo-boehm

  • Cologne, Germany
View GitHub Profile
@timo-boehm
timo-boehm / lambdapermission.tf
Created May 27, 2020 08:34
Terraform Snippet for Lambda Permission
resource "aws_lambda_permission" "triggered_by_sns" {
statement_id = "AllowExecutionFromSNS"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.triggered_process.arn
principal = "sns.amazonaws.com"
source_arn = aws_sns_topic.lambda_trigger.arn
}
@timo-boehm
timo-boehm / lambdafunction.tf
Created May 27, 2020 08:34
Terraform Snippet for Lambda Function Resource
resource "aws_lambda_function" "triggered_process" {
function_name = "triggered_process"
filename = data.archive_file.lambda.output_path
source_code_hash = data.archive_file.lambda.output_base64sha256
handler = "lambda.lambda_handler"
role = aws_iam_role.lambda_exec_role.arn
runtime = "python3.8"
tags = local.common_tags
environment {
variables = {
@timo-boehm
timo-boehm / lambdarolepolicy.tf
Last active May 27, 2020 08:33
Terraform Snippet for Lambda Role and Policy
resource "aws_iam_role" "lambda_exec_role" {
name = "lambda_exec_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
@timo-boehm
timo-boehm / lambdacode.tf
Created May 27, 2020 08:31
Terraform snippet for Lambda code
data "archive_file" "lambda" {
type = "zip"
source_file = "lambda.py"
output_path = "lambda.zip"
}
@timo-boehm
timo-boehm / sns_topics.tf
Created May 27, 2020 08:27
Terraform Snippet of Topics
resource "aws_sns_topic" "lambda_trigger" {
name = "lambda_trigger"
tags = local.common_tags
}
resource "aws_sns_topic" "sender_monitoring" {
name = "sender_monitoring"
tags = local.common_tags
}
@timo-boehm
timo-boehm / rule.tf
Created May 27, 2020 08:21
Terraform Snippet of Rule
resource "aws_ses_receipt_rule" "trigger_processing" {
name = "trigger_forwarding"
recipients = local.open_email
enabled = true
rule_set_name = aws_ses_active_receipt_rule_set.trigger_rules.rule_set_name
sns_action {
topic_arn = aws_sns_topic.lambda_trigger.arn
position = 1
}
}
@timo-boehm
timo-boehm / ruleset.tf
Created May 27, 2020 08:20
Terraform Snippet of Ruleset
resource "aws_ses_active_receipt_rule_set" "trigger_rules" {
rule_set_name = "trigger_rules"
}
@timo-boehm
timo-boehm / local_variables.tf
Created May 27, 2020 08:19
Terraform Snippet of Local Variables
locals {
common_tags = {
creator = "terraform"
project = "email-trigger"
}
open_email = ["trigger@domain.com"]
}
@timo-boehm
timo-boehm / profile.tf
Created May 27, 2020 08:18
Terraform Snippet of Profile
provider "aws" {
profile = "default"
region = "eu-west-1"
}
@timo-boehm
timo-boehm / buckets.yaml
Created May 18, 2020 13:40
Basic Setup for two S3 buckets on AWS.
DataBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub "${SERVICENAME}-data-bucket"
ArtifactBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub "${SERVICENAME}-artifact-bucket"