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 istanze Amazon EC2 gestite da un provider di capacità.
Importante: prima di creare una funzione di istanza gestita, devi prima creare un provider di capacità. Queste funzioni di eventi Lambda richiedono un provider di capacità per definire l'infrastruttura Amazon EC2 che esegue 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 vCPU EC2 per il tuo provider di capacità. Puoi anche scegliere la modalità di ridimensionamento manuale delle istanze per impostare il tuo valore di ridimensionamento per un controllo preciso.
-
Scegli Crea fornitore di capacità 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 fornisce 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 (AWS CLI)
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 istanze Amazon EC2 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 autorizzazione EC2 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 and. CloudWatch X-Ray 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 istanze EC2 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 scalabile: imposta un massimo di 30 vCPU per il provider di capacità
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 temporanea: 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 istanze EC2 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 -
Elimina 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