View a markdown version of this page

Mengambil data tentang fungsi Lambda yang menggunakan runtime yang tidak digunakan lagi - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengambil data tentang fungsi Lambda yang menggunakan runtime yang tidak digunakan lagi

Saat runtime Lambda mendekati penghentian, Lambda memberi tahu Anda melalui email dan memberikan pemberitahuan di dan. Dasbor Health Trusted Advisor Email dan notifikasi ini mencantumkan versi fungsi $LATEST menggunakan runtime. Untuk mencantumkan semua versi fungsi yang menggunakan runtime tertentu, Anda dapat menggunakan AWS Command Line Interface (AWS CLI) atau salah satu AWS SDK.

Jika Anda memiliki sejumlah besar fungsi yang menggunakan runtime yang tidak digunakan lagi, Anda juga dapat menggunakan AWS SDK AWS CLI or untuk membantu Anda memprioritaskan pembaruan pada fungsi yang paling sering dipanggil.

Lihat bagian berikut untuk mempelajari cara menggunakan AWS CLI dan AWS SDK untuk mengumpulkan data tentang fungsi yang menggunakan runtime tertentu.

Daftar versi fungsi yang menggunakan runtime tertentu

Untuk menggunakan daftar semua versi fungsi Anda yang menggunakan runtime tertentu, jalankan perintah berikut. AWS CLI Ganti RUNTIME_IDENTIFIER dengan nama runtime yang tidak digunakan lagi dan pilih sendiri. Wilayah AWS Untuk mencantumkan hanya versi fungsi $LATEST, hilangkan --function-version ALL dari perintah.

aws lambda list-functions --function-version ALL --region us-east-1 --output text --query "Functions[?Runtime=='RUNTIME_IDENTIFIER'].FunctionArn"
Tip

Perintah contoh mencantumkan fungsi di us-east-1 wilayah tertentu Akun AWS Anda harus mengulangi perintah ini untuk setiap wilayah di mana akun Anda memiliki fungsi dan untuk masing-masing Akun AWS.

Anda juga dapat membuat daftar fungsi yang menggunakan runtime tertentu menggunakan salah satu AWS SDK. Kode contoh berikut menggunakan V3 AWS SDK untuk JavaScript dan AWS SDK for Python (Boto3) untuk mengembalikan daftar fungsi ARN untuk fungsi menggunakan runtime tertentu. Kode contoh juga mengembalikan grup CloudWatch log untuk setiap fungsi yang terdaftar. Anda dapat menggunakan grup log ini untuk menemukan tanggal pemanggilan terakhir untuk fungsi tersebut. Lihat bagian berikut Mengidentifikasi fungsi yang paling umum dan yang paling baru dipanggil untuk informasi lebih lanjut.

