Skip to content

Instantly share code, notes, and snippets.

View Mirch's full-sized avatar
🎯
Focusing

Mircea Teodor Oprea Mirch

🎯
Focusing
View GitHub Profile
public class FileHandler : IFileHandler
{
private readonly TransferzorDbContext _context;
private readonly IAwsS3FileManager _s3FileManager;
public FileHandler(
TransferzorDbContext context,
IAwsS3FileManager s3FileManager)
{
_context = context;
name: Rust CRUD pipeline
on:
push:
branches: [ master ]
paths:
- 'rust_crud/**'
- '.github/workflows/rust-crud-pipeline.yml'
env:
@Mirch
Mirch / main.tf
Last active January 27, 2022 20:39
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.48.0"
}
archive = {
source = "hashicorp/archive"
version = "~> 2.2.0"
}
resource "aws_apigatewayv2_deployment" "api_deployment" {
api_id = aws_apigatewayv2_api.users_api.id
description = "API deployment"
triggers = {
redeployment = sha1(join(",", [
jsonencode(aws_apigatewayv2_integration.get_user_integration),
jsonencode(aws_apigatewayv2_route.get_user_route),
jsonencode(aws_apigatewayv2_integration.create_user_integration),
jsonencode(aws_apigatewayv2_route.create_user_route),
import os
function_parent_folder = "./lambda_functions"
build_target = "x86_64-unknown-linux-musl"
output_file_name = "bootstrap"
print("[BUILD] Starting Rust functions building process...")
function_folders = [name for name in os.listdir(function_parent_folder)]
# Output value definitions
output "invoke_url" {
value = aws_apigatewayv2_stage.api_stage.invoke_url
}
resource "aws_lambda_permission" "get_user_api_permission" {
function_name = aws_lambda_function.get_user_lambda.function_name
action = "lambda:InvokeFunction"
principal = "apigateway.amazonaws.com"
source_arn = "${aws_apigatewayv2_api.users_api.execution_arn}/*/*/${split("/", aws_apigatewayv2_route.get_user_route.route_key)[1]}"
}
resource "aws_apigatewayv2_route" "get_user_route" {
api_id = aws_apigatewayv2_api.users_api.id
route_key = "GET /users"
target = "integrations/${aws_apigatewayv2_integration.get_user_integration.id}"
}
resource "aws_apigatewayv2_integration" "get_user_integration" {
api_id = aws_apigatewayv2_api.users_api.id
integration_type = "AWS_PROXY"
connection_type = "INTERNET"
description = "Get User"
integration_method = "POST"
integration_uri = aws_lambda_function.get_user_lambda.invoke_arn
payload_format_version = "2.0"
resource "aws_apigatewayv2_api" "users_api" {
name = "API"
description = "Users API"
protocol_type = "HTTP"
}
resource "aws_apigatewayv2_stage" "api_stage" {
api_id = aws_apigatewayv2_api.users_api.id
name = "$default"
auto_deploy = true