Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Guida introduttiva alle istanze gestite Lambda
Creazione di una funzione Lambda Managed Instance (console)
Puoi utilizzare la console Lambda per creare una funzione di istanza gestita che viene eseguita su EC2 istanze Amazon gestite da un provider di capacità.
Importante: prima di creare una funzione di istanza gestita, devi prima creare un provider di capacità. Queste funzioni richiedono che un provider di capacità definisca l' EC2 infrastruttura Amazon che eseguirà le tue funzioni.
Per creare una funzione Lambda Managed Instance (console)
-
Apri la console Lambda.
-
Scegli Capacity providers dal riquadro di navigazione a sinistra.
-
Scegli Crea fornitore di capacità.
-
Nella sezione Impostazioni del fornitore di capacità, inserisci un nome per il tuo fornitore di capacità.
-
Seleziona VPC e autorizzazioni per il tuo provider di capacità. Puoi usarne uno esistente o crearne uno nuovo. Per informazioni sulla creazione del ruolo operatore richiesto, consulta Ruolo operatore Lambda per istanze gestite Lambda.
-
Espandere Advanced settings (Impostazioni avanzate).
-
Definisci i requisiti dell'istanza scegliendo l'architettura del processore e i tipi di istanza.
-
In Auto scaling, specifica il numero massimo di EC2 v CPUs per il tuo provider di capacità. Puoi anche scegliere la modalità di ridimensionamento manuale dell'istanza per impostare il tuo valore di ridimensionamento per un controllo preciso.
-
Scegli Create Capacity Provider per crearne uno nuovo.
-
Quindi, scegli Crea funzione.
-
Scegli Crea da zero.
-
Nel riquadro Informazioni di base, fornisci un nome per la funzione.
-
Per Runtime, scegli uno dei Runtime supportati.
-
Scegliete l'architettura per la vostra funzione (la stessa che avete selezionato per il provider di capacità). Per impostazione predefinita, x86_64.
-
In Autorizzazioni, assicurati di disporre dell'autorizzazione per il ruolo di esecuzione scelto. Altrimenti, puoi creare un nuovo ruolo.
-
In Configurazioni aggiuntive, scegli il tipo di elaborazione come Istanze gestite Lambda.
-
L'ARN del fornitore di capacità creato nei passaggi precedenti deve essere preselezionato.
-
Scegli la dimensione della memoria e la memoria dell'ambiente di esecuzione (GiB) per rapporto vCPU.
-
Scegli Crea funzione.
La funzione Lambda Managed Instance viene creata e fornirà capacità al provider di capacità specificato. La creazione della funzione richiede in genere diversi minuti. Una volta completata, è possibile modificare il codice della funzione ed eseguire il primo test.
Creazione di una funzione Lambda Managed Instance (CLI AWS )
Prerequisiti
Prima di iniziare, assicurati di disporre di:
-
AWS CLI: installa e configura la CLI AWS . Per ulteriori informazioni, consulta Installazione o aggiornamento della versione più recente della AWS CLI.
-
Autorizzazioni IAM: il tuo utente o ruolo IAM deve disporre delle autorizzazioni per creare funzioni Lambda, fornitori di capacità e passare ruoli IAM. Tieni presente che ti servirà anche
iam:CreateServiceLinkedRolese è la prima volta che crei un provider di capacità nell'account o se il Service Linked Role (SLR) è stato eliminato.
Fase 1: Creare i ruoli IAM richiesti
Le istanze gestite Lambda richiedono due ruoli IAM: un ruolo di esecuzione per la funzione e un ruolo di operatore per il provider di capacità. Il ruolo di operatore consente a Lambda di avviare, terminare e monitorare le EC2 istanze Amazon per tuo conto. Il ruolo di esecuzione della funzione concede alla funzione le autorizzazioni per accedere ad altri servizi e risorse. AWS
Per creare il ruolo di esecuzione Lambda
-
Crea un documento sulla politica di fiducia che consenta a Lambda di assumere il ruolo:
cat > lambda-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF -
Crea il ruolo di esecuzione:
aws iam create-role \ --role-name MyLambdaExecutionRole \ --assume-role-policy-document file://lambda-trust-policy.json -
Allega la politica di esecuzione di base:
aws iam attach-role-policy \ --role-name MyLambdaExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Per creare il ruolo di gestore di capacità
-
Crea un documento sulla politica di fiducia che consenta a Lambda di assumere il ruolo di operatore:
cat > operator-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF -
Crea il ruolo dell'operatore:
aws iam create-role \ --role-name MyCapacityProviderOperatorRole \ --assume-role-policy-document file://operator-trust-policy.json -
Allega la politica di EC2 autorizzazioni richiesta:
aws iam attach-role-policy \ --role-name MyCapacityProviderOperatorRole \ --policy-arn arn:aws:iam::aws:policy/AWSLambdaManagedEC2ResourceOperator
Fase 2: Configurazione delle risorse VPC
Le istanze gestite Lambda vengono eseguite nel tuo VPC e richiedono una sottorete e un gruppo di sicurezza.
Per creare risorse VPC
-
Crea un VPC:
VPC_ID=$(aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --query 'Vpc.VpcId' \ --output text) -
Crea una sottorete:
SUBNET_ID=$(aws ec2 create-subnet \ --vpc-id $VPC_ID \ --cidr-block 10.0.1.0/24 \ --query 'Subnet.SubnetId' \ --output text) -
Crea un gruppo di sicurezza:
SECURITY_GROUP_ID=$(aws ec2 create-security-group \ --group-name my-capacity-provider-sg \ --description "Security group for Lambda Managed Instances" \ --vpc-id $VPC_ID \ --query 'GroupId' \ --output text)
Nota: le funzioni Lambda Managed Instances richiedono la configurazione VPC per accedere alle risorse esterne al VPC e trasmettere i dati di telemetria a Logs e X-Ray. CloudWatch Per i dettagli sulla configurazione, consulta Networking for Lambda Managed Instances.
Fase 3: creazione di un provider di capacità
Un provider di capacità gestisce le EC2 istanze che eseguono le funzioni Lambda.
Come creare un provider di capacità
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) aws lambda create-capacity-provider \ --capacity-provider-name my-capacity-provider \ --vpc-config SubnetIds=[$SUBNET_ID],SecurityGroupIds=[$SECURITY_GROUP_ID] \ --permissions-config CapacityProviderOperatorRoleArn=arn:aws:iam::${ACCOUNT_ID}:role/MyCapacityProviderOperatorRole \ --instance-requirements Architectures=[x86_64] \ --capacity-provider-scaling-config MaxVCpuCount=30
Questo comando crea un provider di capacità con la seguente configurazione:
-
Configurazione VPC: specifica la sottorete e il gruppo di sicurezza per le istanze EC2
-
Autorizzazioni: definisce il ruolo IAM utilizzato da Lambda per gestire le istanze EC2
-
Requisiti dell'istanza: specifica l'architettura x86_64
-
Configurazione di scalabilità: imposta un massimo di 30 v per il provider di capacità CPUs
Fase 4: Creare una funzione Lambda con codice in linea
Per creare una funzione con codice in linea
-
Innanzitutto, crea una semplice funzione Python e impacchettala in linea:
# Create a temporary directory for the function code mkdir -p /tmp/my-lambda-function cd /tmp/my-lambda-function # Create a simple Python handler cat > lambda_function.py << 'EOF' import json def lambda_handler(event, context): return { 'statusCode': 200, 'body': json.dumps({ 'message': 'Hello from Lambda Managed Instances!', 'event': event }) } EOF # Create a ZIP file zip function.zip lambda_function.py -
Crea la funzione Lambda utilizzando il file ZIP in linea:
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) REGION=$(aws configure get region) aws lambda create-function \ --function-name my-managed-instance-function \ --package-type Zip \ --runtime python3.13 \ --handler lambda_function.lambda_handler \ --zip-file fileb:///tmp/my-lambda-function/function.zip \ --role arn:aws:iam::${ACCOUNT_ID}:role/MyLambdaExecutionRole \ --architectures x86_64 \ --memory-size 2048 \ --ephemeral-storage Size=512 \ --capacity-provider-config LambdaManagedInstancesCapacityProviderConfig={CapacityProviderArn=arn:aws:lambda:${REGION}:${ACCOUNT_ID}:capacity-provider:my-capacity-provider}La funzione viene creata con:
-
Runtime — Python 3.13
-
Handler — La funzione in
lambda_handlerlambda_function.py -
Memoria: 2048 MB
-
Archiviazione effimera: 512 MB
-
Provider di capacità: collegamenti al provider di capacità creato
-
Fase 5: Pubblicare una versione della funzione
Per eseguire la funzione su Lambda Managed Instances, devi pubblicare una versione.
Per pubblicare una versione della funzione
aws lambda publish-version \ --function-name my-managed-instance-function
Questo comando pubblica la versione 1 della funzione e la distribuisce al provider di capacità.
Passaggio 6: richiama la funzione
Dopo la pubblicazione, puoi richiamare la tua funzione.
Per richiamare la tua funzione
aws lambda invoke \ --function-name my-managed-instance-function:1 \ --payload '{"name": "World"}' \ response.json # View the response cat response.json
La funzione viene eseguita sulle EC2 istanze gestite dal fornitore di capacità e restituisce una risposta.
Eliminazione
Per evitare di incorrere in addebiti, elimina le risorse che hai creato:
-
Eliminare la funzione:
aws lambda delete-function --function-name my-managed-instance-function -
Eliminare il fornitore di capacità:
aws lambda delete-capacity-provider --capacity-provider-name my-capacity-provider -
Eliminare le risorse VPC:
aws ec2 delete-security-group --group-id $SECURITY_GROUP_ID aws ec2 delete-subnet --subnet-id $SUBNET_ID aws ec2 delete-vpc --vpc-id $VPC_ID -
Elimina i ruoli IAM:
aws iam detach-role-policy \ --role-name MyLambdaExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name MyCapacityProviderOperatorRole \ --policy-arn arn:aws:iam::aws:policy/AWSLambdaManagedEC2ResourceOperator aws iam delete-role --role-name MyLambdaExecutionRole aws iam delete-role --role-name MyCapacityProviderOperatorRole