-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: add lambda to registry appflow events
- Loading branch information
1 parent
d3434d3
commit 368ae9b
Showing
10 changed files
with
183 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
Empty file.
Empty file.
7 changes: 7 additions & 0 deletions
7
preprod/us-east-2/terraform/module/lambdas/salesforce-events-function/build.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/bin/bash | ||
|
||
set -e | ||
|
||
cd module/lambdas/mapper-function/mapper | ||
CGO_ENABLED=0 | ||
go build -tags lambda.norpc -o main ./main.go | jq -Rs '{"status": "success", "output": .}' |
128 changes: 128 additions & 0 deletions
128
preprod/us-east-2/terraform/module/lambdas/salesforce-events-function/main.tf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
#======================================================================================================================= | ||
# NETSUITE SYNC LAMBDA | ||
#======================================================================================================================= | ||
resource "aws_iam_role_policy" "lambda_policy" { | ||
name = "lambda_policy" | ||
role = aws_iam_role.iam_for_lambda.id | ||
|
||
policy = jsonencode({ | ||
Version = "2012-10-17" | ||
Statement = [ | ||
{ | ||
Action = [ | ||
"logs:CreateLogGroup", | ||
"logs:CreateLogStream", | ||
"logs:PutLogEvents", | ||
"s3:*", | ||
"sqs:ChangeMessageVisibility", | ||
"sqs:DeleteMessage", | ||
"sqs:GetQueueAttributes", | ||
"sqs:ReceiveMessage" | ||
] | ||
Effect = "Allow" | ||
Resource = "*" | ||
} | ||
] | ||
}) | ||
} | ||
resource "aws_iam_role" "iam_for_lambda" { | ||
name = "iam_for_lambda" | ||
|
||
assume_role_policy = <<EOF | ||
{ | ||
"Version": "2012-10-17", | ||
"Statement": [ | ||
{ | ||
"Action": "sts:AssumeRole", | ||
"Principal": { | ||
"Service": "lambda.amazonaws.com" | ||
}, | ||
"Effect": "Allow", | ||
"Sid": "" | ||
} | ||
] | ||
} | ||
EOF | ||
} | ||
|
||
data "aws_ssm_parameter" "ns_url" { | ||
name = format("/%s/%s", upper(var.stage), "NS_URL") | ||
} | ||
data "aws_ssm_parameter" "ns_consumer_key" { | ||
name = format("/%s/%s", upper(var.stage), "NS_CONSUMER_KEY") | ||
} | ||
data "aws_ssm_parameter" "ns_consumer_secret" { | ||
name = format("/%s/%s", upper(var.stage), "NS_CONSUMER_SECRET") | ||
} | ||
data "aws_ssm_parameter" "ns_token_access" { | ||
name = format("/%s/%s", upper(var.stage), "NS_TOKEN_ACCESS") | ||
} | ||
data "aws_ssm_parameter" "ns_token_secret" { | ||
name = format("/%s/%s", upper(var.stage), "NS_TOKEN_SECRET") | ||
} | ||
data "aws_ssm_parameter" "ns_realm" { | ||
name = format("/%s/%s", upper(var.stage), "NS_REALM") | ||
} | ||
|
||
data "external" "mapper" { | ||
program = ["bash", "${path.module}/mapper/build.sh"] | ||
} | ||
data "archive_file" "lambda_function_payload" { | ||
depends_on = [data.external.mapper] | ||
type = "zip" | ||
output_file_mode = "0666" | ||
source_file = "${path.module}/mapper/main" | ||
output_path = "${path.module}/mapper/main.zip" | ||
} | ||
resource "aws_lambda_function" "lambda" { | ||
depends_on = [data.archive_file.lambda_function_payload] | ||
filename = data.archive_file.lambda_function_payload.output_path | ||
function_name = "netsuit-sync" | ||
description = "Netsuit sync lambda function" | ||
handler = "main" | ||
memory_size = 512 | ||
architectures = ["x86_64"] | ||
reserved_concurrent_executions = 2 | ||
role = aws_iam_role.iam_for_lambda.arn | ||
source_code_hash = filebase64sha256(data.archive_file.lambda_function_payload.output_path) | ||
runtime = "go1.x" | ||
timeout = 30 | ||
|
||
tracing_config { | ||
mode = "Active" | ||
} | ||
|
||
timeouts { | ||
create = "10m" | ||
} | ||
|
||
environment { | ||
variables = { | ||
NS_URL = data.aws_ssm_parameter.ns_url.value | ||
NS_CONSUMER_KEY = data.aws_ssm_parameter.ns_consumer_key.value | ||
NS_CONSUMER_SECRET = data.aws_ssm_parameter.ns_consumer_secret.value | ||
NS_TOKEN_ACCESS = data.aws_ssm_parameter.ns_token_access.value | ||
NS_TOKEN_SECRET = data.aws_ssm_parameter.ns_token_secret.value | ||
NS_REALM = data.aws_ssm_parameter.ns_realm.value | ||
} | ||
} | ||
} | ||
resource "aws_lambda_event_source_mapping" "event_source_mapping" { | ||
event_source_arn = var.sqs_queue_arn | ||
enabled = true | ||
function_name = aws_lambda_function.lambda.arn | ||
batch_size = 1 | ||
maximum_batching_window_in_seconds = 1 | ||
scaling_config { | ||
maximum_concurrency = 2 | ||
} | ||
} | ||
resource "aws_lambda_permission" "allow_sqs" { | ||
statement_id = "AllowExecutionFromSQS" | ||
action = "lambda:InvokeFunction" | ||
principal = "sqs.amazonaws.com" | ||
source_arn = var.sqs_queue_arn | ||
function_name = aws_lambda_function.lambda.arn | ||
|
||
} | ||
|
14 changes: 14 additions & 0 deletions
14
preprod/us-east-2/terraform/module/lambdas/salesforce-events-function/outputs.tf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
output "mapper_function_arn" { | ||
description = "The ARN of the Lambda function arn" | ||
value = aws_lambda_function.lambda.arn | ||
} | ||
|
||
output "mapper_function_name" { | ||
description = "The name of the Lambda function name" | ||
value = aws_lambda_function.lambda.function_name | ||
} | ||
|
||
output "mapper_function_id" { | ||
description = "The ID of the Lambda function id" | ||
value = aws_lambda_function.lambda.id | ||
} |
5 changes: 5 additions & 0 deletions
5
...od/us-east-2/terraform/module/lambdas/salesforce-events-function/salesforce-events/go.mod
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
module salesforce-events | ||
|
||
go 1.19 | ||
|
||
require github.com/aws/aws-lambda-go v1.41.0 // indirect |
2 changes: 2 additions & 0 deletions
2
...od/us-east-2/terraform/module/lambdas/salesforce-events-function/salesforce-events/go.sum
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
github.com/aws/aws-lambda-go v1.41.0 h1:l/5fyVb6Ud9uYd411xdHZzSf2n86TakxzpvIoz7l+3Y= | ||
github.com/aws/aws-lambda-go v1.41.0/go.mod h1:jwFe2KmMsHmffA1X2R09hH6lFzJQxzI8qK17ewzbQMM= |
17 changes: 17 additions & 0 deletions
17
...d/us-east-2/terraform/module/lambdas/salesforce-events-function/salesforce-events/main.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package main | ||
|
||
import ( | ||
"context" | ||
"fmt" | ||
"github.com/aws/aws-lambda-go/events" | ||
"github.com/aws/aws-lambda-go/lambda" | ||
) | ||
|
||
func handler(ctx context.Context, event events.CloudWatchEvent) error { | ||
fmt.Printf("Received Event: %v\n", event) | ||
return nil | ||
} | ||
|
||
func main() { | ||
lambda.Start(handler) | ||
} |
10 changes: 10 additions & 0 deletions
10
preprod/us-east-2/terraform/module/lambdas/salesforce-events-function/variables.tf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
variable "sqs_queue_arn" { | ||
type = string | ||
description = "SQS arn" | ||
} | ||
|
||
variable "stage" { | ||
type = string | ||
description = "Environment stage" | ||
default = "preprod" | ||
} |