

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

# Instrumenting kerangka kerja web dideploy ke lingkungan niserver
<a name="xray-sdk-python-serverless"></a>

**catatan**  
Pemberitahuan SDK/Daemon Pemeliharaan X-Ray - Pada 25 Februari 2026, AWS SDKs/Daemon X-Ray akan memasuki mode pemeliharaan, di mana AWS akan membatasi rilis X-Ray SDK dan Daemon untuk mengatasi masalah keamanan saja. Untuk informasi selengkapnya tentang garis waktu dukungan, lihat[Garis waktu Dukungan X-Ray SDK dan Daemon](xray-sdk-daemon-timeline.md). Kami merekomendasikan untuk bermigrasi ke OpenTelemetry. Untuk informasi lebih lanjut tentang migrasi ke OpenTelemetry, lihat [Migrasi dari instrumentasi X-Ray ke instrumentasi](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html). OpenTelemetry 

 AWS X-Ray SDK untuk Python mendukung kerangka kerja web instrumentasi yang digunakan dalam aplikasi tanpa server. Niserver adalah arsitektur asli cloud yang memungkinkan Anda mengalihkan lebih banyak tanggung jawab operasional Anda ke AWS, meningkatkan ketangkasan dan inovasi Anda.

Arsitektur niserver adalah model aplikasi perangkat lunak yang memungkinkan Anda untuk membangun dan menjalankan aplikasi dan layanan tanpa memikirkan server. Menghilangkan tugas-tugas manajemen infrastruktur seperti server atau penyediaan klaster, patching, pemeliharaan sistem operasi, dan penyediaan kapasitas. Anda dapat membangun solusi tanpa server untuk hampir semua tipe aplikasi atau layanan backend, dan semua yang diperlukan untuk menjalankan dan menskalakan aplikasi Anda dengan ketersediaan tinggi ditangani untuk Anda.

Tutorial ini menunjukkan kepada Anda bagaimana untuk secara otomatis instrumen AWS X-Ray pada kerangka web, seperti Flask atau Django, yang dikerahkan ke lingkungan tanpa server. Instrumentasi X-Ray aplikasi memungkinkan Anda untuk melihat semua panggilan hilir yang dibuat, mulai dari Amazon API Gateway melalui AWS Lambda fungsi Anda, dan panggilan keluar yang dilakukan aplikasi Anda. 

X-Ray SDK for Python mendukung kerangka kerja aplikasi Python berikut:
+ Flask versi 0.8, atau lebih baru
+ Django versi 1.0, atau yang lebih baru

Tutorial ini mengembangkan contoh aplikasi niserver yang dideploy ke Lambda dan dipanggil oleh API Gateway. Tutorial ini menggunakan Zappa untuk secara otomatis mendeploy aplikasi untuk Lambda dan mengonfigurasi titik akhir API Gateway.

