Utilizzo dei livelli - AWS Serverless Application Model

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à.

Utilizzo dei livelli

Utilizzo diAWS SAM, è possibile includere layer nelle applicazioni serverless. Per ulteriori informazioni sui livelli, consultaAWS LambdastratinellaAWS LambdaGuida per gli sviluppatori.

Questo argomento contiene informazioni relative ai seguenti argomenti:

  • Inclusione di livelli nella tua applicazione

  • Come vengono memorizzati localmente i layer nella cache

Per informazioni sulla creazione di layer personalizzati, vedereLivelli di costruzione.

Inclusione di livelli nella tua applicazione

Per includere livelli nell'applicazione, utilizzaLayersproprietà delAWS::Serverless::FunctionTipo di risorsa .

Di seguito è riportato un esempioAWS SAMmodello con funzione Lambda che include un livello:

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - <LayerVersion ARN>

Come vengono memorizzati localmente i layer nella cache

Quando invochi la funzione utilizzando uno deisam localcomandi, il pacchetto layer della funzione viene scaricato e memorizzato nella cache sull'host locale.

Nella tabella seguente vengono illustrati i percorsi di directory cache predefiniti per i diversi sistemi operativi.

Sistema operativo Ubicazione
Windows 7 C:\Users\<user>\AppData\Roaming\AWS SAM
Windows 8 C:\Users\<user>\AppData\Roaming\AWS SAM
Windows 10 C:\Users\<user>\AppData\Roaming\AWS SAM
macOS ~/.aws-sam/layers-pkg
Unix ~/.aws-sam/layers-pkg

Dopo che il pacchetto è stato memorizzato nella cache,AWS SAMCLI sovrappone i livelli su un'immagine Docker utilizzata per richiamare la funzione. LaAWS SAMCLI genera i nomi delle immagini che crea e le Versioni LayerVersions contenute nella cache. Ulteriori dettagli sullo schema sono forniti nelle sezioni seguenti.

Per ispezionare i livelli sovrapposti, eseguire il seguente comando per avviare una sessione bash nell'immagine che si desidera ispezionare:

docker run -it --entrypoint=/bin/bash samcli/lambda:<Tag following the schema outlined in Docker Image Tag Schema> -i

Schema del nome della directory di caching layer

Dato un LayerVersionArn definito nel modello,AWS SAMCLI estrae LayerName e Version dall'ARN. Crea una directory per posizionare il contenuto del layer in denominatoLayerName-Version-<first 10 characters of sha256 of ARN>.

Esempio:

ARN = arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 Directory name = myLayer-1-926eeb5ff1

Schema dei tag Docker Images

Per calcolare l'hash dei livelli univoci, combina tutti i nomi di layer univoci con un delimitatore di '-', prendi l'hash SHA256 e prendi i primi 10 caratteri.

Esempio:

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 - arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1

I nomi univoci vengono calcolati allo stesso modo dello schema dei nomi della directory di memorizzazione nella cache dei livelli:

arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 = myLayer-1-926eeb5ff1 arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1 = mySecondLayer-1-6bc1022bdf

Per calcolare l'hash dei livelli univoci, combina tutti i nomi di layer univoci con un delimitatore di '-', prendi l'hash sha256 e prendi i primi 25 caratteri:

myLayer-1-926eeb5ff1-mySecondLayer-1-6bc1022bdf = 2dd7ac5ffb30d515926aef

Quindi combina questo valore con il runtime e l'architettura della funzione, con un delimitatore di '-':

python3.7-x86_64-2dd7ac5ffb30d515926aefffd