

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 usang
<a name="runtimes-list-deprecated"></a>

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 \$1 LATEST menggunakan runtime. Untuk mencantumkan semua versi fungsi yang menggunakan runtime tertentu, Anda dapat menggunakan AWS Command Line Interface (AWS CLI) atau salah satu versi. AWS SDKs

Jika Anda memiliki sejumlah besar fungsi yang menggunakan runtime yang seharusnya tidak digunakan lagi, Anda juga dapat menggunakan AWS CLI atau untuk membantu Anda memprioritaskan pembaruan AWS SDKs ke fungsi yang paling sering dipanggil.

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

## Daftar versi fungsi yang menggunakan runtime tertentu
<a name="runtimes-list-deprecated-versions"></a>

Untuk menggunakan daftar semua versi fungsi Anda yang menggunakan runtime tertentu, jalankan perintah berikut. AWS CLI Ganti `RUNTIME_IDENTIFIER` dengan nama runtime yang sudah tidak digunakan lagi dan pilih sendiri. Wilayah AWS Untuk daftar hanya versi fungsi \$1LATEST, 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**  
Contoh perintah mencantumkan fungsi di `us-east-1` wilayah untuk 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 fungsi. AWS SDKs Kode contoh berikut menggunakan V3 AWS SDK untuk JavaScript dan AWS SDK untuk Python (Boto3) untuk mengembalikan daftar fungsi ARNs untuk fungsi menggunakan runtime tertentu. Kode contoh juga mengembalikan grup CloudWatch log untuk masing-masing 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 paling baru dipanggil](#runtimes-list-deprecated-statistics) untuk informasi lebih lanjut.

------
#### [ Node.js ]

**Example 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 ]

**Example Kode Python untuk mencantumkan 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 mencantumkan fungsi Anda menggunakan [ListFunctions](https://docs.aws.amazon.com/lambda/latest/api/API_ListFunctions.html)tindakan, lihat [dokumentasi SDK](https://aws.amazon.com/developer/tools/) untuk bahasa pemrograman pilihan Anda.

Anda juga dapat menggunakan fitur Kueri AWS Config lanjutan untuk mencantumkan semua fungsi yang menggunakan runtime yang terpengaruh. Kueri ini hanya mengembalikan fungsi \$1LATEST versi, tetapi Anda dapat menggabungkan kueri ke daftar fungsi di semua wilayah dan beberapa Akun AWS dengan satu perintah. Untuk mempelajari selengkapnya, lihat [Menanyakan Status AWS Auto Scaling Sumber Daya Konfigurasi Saat Ini](https://docs.aws.amazon.com/config/latest/developerguide/querying-AWS-resources.html) di *Panduan AWS Config Pengembang*.

## Mengidentifikasi fungsi yang paling umum dan paling baru dipanggil
<a name="runtimes-list-deprecated-statistics"></a>

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

Jika Anda hanya memiliki beberapa fungsi, Anda dapat menggunakan konsol CloudWatch Log untuk mengumpulkan informasi ini dengan melihat aliran log fungsi Anda. [Lihat Melihat data log yang dikirim ke CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) 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](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi yang ingin Anda lihat statistik pemanggilan.

1. Pilih tab **Pantau**.

1. Tetapkan periode waktu yang ingin Anda lihat statistik untuk menggunakan pemilih rentang tanggal. Pemanggilan terbaru ditampilkan di panel **Pemanggilan**.

Untuk akun dengan jumlah fungsi yang lebih besar, dapat lebih efisien untuk mengumpulkan data ini secara terprogram menggunakan AWS CLI atau salah satu dari tindakan AWS SDKs penggunaan [DescribeLogStreams](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html)dan [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)API.

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

------
#### [ Node.js ]

**Example 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 ]

**Example 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](https://docs.aws.amazon.com/lambda/latest/api/API_ListFunctions.html)API. Lihat kode di [Daftar versi fungsi yang menggunakan runtime tertentu](#runtimes-list-deprecated-versions) untuk contoh bagaimana melakukan ini.

------
#### [ Node.js ]

**Example 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 ]

**Example 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}')
```

------