## Prasyarat
<a name="xray-sdk-python-serverless-prereqs"></a>
+ [Zappa](https://github.com/Miserlou/Zappa)
+ [Python](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-python.html) – Versi 2.7 atau 3.6.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)— Verifikasi bahwa Anda AWS CLI dikonfigurasi dengan akun dan Wilayah AWS di mana Anda akan menyebarkan aplikasi Anda. 
+ [Pip](https://pypi.org/project/pip/)
+ [Virtualenv](https://virtualenv.pypa.io/en/latest/)

## Langkah 1: Buat lingkungan
<a name="xray-sdk-python-serverless-environment"></a>

Pada langkah ini, Anda membuat lingkungan virtual menggunakan `virtualenv` untuk meng-host aplikasi.

1. Menggunakan AWS CLI, buat direktori untuk aplikasi. Kemudian ubah ke direktori baru. 

   ```
   mkdir {{serverless_application}}
   cd {{serverless_application}}
   ```

1. Berikutnya, buat lingkungan virtual dalam direktori baru Anda. Gunakan perintah berikut untuk mengaktifkannya. 

   ```
   # Create our virtual environment
   virtualenv {{serverless_env}}
   
   # Activate it
   source {{serverless_env}}/bin/activate
   ```

1. Instal X-Ray, Flask, Zappa, dan pustaka Permintaan ke lingkungan Anda.

   ```
   # Install X-Ray, Flask, Zappa, and Requests into your environment
   pip install aws-xray-sdk flask zappa requests
   ```

1. Tambahkan kode aplikasi ke `serverless_application` direktori. Contohnya, kita dapat membangun dari contoh Flasks [Halo Dunia](https://flask.palletsprojects.com/en/3.0.x/quickstart/). 

   Di direktori `serverless_application`, buat file baru bernama `my_app.py`. Kemudian gunakan editor teks untuk menambahkan perintah berikut. Aplikasi ini instrumen pustaka Permintaan, patch middleware aplikasi Flask ini, dan membuka titik akhir `'/'`.

   ```
   # Import the X-Ray modules
   from aws_xray_sdk.ext.flask.middleware import XRayMiddleware
   from aws_xray_sdk.core import patcher, xray_recorder
   from flask import Flask
   import requests
   
   # Patch the requests module to enable automatic instrumentation
   patcher.patch(('requests',))
   
   app = Flask(__name__)
   
   # Configure the X-Ray recorder to generate segments with our service name
   xray_recorder.configure(service='{{My First Serverless App}}')
   
   # Instrument the Flask application
   XRayMiddleware(app, xray_recorder)
    
   @app.route('/')
   def hello_world():
       resp = requests.get("https://aws.amazon.com")
       return 'Hello, World: %s' % resp.url
   ```

## Langkah 2: Membuat dan men-deploy lingkungan zappa
<a name="xray-sdk-python-serverless-zappa"></a>

Pada langkah ini Anda akan menggunakan Zappa untuk secara otomatis mengonfigurasi titik akhir API Gateway dan kemudian men-deploy ke Lambda.

1. Inisialisasi Zappa dari dalam `serverless_application` direktori. Sebagai contoh, kami menggunakan pengaturan default, tetapi jika Anda memiliki preferensi kustomisasi, Zappa menampilkan petunjuk konfigurasi.

   ```
   zappa init
   ```

   ```
   What do you want to call this environment (default 'dev'): {{dev}}
   ...
   What do you want to call your bucket? (default 'zappa-*******'): {{zappa-*******}}
   ...
   ...
   It looks like this is a Flask application.
   What's the modular path to your app's function?
   This will likely be something like 'your_module.app'.
   We discovered: my_app.app
   Where is your app's function? (default 'my_app.app'): {{my_app.app}}
   ...
   Would you like to deploy this application globally? (default 'n') [y/n/(p)rimary]: {{n}}
   ```

1. Aktifkan X-Ray. Buka file `zappa_settings.json` dan memverifikasi bahwa itu terlihat mirip dengan contoh.

   ```
   {
       "dev": {
           "app_function": "my_app.app",
           "aws_region": "us-west-2",
           "profile_name": "default",
           "project_name": "serverless-exam",
           "runtime": "python2.7",
           "s3_bucket": "zappa-*********"
       }
   }
   ```

1. Tambahkan `"xray_tracing": true` sebagai entri ke file konfigurasi.

   ```
   {
       "dev": {
           "app_function": "my_app.app",
           "aws_region": "us-west-2",
           "profile_name": "default",
           "project_name": "serverless-exam",
           "runtime": "python2.7",
           "s3_bucket": "zappa-*********",
           "xray_tracing": true
       }
   }
   ```

1. Men-deploy aplikasi. Ini secara otomatis mengonfigurasi titik akhir API Gateway dan mengunggah kode Anda ke Lambda.

   ```
   zappa deploy
   ```

   ```
   ...
   Deploying API Gateway..
   Deployment complete!: https://**********.execute-api.us-west-2.amazonaws.com/{{dev}}
   ```

## Langkah 3: Aktifkan penelusuran X-Ray untuk API Gateway
<a name="xray-sdk-python-serverless-xray"></a>

Pada langkah ini Anda akan berinteraksi dengan konsol API Gateway untuk mengaktifkan pelacakan X-Ray.

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

1. Temukan API yang baru dibuat. Harus terlihat seperti `serverless-exam-dev`.

1. Memilih **Tahapan**.

1. Pilih nama tahap deployment Anda. Nilai default-nya `dev`.

1. Pada tab **Masuk/Penelusuran**, pilih **Aktifkan penelusuran X-Ray**.

1. Pilih **Simpan Perubahan**.

1. Akses titik akhir di peramban Anda. Jika Anda menggunakan contoh aplikasi `Hello World`, aplikasi tersebut harus menampilkan hal berikut.

   ```
   "Hello, World: https://aws.amazon.com/"
   ```

## Langkah 4: Lihat telusuran yang dibuat
<a name="xray-sdk-python-serverless-trace"></a>

Pada langkah ini Anda akan berinteraksi dengan konsol X-Ray untuk melihat telusuran pelacakan yang dibuat oleh aplikasi contoh. Untuk walkthrough yang lebih detail tentang analisis penelusuran, lihat [Melihat Peta Layanan](https://docs.aws.amazon.com/xray/latest/devguide/xray-console.html#xray-console-servicemap).

1. Masuk ke Konsol Manajemen AWS dan buka konsol X-Ray di [https://console.aws.amazon.com/xray/rumah](https://console.aws.amazon.com/xray/home).

1. Lihat segmen yang dihasilkan oleh API Gateway, fungsi Lambda, dan kontainer Lambda.

1. Di bawah segmen fungsi Lambda, melihat subsegmen bernama `My First Serverless App`. Ini diikuti oleh subsegmen kedua bernama `https://aws.amazon.com`.

1. Selama inisialisasi, Lambda mungkin juga menghasilkan subsegmen ketiga bernama `initialization`.

![Menelusuri tampilan segmen.](https://docs.aws.amazon.com/id_id/xray/latest/devguide/images/serverless-traceView.png)


![Tampilan grafik layanan.](https://docs.aws.amazon.com/id_id/xray/latest/devguide/images/serverless-serviceView.png)


## Langkah 5: Membersihkan
<a name="xray-sdk-python-serverless-cleanup"></a>

Selalu akhiri sumber daya yang tidak lagi Anda gunakan untuk menghindari akumulasi biaya tak terduga. Seperti tutorial ini menunjukkan, alat-alat seperti Zappa merampingkan redeployment niserver.

Untuk menghapus aplikasi Anda dari Lambda, API Gateway, dan Amazon S3, jalankan perintah berikut di direktori proyek Anda dengan menggunakan AWS CLI. 

```
zappa undeploy {{dev}}
```

## Langkah selanjutnya
<a name="xray-sdk-python-serverless-next"></a>

Tambahkan lebih banyak fitur ke aplikasi Anda dengan menambahkan AWS klien dan instrumentasi mereka dengan X-Ray. Pelajari selengkapnya tentang opsi komputasi niserver di [Nirserver AWS](https://aws.amazon.com/serverless).