Skip to content

Instantly share code, notes, and snippets.

View aritranag20's full-sized avatar

Aritra Nag aritranag20

  • Amazon Web Services
View GitHub Profile
resource "aws_iam_role" "lambda_role" {
name = "SNS_TRANSFORM_MESSAGE_LAMBDA_ROLE"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
import os
import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
print(event)
for i in event['Records']:
resource "aws_codestarnotifications_notification_rule" "code_build" {
detail_type = "BASIC"
event_type_ids = [
"codebuild-project-build-state-failed"]
name = "tf-code-build-s3_upload-notifications"
resource = var.codebuild_s3_upload.arn
target {
address = var.lambdanotifications.arn
data "aws_iam_policy_document" "notif_access" {
statement {
actions = ["sns:Publish"]
principals {
type = "Service"
identifiers = ["codestar-notifications.amazonaws.com", "codebuild.amazonaws.com", "codecommit.amazonaws.com", "codepipeline.amazonaws.com"]
}
resources = [var.lambdanotifications.arn]
data "template_file" "buildspec_cacheinvalidation" {
template = file("${path.module}/invalidate/buildspec.yml")
vars = {
env = var.env
staticwebsite = var.staticwebsite
distributionid = var.distributionid
}
}
resource "aws_iam_role" "static_build_role_cacheinvalidation" {
data "template_file" "buildspec_cacheinvalidation" {
template = file("${path.module}/invalidate/buildspec.yml")
vars = {
env = var.env
staticwebsite = var.staticwebsite
distributionid = var.distributionid
}
}
resource "aws_iam_role" "static_build_role_cacheinvalidation" {
version: 0.2
env:
variables:
NODE_ENV: "${env}"
DISTRIBUTION_ID: "${distributionid}"
phases:
post_build:
commands:
data "template_file" "buildspec_s3upload" {
template = file("${path.module}/s3upload/buildspec.yml")
vars = {
env = var.env
staticwebsite = var.staticwebsite
distributionid = var.distributionid
}
}
resource "aws_iam_role" "static_build_role_s3upload" {
data "template_file" "buildspec_s3upload" {
template = file("${path.module}/s3upload/buildspec.yml")
vars = {
env = var.env
version: 0.2
env:
variables:
NODE_ENV: "${env}"
S3_STATIC_WEBSITE_BUCKET: "${staticwebsite}"
DISTRIBUTION_ID: "${distributionid}"
phases:
install: