Compare commits
No commits in common. '113d71e42a48d44a8ce633a2adc738b8d9005aba' and 'b42aae26d88057135bd9a3b234047c66d81488e5' have entirely different histories.
113d71e42a
...
b42aae26d8
@ -1,30 +0,0 @@
|
||||
resource "aws_api_gateway_resource" "transponder-tracker-load" {
|
||||
parent_id = aws_api_gateway_rest_api.transponder-tracker.root_resource_id
|
||||
path_part = "load"
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_method" "transponder-tracker-load" {
|
||||
authorization = "NONE"
|
||||
http_method = "POST"
|
||||
resource_id = aws_api_gateway_resource.transponder-tracker-load.id
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_integration" "transponder-tracker-load" {
|
||||
http_method = aws_api_gateway_method.transponder-tracker-load.http_method
|
||||
resource_id = aws_api_gateway_resource.transponder-tracker-load.id
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
type = "AWS_PROXY"
|
||||
uri = module.load-lambda.invoke_arn
|
||||
}
|
||||
|
||||
resource "aws_lambda_permission" "apigw_lambda_load" {
|
||||
statement_id = "AllowExecutionFromAPIGateway"
|
||||
action = "lambda:InvokeFunction"
|
||||
function_name = module.load-lambda.function_name
|
||||
principal = "apigateway.amazonaws.com"
|
||||
|
||||
# More: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html
|
||||
source_arn = "arn:aws:execute-api:${data.aws_region.current.name}:${data.aws_caller_identity.current.id}:${aws_api_gateway_rest_api.transponder-tracker.id}/*/${aws_api_gateway_method.transponder-tracker-load.http_method}${aws_api_gateway_resource.transponder-tracker-load.path}"
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
resource "aws_api_gateway_resource" "transponder-tracker-metrics" {
|
||||
parent_id = aws_api_gateway_rest_api.transponder-tracker.root_resource_id
|
||||
path_part = "metrics"
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_method" "transponder-tracker-metrics" {
|
||||
authorization = "NONE"
|
||||
http_method = "GET"
|
||||
resource_id = aws_api_gateway_resource.transponder-tracker-metrics.id
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_integration" "transponder-tracker-metrics" {
|
||||
http_method = aws_api_gateway_method.transponder-tracker-metrics.http_method
|
||||
resource_id = aws_api_gateway_resource.transponder-tracker-metrics.id
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
type = "AWS_PROXY"
|
||||
uri = module.metrics-lambda.invoke_arn
|
||||
}
|
||||
|
||||
resource "aws_lambda_permission" "apigw_lambda-metrics" {
|
||||
statement_id = "AllowExecutionFromAPIGateway"
|
||||
action = "lambda:InvokeFunction"
|
||||
function_name = module.metrics-lambda.function_name
|
||||
principal = "apigateway.amazonaws.com"
|
||||
|
||||
# More: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html
|
||||
source_arn = "arn:aws:execute-api:${data.aws_region.current.name}:${data.aws_caller_identity.current.id}:${aws_api_gateway_rest_api.transponder-tracker.id}/*/${aws_api_gateway_method.transponder-tracker-metrics.http_method}${aws_api_gateway_resource.transponder-tracker-metrics.path}"
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
resource "aws_api_gateway_rest_api" "transponder-tracker" {
|
||||
name = "transponder-tracker"
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_deployment" "transponder-tracker" {
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
|
||||
triggers = {
|
||||
# NOTE: The configuration below will satisfy ordering considerations,
|
||||
# but not pick up all future REST API changes. More advanced patterns
|
||||
# are possible, such as using the filesha1() function against the
|
||||
# Terraform configuration file(s) or removing the .id references to
|
||||
# calculate a hash against whole resources. Be aware that using whole
|
||||
# resources will show a difference after the initial implementation.
|
||||
# It will stabilize to only change when resources change afterwards.
|
||||
redeployment = sha1(jsonencode([
|
||||
aws_api_gateway_resource.transponder-tracker-load.id,
|
||||
aws_api_gateway_method.transponder-tracker-load.id,
|
||||
aws_api_gateway_integration.transponder-tracker-load.id,
|
||||
]))
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
create_before_destroy = true
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_api_gateway_stage" "transponder-tracker" {
|
||||
deployment_id = aws_api_gateway_deployment.transponder-tracker.id
|
||||
rest_api_id = aws_api_gateway_rest_api.transponder-tracker.id
|
||||
stage_name = "sandbox"
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
data "aws_iam_policy_document" "lambda-frontend-role" {
|
||||
statement {
|
||||
effect = "Allow"
|
||||
principals {
|
||||
type = "Service"
|
||||
identifiers = ["lambda.amazonaws.com"]
|
||||
}
|
||||
actions = ["sts:AssumeRole"]
|
||||
}
|
||||
}
|
||||
|
||||
module "frontend-lambda" {
|
||||
source = "./modules/lambda"
|
||||
name = "frontend"
|
||||
handler = "frontend"
|
||||
policy = data.aws_iam_policy_document.lambda-frontend-role.json
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
data "aws_caller_identity" "current" {}
|
||||
|
||||
data "aws_region" "current" {}
|
@ -1,22 +0,0 @@
|
||||
resource "aws_iam_role" "lambda-role" {
|
||||
name = "lambda-role"
|
||||
assume_role_policy = var.policy
|
||||
}
|
||||
|
||||
data "archive_file" "lambda-role" {
|
||||
type = "zip"
|
||||
source_file = "src/${var.name}.py"
|
||||
output_path = "src/${var.name}.zip"
|
||||
}
|
||||
|
||||
resource "aws_lambda_function" "lambda" {
|
||||
function_name = var.name
|
||||
runtime = "python3.11"
|
||||
|
||||
role = aws_iam_role.lambda-role.arn
|
||||
|
||||
handler = var.handler
|
||||
filename = "src/${var.name}.zip"
|
||||
source_code_hash = data.archive_file.lambda-role.output_base64sha256
|
||||
}
|
||||
|
@ -1,11 +0,0 @@
|
||||
output "arn" {
|
||||
value = aws_lambda_function.lambda.arn
|
||||
}
|
||||
|
||||
output "invoke_arn" {
|
||||
value = aws_lambda_function.lambda.invoke_arn
|
||||
}
|
||||
|
||||
output "function_name" {
|
||||
value = aws_lambda_function.lambda.function_name
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
variable "name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "handler" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "policy" {
|
||||
type = string
|
||||
}
|
@ -1 +0,0 @@
|
||||
pass
|
Loading…
Reference in New Issue