

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

# Validasi Token menggunakan AWS Lambda
<a name="reference-smart-on-fhir-token-validation"></a>

Saat Anda membuat HealthLake SMART di penyimpanan data berkemampuan FHIR, Anda harus memberikan ARN fungsi AWS Lambda dalam `CreateFHIRDatastore` permintaan. ARN dari fungsi Lambda ditentukan dalam `IdentityProviderConfiguration` objek menggunakan parameter. `IdpLambdaArn`

Anda harus membuat fungsi Lambda sebelum membuat SMART Anda di penyimpanan data berkemampuan FHIR. Setelah Anda membuat penyimpanan data, Lambda ARN tidak dapat diubah. Untuk melihat Lambda ARN yang Anda tentukan saat penyimpanan data dibuat, gunakan tindakan API. `DescribeFHIRDatastore`

**Agar permintaan FHIR REST berhasil di SMART di penyimpanan data berkemampuan FHIR, fungsi Lambda Anda harus melakukan hal berikut:**
+ Kembalikan respons dalam waktu kurang dari 1 detik ke titik akhir penyimpanan HealthLake data.
+ Dekode token akses yang disediakan di header otorisasi permintaan REST API yang dikirim oleh aplikasi klien.
+ Tetapkan peran layanan IAM yang memiliki izin yang cukup untuk melaksanakan permintaan FHIR REST API.
+ Klaim berikut diperlukan untuk menyelesaikan permintaan FHIR REST API. Untuk mempelajari selengkapnya, lihat [Klaim yang diperlukan](reference-smart-on-fhir-authentication.md#server-response).
  + `nbf`
  + `exp`
  + `isAuthorized`
  + `aud`
  + `scope`

Saat bekerja dengan Lambda, Anda perlu membuat peran eksekusi dan kebijakan berbasis sumber daya selain fungsi Lambda Anda. Peran eksekusi fungsi Lambda adalah peran IAM yang memberikan izin fungsi untuk mengakses layanan AWS dan sumber daya yang diperlukan pada waktu berjalan. Kebijakan berbasis sumber daya yang Anda berikan harus memungkinkan HealthLake untuk menjalankan fungsi Anda atas nama Anda.

Bagian dalam topik ini menjelaskan contoh permintaan dari aplikasi klien dan respons yang diterjemahkan, langkah-langkah yang diperlukan untuk membuat fungsi AWS Lambda, dan cara membuat kebijakan berbasis sumber daya yang dapat diasumsikan. HealthLake 
+ [Bagian 1: Membuat fungsi Lambda](#smart-on-fhir-lambda-create)
+ [Bagian 2: Membuat peran HealthLake layanan yang digunakan oleh fungsi AWS Lambda](#smart-on-fhir-lambda-service-role)
+ [Bagian 3: Memperbarui peran eksekusi fungsi Lambda](#smart-on-fhir-lambda-service-role-execution-role)
+ [Bagian 4: Menambahkan kebijakan sumber daya ke fungsi Lambda Anda](#smart-on-fhir-lambda-invoke-healthlake)
+ [Bagian 5: Menyediakan konkurensi untuk fungsi Lambda Anda](#smart-on-fhir-lambda-function-scaling)

## Membuat fungsi AWS Lambda
<a name="smart-on-fhir-lambda-create"></a>

Fungsi Lambda yang dibuat dalam topik ini dipicu saat HealthLake menerima permintaan ke SMART di penyimpanan data berkemampuan FHIR. Permintaan dari aplikasi klien berisi panggilan REST API, dan header otorisasi yang berisi token akses.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/
Authorization: Bearer i8hweunweunweofiwweoijewiwe
```

Contoh fungsi Lambda dalam topik ini digunakan AWS Secrets Manager untuk mengaburkan kredensyal yang terkait dengan server otorisasi. Kami sangat menyarankan untuk tidak memberikan rincian login server otorisasi secara langsung dalam fungsi Lambda.

**Example memvalidasi permintaan FHIR REST yang berisi token pembawa otorisasi**  
Contoh fungsi Lambda menunjukkan kepada Anda cara memvalidasi permintaan FHIR REST yang dikirim ke SMART di penyimpanan data berkemampuan FHIR. Untuk melihat step-by-steps petunjuk tentang cara menerapkan fungsi Lambda ini, lihat. [Membuat fungsi Lambda menggunakan Konsol Manajemen AWS](#create-lambda-console)  
Jika permintaan FHIR REST API tidak berisi titik akhir penyimpanan data yang valid, token akses, dan operasi REST, fungsi Lambda akan gagal. Untuk mempelajari lebih lanjut tentang elemen server otorisasi yang diperlukan, lihat[Klaim yang diperlukan](reference-smart-on-fhir-authentication.md#server-response).  

```
import base64
import boto3
import logging
import json
import os
from urllib import request, parse

logger = logging.getLogger()
logger.setLevel(logging.INFO)

## Uses Secrets manager to gain access to the access key ID and secret access key for the authorization server
client = boto3.client('secretsmanager', region_name="region-of-datastore")
response = client.get_secret_value(SecretId='name-specified-by-customer-in-secretsmanager')
secret = json.loads(response['SecretString'])
client_id = secret['client_id']
client_secret = secret['client_secret']


unencoded_auth = f'{client_id}:{client_secret}'
headers = {
  'Authorization': f'Basic {base64.b64encode(unencoded_auth.encode()).decode()}',
  'Content-Type': 'application/x-www-form-urlencoded'
}

auth_endpoint = os.environ['auth-server-base-url'] # Base URL of the Authorization server
user_role_arn = os.environ['iam-role-arn'] # The IAM role client application will use to complete the HTTP request on the datastore

def lambda_handler(event, context):
    if 'datastoreEndpoint' not in event or 'operationName' not in event or 'bearerToken' not in event:
    return {}

    datastore_endpoint = event['datastoreEndpoint']
    operation_name = event['operationName']
    bearer_token = event['bearerToken']
    logger.info('Datastore Endpoint [{}], Operation Name: [{}]'.format(datastore_endpoint, operation_name))

    ## To validate the token
    auth_response = auth_with_provider(bearer_token)
    logger.info('Auth response: [{}]'.format(auth_response))
    auth_payload = json.loads(auth_response)
    ## Required parameters needed to be sent to the datastore endpoint for the HTTP request to go through
    auth_payload["isAuthorized"] = bool(auth_payload["active"])
    auth_payload["nbf"] = auth_payload["iat"]
    return {"authPayload": auth_payload, "iamRoleARN": user_role_arn}

## access the server
def auth_with_provider(token):
    data = {'token': token, 'token_type_hint': 'access_token'}
    req = request.Request(url=auth_endpoint + '/v1/introspect', data=parse.urlencode(data).encode(), headers=headers)
    with request.urlopen(req) as resp:
    return resp.read().decode()
```

### Membuat fungsi Lambda menggunakan Konsol Manajemen AWS
<a name="create-lambda-console"></a>

Prosedur berikut mengasumsikan Anda telah membuat peran layanan yang HealthLake ingin Anda asumsikan saat menangani permintaan FHIR REST API pada SMART di penyimpanan data berkemampuan FHIR. Jika Anda belum membuat peran layanan, Anda masih dapat membuat fungsi Lambda. Anda harus menambahkan ARN peran layanan sebelum fungsi Lambda berfungsi. Untuk mempelajari selengkapnya tentang membuat peran layanan dan menentukannya dalam fungsi Lambda, lihat [Membuat peran HealthLake layanan untuk digunakan dalam fungsi AWS Lambda yang digunakan untuk memecahkan kode JWT](#smart-on-fhir-lambda-service-role)

**Untuk membuat fungsi Lambda ()Konsol Manajemen AWS**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home/functions) di konsol Lambda.

1. Pilih **Buat fungsi**.

1. Pilih **Penulis dari awal**.

1. Di bawah **Informasi dasar** masukkan **nama Fungsi**. Di bawah **Runtime pilih runtime** berbasis python.

1. Untuk **peran Eksekusi**, pilih **Buat peran baru dengan izin Lambda dasar**.

   Lambda membuat [peran eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) yang memberikan izin fungsi untuk mengunggah log ke Amazon. CloudWatch Fungsi Lambda mengasumsikan peran eksekusi saat Anda memanggil fungsi, dan menggunakan peran eksekusi untuk membuat kredensional SDK. AWS 

1. Pilih tab **Kode**, dan tambahkan contoh fungsi Lambda.

   Jika Anda belum membuat peran layanan untuk fungsi Lambda untuk digunakan, Anda harus membuatnya sebelum fungsi Lambda sampel berfungsi. Untuk mempelajari selengkapnya tentang membuat peran layanan untuk fungsi Lambda, lihat. [Membuat peran HealthLake layanan untuk digunakan dalam fungsi AWS Lambda yang digunakan untuk memecahkan kode JWT](#smart-on-fhir-lambda-service-role)

   ```
   import base64
   import boto3
   import logging
   import json
   import os
   from urllib import request, parse
   
   logger = logging.getLogger()
   logger.setLevel(logging.INFO)
   
   ## Uses Secrets manager to gain access to the access key ID and secret access key for the authorization server
   client = boto3.client('secretsmanager', region_name="region-of-datastore")
   response = client.get_secret_value(SecretId='name-specified-by-customer-in-secretsmanager')
   secret = json.loads(response['SecretString'])
   client_id = secret['client_id']
   client_secret = secret['client_secret']
   
   
   unencoded_auth = f'{client_id}:{client_secret}'
   headers = {
     'Authorization': f'Basic {base64.b64encode(unencoded_auth.encode()).decode()}',
     'Content-Type': 'application/x-www-form-urlencoded'
   }
   
   auth_endpoint = os.environ['auth-server-base-url'] # Base URL of the Authorization server
   user_role_arn = os.environ['iam-role-arn'] # The IAM role client application will use to complete the HTTP request on the datastore
   
   def lambda_handler(event, context):
       if 'datastoreEndpoint' not in event or 'operationName' not in event or 'bearerToken' not in event:
       return {}
   
       datastore_endpoint = event['datastoreEndpoint']
       operation_name = event['operationName']
       bearer_token = event['bearerToken']
       logger.info('Datastore Endpoint [{}], Operation Name: [{}]'.format(datastore_endpoint, operation_name))
   
       ## To validate the token
       auth_response = auth_with_provider(bearer_token)
       logger.info('Auth response: [{}]'.format(auth_response))
       auth_payload = json.loads(auth_response)
       ## Required parameters needed to be sent to the datastore endpoint for the HTTP request to go through
       auth_payload["isAuthorized"] = bool(auth_payload["active"])
       auth_payload["nbf"] = auth_payload["iat"]
       return {"authPayload": auth_payload, "iamRoleARN": user_role_arn}
   
   ## Access the server
   def auth_with_provider(token):
       data = {'token': token, 'token_type_hint': 'access_token'}
       req = request.Request(url=auth_endpoint + '/v1/introspect', data=parse.urlencode(data).encode(), headers=headers)
       with request.urlopen(req) as resp:
       return resp.read().decode()
   ```

### Memodifikasi peran eksekusi fungsi Lambda
<a name="modify-lambda-execution-role"></a>

Setelah membuat fungsi Lambda, Anda perlu memperbarui peran eksekusi untuk menyertakan izin yang diperlukan untuk memanggil Secrets Manager. Di Secrets Manager, setiap rahasia yang Anda buat memiliki ARN. Untuk menerapkan hak istimewa paling sedikit, peran eksekusi seharusnya hanya memiliki akses ke sumber daya yang diperlukan agar fungsi Lambda dapat dijalankan.

Anda dapat memodifikasi peran eksekusi fungsi Lambda dengan mencarinya di konsol IAM atau dengan memilih **Konfigurasi** di konsol Lambda. Untuk mempelajari selengkapnya tentang mengelola peran eksekusi fungsi Lambda, lihat. [Peran pelaksanaan Lambda](#smart-on-fhir-lambda-service-role-execution-role)

**Example Peran eksekusi fungsi Lambda yang memberikan akses ke `GetSecretValue`**  
Menambahkan tindakan IAM `GetSecretValue` ke peran eksekusi memberikan izin yang diperlukan agar fungsi Lambda sampel berfungsi.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-name-DKodTA"
        }
    ]
}
```

Pada titik ini Anda telah membuat fungsi Lambda yang dapat digunakan untuk memvalidasi token akses yang disediakan sebagai bagian dari permintaan FHIR REST yang dikirim ke SMART Anda di penyimpanan data berkemampuan FHIR.

## Membuat peran HealthLake layanan untuk digunakan dalam fungsi AWS Lambda yang digunakan untuk memecahkan kode JWT
<a name="smart-on-fhir-lambda-service-role"></a>

**Persona: IAM Administrator**  
Pengguna yang dapat menambah atau menghapus kebijakan IAM, dan membuat identitas IAM baru.  

**Peran layanan**  
 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

Setelah Token Web JSON (JWT) diterjemahkan, otorisasi Lambda juga perlu mengembalikan peran IAM ARN. Peran ini harus memiliki izin yang diperlukan untuk melaksanakan permintaan REST API atau akan gagal karena izin yang tidak mencukupi.

Saat menyiapkan kebijakan khusus menggunakan IAM, yang terbaik adalah memberikan izin minimum yang diperlukan. *Untuk mempelajari selengkapnya, lihat [Menerapkan izin hak istimewa terkecil di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) IAM.*

Membuat peran HealthLake layanan untuk menunjuk dalam fungsi Lambda otorisasi membutuhkan dua langkah.
+ Pertama, Anda perlu membuat kebijakan IAM. Kebijakan harus menentukan akses ke sumber daya FHIR yang telah Anda berikan cakupan di server otorisasi.
+ Kedua, Anda perlu membuat peran layanan. Saat Anda membuat peran, Anda menetapkan hubungan kepercayaan dan melampirkan kebijakan yang Anda buat di langkah pertama. Hubungan kepercayaan menunjuk HealthLake sebagai kepala layanan. Anda perlu menentukan ARN penyimpanan HealthLake data dan ID AWS akun di langkah ini.

### Membuat kebijakan IAM baru
<a name="lambda-service-role-part-1"></a>

Cakupan yang Anda tentukan di server otorisasi Anda menentukan sumber daya FHIR apa yang dapat diakses oleh pengguna yang diautentikasi di penyimpanan data. HealthLake 

Kebijakan IAM yang Anda buat dapat disesuaikan agar sesuai dengan cakupan yang telah Anda tetapkan.

Tindakan berikut dalam `Action` elemen pernyataan kebijakan IAM dapat didefinisikan. Untuk masing-masing `Action` dalam tabel Anda dapat mendefinisikan a`Resource types`. Dalam penyimpanan data HealthLake adalah satu-satunya jenis sumber daya yang didukung yang dapat didefinisikan dalam `Resource` elemen pernyataan kebijakan izin IAM.

Sumber daya FHIR individu bukanlah sumber daya yang dapat Anda definisikan sebagai elemen dalam kebijakan izin IAM.


**Tindakan didefinisikan oleh HealthLake**  

| Tindakan | Deskripsi | Tingkat akses | Jenis sumber daya (Wajib) | 
| --- | --- | --- | --- | 
| CreateResource | Memberikan izin untuk membuat sumber daya | Tulis | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| DeleteResource | Memberikan izin untuk menghapus sumber daya | Tulis | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| ReadResource | Memberikan izin untuk membaca sumber daya | Baca | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| SearchWithGet | Memberikan izin untuk mencari sumber daya dengan metode GET | Baca | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| SearchWithPost | Memberikan izin untuk mencari sumber daya dengan metode POST | Baca | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| Mulai FHIRExport JobWithPost | Memberikan izin untuk memulai pekerjaan Ekspor FHIR dengan GET | Tulis | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 
| UpdateResource | Memberikan izin untuk memperbarui sumber daya | Tulis  | Datastore ARN: arn:aws:healthlake: ::datastore/fhir/ your-region 111122223333 your-datastore-id | 

Untuk memulai, Anda dapat menggunakan`AmazonHealthLakeFullAccess`. Kebijakan ini akan memberikan pembacaan, tulis, pencarian, dan ekspor pada semua sumber daya FHIR yang ditemukan di penyimpanan data. Untuk memberikan izin hanya-baca pada penggunaan penyimpanan data. `AmazonHealthLakeReadOnlyAccess`

Untuk mempelajari selengkapnya tentang membuat kebijakan kustom menggunakan Konsol Manajemen AWS, AWS CLI, atau IAM SDKs, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) di Panduan Pengguna *IAM*.

### Membuat peran layanan untuk HealthLake (konsol IAM)
<a name="lambda-service-role-part-2"></a>

Gunakan prosedur ini untuk membuat peran layanan. Saat Anda membuat layanan, Anda juga perlu menetapkan kebijakan IAM.

**Untuk membuat peran layanan untuk HealthLake (konsol IAM)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Peran**.

1. Kemudian, pilih **Buat peran**.

1. Pada halaman **Pilih entitas kepercayaan**, pilih **Kebijakan kepercayaan khusus**.

1. Selanjutnya, di bawah **Kebijakan kepercayaan khusus**, perbarui kebijakan sampel sebagai berikut. Ganti **your-account-id** dengan nomor akun Anda, dan tambahkan ARN dari penyimpanan data yang ingin Anda gunakan dalam pekerjaan impor atau ekspor Anda.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "sts:AssumeRole",
               "Principal": {
                   "Service": "healthlake.amazonaws.com"
               },
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnEquals": {
                       "aws:SourceArn": "arn:aws:healthlake:us-east-1:123456789012:datastore/fhir/your-datastore-id"
                   }
               }
           }
       ]
   }
   ```

------

1. Lalu, pilih **Selanjutnya**.

1. Pada halaman **Tambah izin**, pilih kebijakan yang ingin diasumsikan oleh HealthLake layanan. Untuk menemukan kebijakan Anda, cari kebijakan tersebut di bawah **Kebijakan Izin**.

1. Kemudian, pilih **Lampirkan kebijakan**.

1. Kemudian pada halaman **Nama, tinjau, dan buat** di bawah **Nama peran** masukkan nama.

1. (Opsional) Kemudian di bawah **Deskripsi**, tambahkan deskripsi singkat untuk peran Anda.

1. Jika memungkinkan, masukkan nama peran atau akhiran nama peran untuk membantu Anda mengidentifikasi tujuan peran ini. Nama peran harus unik dalam diri Anda Akun AWS. Grup tidak dibedakan berdasarkan huruf besar-kecil. Misalnya, Anda tidak dapat membuat peran dengan nama **PRODROLE** dan **prodrole**. Anda tidak dapat mengubah nama peran setelah dibuat karena berbagai entitas mungkin mereferensikan peran tersebut.

1. Tinjau detail peran, lalu pilih **Buat peran**.

Untuk mempelajari cara menentukan peran ARN dalam contoh fungsi Lambda, lihat. [Membuat fungsi AWS Lambda](#smart-on-fhir-lambda-create)

## Peran pelaksanaan Lambda
<a name="smart-on-fhir-lambda-service-role-execution-role"></a>

Peran eksekusi fungsi Lambda adalah peran IAM yang memberikan izin fungsi untuk mengakses AWS layanan dan sumber daya. Halaman ini memberikan informasi tentang cara membuat, melihat, dan mengelola peran eksekusi fungsi Lambda.

Secara default, Lambda membuat peran eksekusi dengan izin minimal saat Anda membuat fungsi Lambda baru menggunakan. Konsol Manajemen AWS Untuk mengelola izin yang diberikan dalam peran eksekusi, lihat [Membuat peran eksekusi di konsol IAM di Panduan Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-console) *Lambda*.

Contoh fungsi Lambda yang disediakan dalam topik ini menggunakan Secrets Manager untuk mengaburkan kredensyal server otorisasi.

Seperti halnya peran IAM yang Anda buat, penting untuk mengikuti praktik terbaik yang paling tidak istimewa. Selama frase pengembangan, terkadang Anda mungkin memberikan izin di luar apa yang diperlukan. Sebelum memublikasikan fungsi Anda di lingkungan produksi, sebagai praktik terbaik, sesuaikan kebijakan agar hanya menyertakan izin yang diperlukan. *Untuk informasi selengkapnya, lihat [Menerapkan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) di Panduan Pengguna IAM.*

## Izinkan HealthLake untuk memicu fungsi Lambda Anda
<a name="smart-on-fhir-lambda-invoke-healthlake"></a>

Jadi HealthLake dapat memanggil fungsi Lambda atas nama Anda, Anda harus melakukan berikut: 
+ Anda perlu mengatur `IdpLambdaArn` sama dengan ARN dari fungsi Lambda yang HealthLake ingin Anda panggil dalam permintaan. `CreateFHIRDatastore`
+ Anda memerlukan kebijakan berbasis sumber daya yang memungkinkan untuk HealthLake menjalankan fungsi Lambda atas nama Anda.

Saat HealthLake menerima permintaan FHIR REST API pada SMART di penyimpanan data berkemampuan FHIR, diperlukan izin untuk menjalankan fungsi Lambda yang ditentukan pada pembuatan penyimpanan data atas nama Anda. Untuk memberikan HealthLake akses, Anda akan menggunakan kebijakan berbasis sumber daya. *Untuk mempelajari selengkapnya tentang membuat kebijakan berbasis sumber daya untuk fungsi Lambda, lihat [Mengizinkan layanan AWS memanggil fungsi Lambda di Panduan Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-serviceinvoke).AWS Lambda *

## Menyediakan konkurensi untuk fungsi Lambda Anda
<a name="smart-on-fhir-lambda-function-scaling"></a>

**penting**  
HealthLake mengharuskan waktu berjalan maksimum untuk fungsi Lambda Anda kurang dari satu detik (1000 milidetik).  
Jika fungsi Lambda Anda melebihi batas waktu berjalan, Anda mendapatkan pengecualian. TimeOut

Untuk menghindari pengecualian ini, kami sarankan untuk mengonfigurasi konkurensi yang disediakan. Dengan mengalokasikan konkurensi yang disediakan sebelum peningkatan pemanggilan, Anda dapat memastikan bahwa semua permintaan dilayani oleh instance yang diinisialisasi dengan latensi rendah. *Untuk mempelajari lebih lanjut tentang mengonfigurasi konkurensi yang disediakan, lihat [Mengonfigurasi konkurensi yang disediakan di Panduan Pengembang Lambda](https://docs.aws.amazon.com/ambda/latest/dg/provisioned-concurrency.html)*

Untuk melihat rata-rata waktu berjalan untuk fungsi Lambda Anda saat ini gunakan halaman **Pemantauan** untuk fungsi Lambda Anda di konsol Lambda. Secara default, konsol Lambda menyediakan grafik **Durasi** yang menunjukkan jumlah waktu rata-rata, minimum, dan maksimum waktu yang dihabiskan kode fungsi untuk memproses suatu peristiwa. *Untuk mempelajari selengkapnya tentang memantau fungsi Lambda, lihat [Memantau fungsi di konsol Lambda di Panduan Pengembang Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html#monitoring-console-graph-types).*

*Jika Anda telah menyediakan konkurensi untuk fungsi Lambda Anda dan ingin memantaunya, lihat Memantau [konkurensi di](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-concurrency.html) Panduan Pengembang Lambda.*