AWS LAMBDA → STACKIT · ARCHITECTUUR
AWS Lambda op STACKIT: kies het containerplatform per functie
Een Lambda-functie is code plus een trigger plus een factureringsmodel. STACKIT draait de code als permanent actief proces, als Cloud Foundry-app of als container op SKE, en de trigger moet opnieuw worden gebouwd. StackToIT beoordeelde een queue worker en een functie voor een periodiek rapport en deelde ze verschillend in, omdat de aanroeper van een functie zwaarder weegt dan de runtime.
De opties voor één functie
Kies per functie, niet per omgeving. Een queue worker, een HTTP-functie en een nachtelijke taak willen zelden hetzelfde platform.
| Optie | Wat verandert er | Afweging |
|---|---|---|
| Cloud Foundry-app | De handler wordt verpakt in een HTTP-server of worker-lus en met een manifest gepusht. Buildpacks stagen de code. | Weinig platformwerk en offline buildpacks voor gangbare talen. Of een buildpack precies uw runtimeversie meelevert, is niet gedocumenteerd, dus controleer het. De run vond geen gedocumenteerde manier om een kant-en-klaar image te pushen. |
| Container op SKE | U bouwt een image en draait het als Deployment, Job of CronJob op een managed Kubernetes-cluster. | Laat functies met een containerimage ongewijzigd en geeft schedules een eigen object. U beheert de manifests, de registry en de imagebuild. |
| Queue consumer in de service | De consumerlus voor de queue wordt in de applicatie geschreven, die uit RabbitMQ leest. | Maakt de event-source mapping overbodig, maar is een codewijziging en een herontwerp van de messaging, geen deployment. |
| STACKIT Functions API | Roept een API aan die de run alleen vond als specificatie van een vroege versie. | StackToIT biedt deze aanroepen alleen na een expliciete opt-in en nooit als standaardstap. Bouw er geen productieomgeving op. |
De rij over de Functions API geeft weer wat de run vond. Het productoverzicht van STACKIT vermeldde op 4 november 2026 geen functieservice (de runtimeproducten zijn Cloud Foundry, Edge Cloud en Kubernetes Engine) en de provider stackitcloud/stackit heeft, in de versie die de run gebruikte (0.121.0) en in 0.122.0, geen functieresource.
Een queue worker: de functie en de trigger
Invoer die voor deze pagina is geschreven en op 4 november 2026 is beoordeeld. Links: een functie met een containerimage en de bijbehorende SQS event-source mapping. Rechts: het Cloud Foundry-manifest dat StackToIT ervoor schreef, zonder de commentaarregels die in het bestand erboven staan.
resource "aws_lambda_function" "worker" {
function_name = "orders-worker"
role = aws_iam_role.fn.arn
package_type = "Image"
image_uri = "123456789012.dkr.ecr.eu-central-1.amazonaws.com/orders-worker:1.4.0"
memory_size = 512
timeout = 60
environment {
variables = {
QUEUE_URL = aws_sqs_queue.orders.url
}
}
}
resource "aws_lambda_event_source_mapping" "orders" {
event_source_arn = aws_sqs_queue.orders.arn
function_name = aws_lambda_function.worker.arn
batch_size = 10
}---
applications:
- name: "orders-worker"
memory: 512M
instances: 1 # one always-on instance; size from peak concurrency (App AutoScaler for elasticity)
stack: cflinuxfs4
buildpacks:
- ((buildpack))
no-route: true
health-check-type: process
env:
"QUEUE_URL": ((orders_worker_queue_url))REDESIGN, zekerheidsniveau LOW
Twee bevindingen komen samen: een SQS event-source mapping heeft op STACKIT geen trigger als tegenhanger en een containerimage geeft een buildpack niets om te stagen.
De worker draait zonder route
Het manifest stelt no-route en een procesgezondheidscontrole in, omdat niets de worker via HTTP aanroept. De commentaren in het bestand markeren deze twee attributen als niet bevestigd in de eigen documentatie van STACKIT.
De queue verhuist mee
De SQS-queue is ingedeeld als REPLATFORM, met een RabbitMQ-instance als concept. Queuenamen en visibility timeout worden niet aangemaakt; de consumer bevestigt in plaats daarvan met een acknowledgement.
Een geplande, via HTTP aangeroepen functie
De tweede functie heeft een zip-pakket, een schedule-regel en een functie-URL. De functie is ingedeeld als CONTAINERIZE met zekerheidsniveau MEDIUM. Rechts: het manifest, zonder de commentaarregels die in het bestand erboven staan.
resource "aws_lambda_function" "report" {
function_name = "nightly-report"
role = aws_iam_role.fn.arn
runtime = "python3.12"
handler = "app.handler"
filename = "report.zip"
memory_size = 256
timeout = 300
}
resource "aws_cloudwatch_event_rule" "nightly" {
name = "nightly-report"
schedule_expression = "cron(0 2 * * ? *)"
}---
applications:
- name: "nightly-report"
memory: 256M
instances: 1 # one always-on instance; size from peak concurrency (App AutoScaler for elasticity)
stack: cflinuxfs4
buildpacks:
- python_buildpack_offlineRuntime gekoppeld aan een buildpack
python3.12 wordt gekoppeld aan de offline Python-buildpack. STACKIT vermeldt die buildpack voor de stack cflinuxfs4, maar niet welke Python-versies erin zitten.
De schedule wordt een CronJob
De EventBridge-regel is ingedeeld als CONTAINERIZE en stelt een SKE-cluster op. Het CronJob-manifest zelf schrijft u handmatig.
URL beveiligd met IAM, publieke route
De functie-URL vereist AWS IAM-ondertekening. Een Cloud Foundry-route is publiek, dus de app moet aanroepers zelf authenticeren.
De platformblokken in Terraform
De twee Terraform-resources die deze beslissingen dragen: de organisatie die de apps host en het cluster voor containers. Spaces en apps worden met de cf-tool gepusht, niet met Terraform.
resource "stackit_scf_organization" "migrated_apps" {
project_id = var.project_id
name = "migrated-apps"
}resource "stackit_ske_cluster" "containers" {
project_id = var.project_id
name = "containers"
node_pools = [{
name = "workloads"
machine_type = var.containers_machine_type
minimum = var.containers_nodes_min
maximum = var.containers_nodes_max
availability_zones = var.availability_zones
}]
}Zo beslist u per functie
Wat roept de functie aan?
Een HTTP-aanroeper past bij een Cloud Foundry-route. Een queue vereist een consumerlus. Een schedule past bij een CronJob. Alles wat de functie in AWS aanriep, moet opnieuw worden gebouwd; volgens de manifests wordt geen enkele trigger automatisch overgenomen.
Hoe is de functie verpakt?
Een zip-pakket kan naar een buildpack. Een containerimage blijft een container en gaat dus naar SKE.
Is scale to zero nodig?
Cloud Foundry en SKE draaien instances waarvan u de omvang bepaalt. De facturering per aanroep en de scale to zero van Lambda worden niet overgenomen. Korte, zeldzame taken hoeven als CronJob geen instance vast te houden: ze draaien alleen volgens schema, op nodes die het cluster al heeft.
Hoe lang duurt een aanroep?
De Lambda-timeout wordt niet overgenomen: een timeout in een manifest is een opstarttimeout. Leg de limiet vast in de applicatie of in het platform eromheen.
Waartoe heeft de functie toegang?
De uitvoeringsrol wordt een serviceaccount of inloggegevens van een service die via de omgeving worden aangeleverd. Som op wat de gekoppelde policies toestonden en verleen hetzelfde op de STACKIT-doelen.
Vragen van platformteams
Is er een equivalent van Lambda op STACKIT?
Niet als algemeen beschikbare functieservice. Per november 2026 vermeldt het productoverzicht van STACKIT er geen en heeft de Terraform-provider geen functieresource, noch in de versie die de run gebruikte, noch in de huidige. De containerpaden zijn Cloud Foundry en SKE.
Waarom is de ene functie MEDIUM en de andere LOW?
Het nachtelijke rapport is een zip-pakket dat een offline buildpack kan stagen en de functie-URL wordt een route, met een bevinding over authenticatie. De queue worker heeft een event-source mapping zonder tegenhanger en een containerimage die buildpacks niet kunnen stagen.
Bouwt StackToIT mijn images of schrijft StackToIT mijn CronJobs?
Nee. StackToIT stelt de platformresources en de Cloud Foundry-manifests op en benoemt wat overblijft: de imagebuild, de registry, de handlerverpakking en het CronJob-manifest.
Wat gebeurt er met idempotentie?
AWS documenteert dat een SQS event source mapping elke gebeurtenis minstens één keer verwerkt en raadt idempotente code aan. Een RabbitMQ-consumer met acknowledgements heeft dezelfde behoefte, dus behoud die eigenschap.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.