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, utilizzaLayers
proprietà 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 local
comandi, 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