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à.
Abilita Lambda Insights sulla distribuzione di immagini di un contenitore Lambda
Per abilitare Lambda Insights su una funzione Lambda implementata come immagine di container, aggiungi le righe nel Dockerfile. Queste righe installano l'agente Lambda Insights come estensione nell'immagine di container. Le righe da aggiungere sono diverse per i contenitori e i contenitori x86-64. ARM64
Nota
L'agente Lambda Insights è supportato solo sui runtime Lambda che utilizzano Amazon Linux 2.
Argomenti
Implementazione di immagini di container x86-64
Per abilitare Lambda Insights su una funzione Lambda implementata come immagine di container su un container x86-64, aggiungi le seguenti righe nel Dockerfile. Queste righe installano l'agente Lambda Insights come estensione nell'immagine di container.
RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm
Dopo aver creato la funzione Lambda, assegnate la CloudWatchLambdaInsightsExecutionRolePolicyIAMpolicy al ruolo di esecuzione della funzione e Lambda Insights sarà abilitato sulla funzione Lambda basata sull'immagine del contenitore.
Nota
Per utilizzare una versione precedente dell'estensione Lambda Insights, sostituisci i URL comandi precedenti con questoURL:. https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm
Attualmente sono disponibili solo versioni 1.0.111.0 e successive di Lambda Insights. Per ulteriori informazioni, consulta Versioni disponibili dell'estensione Lambda Insights.
Per verificare la firma del pacchetto dell'agente Lambda Insights su un server Linux
Inserisci il seguente comando per scaricare la chiave pubblica.
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpgImmetti il comando seguente per importare la chiave pubblica nel keyring.
shell$
gpg --import lambda-insights-extension.gpgL'output sarà simile al seguente: Prendi nota del valore
key
poiché sarà necessario nella fase successiva. In questo output di esempio, il valore della chiave è848ABDC8
.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Verifica l'impronta digitale eseguendo il seguente comando: Sostituisci
key-value
con il valore della chiave del passaggio precedente.shell$
gpg --fingerprint key-valueLa stringa dell'impronta nell'output di questo comando dovrebbe essere
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
. Se la stringa dell'impronta non corrisponde, non installare l'agente e contatta AWS.Dopo aver verificato l'impronta, puoi utilizzarla per verificare il pacchetto dell'agente Lambda Insights. Scarica il file della firma del pacchetto immettendo il seguente comando:
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sigVerifica la firma eseguendo il seguente comando:
shell$
gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpmL'output deve essere simile al seguente:
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
Nell'output previsto, potrebbe esserci un avviso relativo a una firma attendibile. Una chiave è considerata attendibile solo se è stata firmata dall'utente o da un firmatario fidato. Questo non significa che la firma non sia valida, ma soltanto che la chiave pubblica non è stata verificata.
Se l'output contiene
BAD signature
, verifica di avere eseguito i passaggi correttamente. Se continui a ricevere unaBAD signature
risposta, contatta AWS ed evita di utilizzare il file scaricato.
Esempio x86-64
Questa sezione include un esempio di abilitazione di Lambda Insights su una funzione Lambda Python basata su immagini di container.
Un esempio di abilitazione di Lambda Insights su un'immagine del container Lambda
Crea un Dockerfile simile a quello riportato di seguito:
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
Crea un file Python denominato
index.py
simile a quello riportato di seguito.def handler(event, context): return { 'message': 'Hello World!' }
Inserisci il Dockerfile e
index.py
nella stessa directory. Quindi, in quella directory, esegui i seguenti passaggi per creare l'immagine docker e caricarla su Amazon. ECR// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${
ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latestUsa l'ECRimmagine Amazon che hai appena creato per creare la funzione Lambda.
Assegna la CloudWatchLambdaInsightsExecutionRolePolicyIAMpolicy al ruolo di esecuzione della funzione.
ARM64distribuzione dell'immagine del contenitore
Per abilitare Lambda Insights su una funzione Lambda distribuita come immagine contenitore in esecuzione su un contenitore AL2 _aarch64 (che utilizza l'ARM64architettura), aggiungi le seguenti righe nel tuo Dockerfile. Queste righe installano l'agente Lambda Insights come estensione nell'immagine di container.
RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm
Dopo aver creato la funzione Lambda, assegnate la CloudWatchLambdaInsightsExecutionRolePolicyIAMpolicy al ruolo di esecuzione della funzione e Lambda Insights sarà abilitato sulla funzione Lambda basata sull'immagine del contenitore.
Nota
Per utilizzare una versione precedente dell'estensione Lambda Insights, sostituisci i URL comandi precedenti con questoURL:. https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm
Attualmente sono disponibili solo versioni 1.0.229.0 e successive di Lambda Insights. Per ulteriori informazioni, consulta Versioni disponibili dell'estensione Lambda Insights.
Per verificare la firma del pacchetto dell'agente Lambda Insights su un server Linux
Inserisci il seguente comando per scaricare la chiave pubblica.
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpgImmetti il comando seguente per importare la chiave pubblica nel keyring.
shell$
gpg --import lambda-insights-extension.gpgL'output sarà simile al seguente: Prendi nota del valore
key
poiché sarà necessario nella fase successiva. In questo output di esempio, il valore della chiave è848ABDC8
.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Verifica l'impronta digitale eseguendo il seguente comando: Sostituisci
key-value
con il valore della chiave del passaggio precedente.shell$
gpg --fingerprint key-valueLa stringa dell'impronta nell'output di questo comando dovrebbe essere
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
. Se la stringa dell'impronta non corrisponde, non installare l'agente e contatta AWS.Dopo aver verificato l'impronta, puoi utilizzarla per verificare il pacchetto dell'agente Lambda Insights. Scarica il file della firma del pacchetto immettendo il seguente comando:
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sigVerifica la firma eseguendo il seguente comando:
shell$
gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpmL'output deve essere simile al seguente:
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
Nell'output previsto, potrebbe esserci un avviso relativo a una firma attendibile. Una chiave è considerata attendibile solo se è stata firmata dall'utente o da un firmatario fidato. Questo non significa che la firma non sia valida, ma soltanto che la chiave pubblica non è stata verificata.
Se l'output contiene
BAD signature
, verifica di avere eseguito i passaggi correttamente. Se continui a ricevere unaBAD signature
risposta, contatta AWS ed evita di utilizzare il file scaricato.
ARM64Esempio
Questa sezione include un esempio di abilitazione di Lambda Insights su una funzione Lambda Python basata su immagini di container.
Un esempio di abilitazione di Lambda Insights su un'immagine del container Lambda
Crea un Dockerfile simile a quello riportato di seguito:
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
Crea un file Python denominato
index.py
simile a quello riportato di seguito.def handler(event, context): return { 'message': 'Hello World!' }
Inserisci il Dockerfile e
index.py
nella stessa directory. Quindi, in quella directory, esegui i seguenti passaggi per creare l'immagine docker e caricarla su Amazon. ECR// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
Usa l'ECRimmagine Amazon che hai appena creato per creare la funzione Lambda.
Assegna la CloudWatchLambdaInsightsExecutionRolePolicyIAMpolicy al ruolo di esecuzione della funzione.