Skip to main content
Glama
i-dot-ai
by i-dot-ai
lambda.tf3.37 kB
module "parliament_mcp_ingest_lambda" { source = "git::https://github.com/i-dot-ai/i-dot-ai-core-terraform-modules.git//modules/infrastructure/lambda?ref=v2.0.1-lambda" image_uri = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${var.region}.amazonaws.com/parliament-mcp-lambda:${var.image_tag}" image_config = { working_directory : "", } lambda_additional_policy_arns = { for idx, arn in [aws_iam_policy.parliament_mcp_secrets_manager.arn] : idx => arn } package_type = "Image" function_name = "${local.name}-parliament-mcp-ingest" timeout = 900 memory_size = 1024 aws_security_group_ids = [aws_security_group.parliament_mcp_security_group.id] subnet_ids = data.terraform_remote_state.vpc.outputs.private_subnets account_id = data.aws_caller_identity.current.account_id reserved_concurrent_executions = -1 permissions_boundary_name = "infra/${local.name}-perms-boundary-app" # Only schedule in prod, disabled in dev schedule = terraform.workspace == "prod" ? "cron(0 5 ? * * *)" : null environment_variables = { APP_NAME = "${local.name}-parliament-mcp-ingest" ENVIRONMENT = terraform.workspace PROJECT_NAME = local.name } } data "aws_iam_policy_document" "parliament_mcp_secrets_manager" { statement { effect = "Allow" actions = [ "secretsmanager:GetSecretValue" ] resources = [ "arn:aws:secretsmanager:${var.region}:${data.aws_caller_identity.current.account_id}:secret:i-dot-ai-${terraform.workspace}-parliament-mcp-environment-variables-*" ] } statement { effect = "Allow" actions = [ "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath" ] resources = [ "arn:aws:ssm:*:${data.aws_caller_identity.current.account_id}:parameter/${local.name}/env_secrets/*" ] } statement { effect = "Allow" actions = [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", ] resources = [ data.terraform_remote_state.platform.outputs.kms_key_arn, ] } } resource "aws_iam_policy" "parliament_mcp_secrets_manager" { name = "${local.name}-secrets-ssm-access-policy" policy = data.aws_iam_policy_document.parliament_mcp_secrets_manager.json } resource "aws_security_group" "parliament_mcp_security_group" { vpc_id = data.terraform_remote_state.vpc.outputs.vpc_id description = "${local.name} parliament mcp lambda SG" name = "${local.name}-parliament-mcp-lambda-sg" lifecycle { create_before_destroy = true } } resource "aws_security_group_rule" "parliament_mcp_ingest_lambda_to_443_egress" { type = "egress" from_port = 443 to_port = 443 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] ipv6_cidr_blocks = ["::/0"] security_group_id = aws_security_group.parliament_mcp_security_group.id } resource "aws_security_group_rule" "parliament_mcp_ingest_lambda_to_qdrant_egress" { type = "egress" from_port = 6333 to_port = 6333 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] ipv6_cidr_blocks = ["::/0"] security_group_id = aws_security_group.parliament_mcp_security_group.id }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/i-dot-ai/parliament-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server