Node.js
contoh JavaScript kode untuk daftar fungsi menggunakan runtime tertentu
import { LambdaClient, ListFunctionsCommand } from "@aws-sdk/client-lambda"; const lambdaClient = new LambdaClient(); const command = new ListFunctionsCommand({ FunctionVersion: "ALL", MaxItems: 50 }); const response = await lambdaClient.send(command); for (const f of response.Functions){ if (f.Runtime == '<your_runtime>'){ // Use the runtime id, e.g. 'nodejs24.x' or 'python3.14' console.log(f.FunctionArn); // get the CloudWatch log group of the function to // use later for finding the last invocation date console.log(f.LoggingConfig.LogGroup); } } // If your account has more functions than the specified // MaxItems, use the returned pagination token in the // next request with the 'Marker' parameter if ('NextMarker' in response){ let paginationToken = response.NextMarker; }
Python
contoh Kode Python untuk daftar fungsi menggunakan runtime tertentu
import boto3 from botocore.exceptions import ClientError def list_lambda_functions(target_runtime): lambda_client = boto3.client('lambda') response = lambda_client.list_functions( FunctionVersion='ALL', MaxItems=50 ) if not response['Functions']: print("No Lambda functions found") else: for function in response['Functions']: if function['PackageType']=='Zip' and function['Runtime'] == target_runtime: print(function['FunctionArn']) # Print the CloudWatch log group of the function # to use later for finding last invocation date print(function['LoggingConfig']['LogGroup']) if 'NextMarker' in response: pagination_token = response['NextMarker'] if __name__ == "__main__": # Replace python3.12 with the appropriate runtime ID for your Lambda functions list_lambda_functions('python3.12')

Untuk mempelajari lebih lanjut tentang menggunakan AWS SDK untuk membuat daftar fungsi Anda menggunakan ListFunctions tindakan, lihat dokumentasi SDK untuk bahasa pemrograman pilihan Anda.

Anda juga dapat menggunakan fitur kueri AWS Config lanjutan untuk membuat daftar semua fungsi Anda yang menggunakan runtime yang terpengaruh. Kueri ini hanya mengembalikan fungsi $LATEST versions, tetapi Anda dapat menggabungkan kueri untuk daftar fungsi di semua wilayah dan beberapa Akun AWS dengan satu perintah. Untuk mempelajari selengkapnya, lihat Mengkueri Status Sumber Daya Konfigurasi Saat AWS Auto Scaling Ini di Panduan Peng AWS Config embang.

Mengidentifikasi fungsi yang paling umum dan yang paling baru dipanggil

Jika Anda Akun AWS berisi fungsi yang menggunakan runtime yang tidak digunakan lagi, Anda mungkin ingin memprioritaskan pembaruan fungsi yang sering dipanggil atau fungsi yang baru-baru ini dipanggil.

Jika Anda hanya memiliki beberapa fungsi, Anda dapat menggunakan konsol CloudWatch Logs untuk mengumpulkan informasi ini dengan melihat aliran log fungsi Anda. Lihat Melihat data log yang dikirim ke CloudWatch Log untuk informasi selengkapnya.

Untuk melihat jumlah pemanggilan fungsi terbaru, Anda juga dapat menggunakan informasi CloudWatch metrik yang ditampilkan di konsol Lambda. Untuk melihat informasi ini, lakukan hal berikut:

  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi yang ingin Anda lihat statistik pemanggilan.

  3. Pilih tab Pantau.

  4. Tetapkan periode waktu yang ingin Anda lihat statistik untuk menggunakan pemilih rentang tanggal. Pemanggilan terbaru ditampilkan di panel Pemang gilan.

Untuk akun dengan jumlah fungsi yang lebih besar, akan lebih efisien untuk mengumpulkan data ini secara terprogram menggunakan AWS CLI atau salah satu AWS SDK menggunakan tindakan DescribeLogStreams dan GetMetricStatistics API.

Contoh berikut menyediakan cuplikan kode menggunakan V3 AWS SDK untuk JavaScript dan AWS SDK for Python (Boto3) untuk mengidentifikasi tanggal pemanggilan terakhir untuk fungsi tertentu dan untuk menentukan jumlah pemanggilan untuk fungsi tertentu dalam 14 hari terakhir.

Node.js
contoh JavaScript kode untuk menemukan waktu pemanggilan terakhir untuk suatu fungsi
import { CloudWatchLogsClient, DescribeLogStreamsCommand } from "@aws-sdk/client-cloudwatch-logs"; const cloudWatchLogsClient = new CloudWatchLogsClient(); const command = new DescribeLogStreamsCommand({ logGroupName: '<your_log_group_name>', orderBy: 'LastEventTime', descending: true, limit: 1 }); try { const response = await cloudWatchLogsClient.send(command); const lastEventTimestamp = response.logStreams.length > 0 ? response.logStreams[0].lastEventTimestamp : null; // Convert the UNIX timestamp to a human-readable format for display const date = new Date(lastEventTimestamp).toLocaleDateString(); const time = new Date(lastEventTimestamp).toLocaleTimeString(); console.log(`${date} ${time}`); } catch (e){ console.error('Log group not found.') }
Python
contoh Kode Python untuk menemukan waktu pemanggilan terakhir untuk suatu fungsi
import boto3 from datetime import datetime cloudwatch_logs_client = boto3.client('logs') response = cloudwatch_logs_client.describe_log_streams( logGroupName='<your_log_group_name>', orderBy='LastEventTime', descending=True, limit=1 ) try: if len(response['logStreams']) > 0: last_event_timestamp = response['logStreams'][0]['lastEventTimestamp'] print(datetime.fromtimestamp(last_event_timestamp/1000)) # Convert timestamp from ms to seconds else: last_event_timestamp = None except: print('Log group not found')
Tip

Anda dapat menemukan nama grup log fungsi Anda menggunakan operasi ListFunctions API. Lihat kode di Daftar versi fungsi yang menggunakan runtime tertentu untuk contoh cara melakukan ini.

Node.js
contoh JavaScript kode untuk menemukan jumlah pemanggilan dalam 14 hari terakhir
import { CloudWatchClient, GetMetricStatisticsCommand } from "@aws-sdk/client-cloudwatch"; const cloudWatchClient = new CloudWatchClient(); const command = new GetMetricStatisticsCommand({ Namespace: 'AWS/Lambda', MetricName: 'Invocations', StartTime: new Date(Date.now()-86400*1000*14), // 14 days ago EndTime: new Date(Date.now()), Period: 86400 * 14, // 14 days. Statistics: ['Sum'], Dimensions: [{ Name: 'FunctionName', Value: '<your_function_name>' }] }); const response = await cloudWatchClient.send(command); const invokesInLast14Days = response.Datapoints.length > 0 ? response.Datapoints[0].Sum : 0; console.log('Number of invocations: ' + invokesInLast14Days);
Python
contoh Kode Python untuk menemukan jumlah pemanggilan dalam 14 hari terakhir
import boto3 from datetime import datetime, timedelta cloudwatch_client = boto3.client('cloudwatch') response = cloudwatch_client.get_metric_statistics( Namespace='AWS/Lambda', MetricName='Invocations', Dimensions=[ { 'Name': 'FunctionName', 'Value': '<your_function_name>' }, ], StartTime=datetime.now() - timedelta(days=14), EndTime=datetime.now(), Period=86400 * 14, # 14 days Statistics=[ 'Sum' ] ) if len(response['Datapoints']) > 0: invokes_in_last_14_days = int(response['Datapoints'][0]['Sum']) else: invokes_in_last_14_days = 0 print(f'Number of invocations: {invokes_in_last_14_days}')