

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

# Memulai dengan aplikasi sampel Scorekeep
<a name="scorekeep-tutorial"></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 

Tutorial ini menggunakan `xray-gettingstarted` cabang [aplikasi sampel Scorekeep](xray-scorekeep.md), yang digunakan CloudFormation untuk membuat dan mengonfigurasi sumber daya yang menjalankan aplikasi sampel dan daemon X-Ray di Amazon ECS. Aplikasi ini menggunakan framework Spring untuk mengimplementasikan API web JSON dan AWS SDK untuk Java untuk mempertahankan data ke Amazon DynamoDB. Filter servlet dalam instrumen aplikasi semua permintaan masuk yang dilayani oleh aplikasi, dan penangan permintaan pada instrumen klien AWS SDK panggilan hilir ke DynamoDB.

Anda dapat mengikuti tutorial ini menggunakan salah satu Konsol Manajemen AWS atau AWS CLI.

**Topics**
+ [Prasyarat](#xray-gettingstarted-prereqs)
+ [Instal aplikasi Scorekeep menggunakan CloudFormation](#xray-gettingstarted-deploy)
+ [Hasilkan data pelacakan](#xray-gettingstarted-generate-traces)
+ [Lihat peta jejak di Konsol Manajemen AWS](#xray-gettingstarted-console)
+ [Mengonfigurasi notifikasi Amazon SNS](#xray-gettingstarted-notifications)
+ [Jelajahi aplikasi sampel](#xray-gettingstarted-sample)
+ [Opsional: Kebijakan hak istimewa terbatas](#xray-gettingstarted-security)
+ [Bersihkan](#xray-gettingstarted-cleanup)
+ [Langkah selanjutnya](#xray-gettingstarted-nextsteps)

## Prasyarat
<a name="xray-gettingstarted-prereqs"></a>

Tutorial ini digunakan CloudFormation untuk membuat dan mengkonfigurasi sumber daya yang menjalankan aplikasi sampel dan daemon X-Ray. Prasyarat berikut diperlukan untuk menginstal dan menjalankan tutorial: 

1. Jika Anda menggunakan pengguna IAM dengan izin terbatas, tambahkan kebijakan pengguna berikut di konsol [IAM](https://console.aws.amazon.com/iam): 
   + `AWSCloudFormationFullAccess`— untuk mengakses dan menggunakan CloudFormation
   + `AmazonS3FullAccess`— untuk mengunggah file template untuk CloudFormation menggunakan Konsol Manajemen AWS
   + `IAMFullAccess`— untuk membuat peran instans Amazon ECS dan Amazon EC2
   + `AmazonEC2FullAccess`— untuk membuat sumber daya Amazon EC2
   + `AmazonDynamoDBFullAccess`— untuk membuat tabel DynamoDB
   + `AmazonECS_FullAccess`— untuk membuat sumber daya Amazon ECS
   + `AmazonSNSFullAccess`— untuk membuat topik Amazon SNS
   + `AWSXrayReadOnlyAccess`— untuk izin untuk melihat peta jejak dan jejak di konsol X-Ray

1. Untuk menjalankan tutorial menggunakan AWS CLI, [instal CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) versi 2.7.9 atau yang lebih baru, dan konfigurasikan [CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) dengan pengguna dari langkah sebelumnya. Pastikan wilayah dikonfigurasi saat mengonfigurasi AWS CLI dengan pengguna. Jika suatu wilayah tidak dikonfigurasi, Anda harus menambahkan `--region AWS-REGION` ke setiap perintah CLI. 

1. Pastikan bahwa [Git](https://github.com/git-guides/install-git) diinstal, untuk mengkloning repo aplikasi sampel. 

1. Gunakan contoh kode berikut untuk mengkloning `xray-gettingstarted` cabang repositori Scorekeep: 

   ```
   git clone https://github.com/aws-samples/eb-java-scorekeep.git xray-scorekeep -b xray-gettingstarted
   ```

## Instal aplikasi Scorekeep menggunakan CloudFormation
<a name="xray-gettingstarted-deploy"></a>

------
#### [ Konsol Manajemen AWS ]

**Instal aplikasi sampel menggunakan Konsol Manajemen AWS**

1. Buka [konsol CloudFormation](https://console.aws.amazon.com/cloudformation/)

1. Pilih **Buat tumpukan** lalu pilih **Dengan sumber daya baru** dari menu drop-down.

1. Di bagian **Tentukan templat**, pilih **Unggah file templat**.

1. Pilih **Pilih file**, navigasikan ke `xray-scorekeep/cloudformation` folder yang dibuat saat Anda mengkloning git repo, dan pilih file. `cf-resources.yaml`

1. Pilih **Next** untuk melanjutkan.

1. Masukkan `scorekeep` ke dalam kotak teks **nama Stack**, lalu pilih **Berikutnya** di bagian bawah halaman untuk melanjutkan. Perhatikan bahwa sisa tutorial ini mengasumsikan tumpukan diberi nama`scorekeep`.

1. Gulir ke bagian bawah halaman **Configure stack options** dan pilih **Next** untuk melanjutkan.

1. **Gulir ke bagian bawah halaman **Tinjauan**, pilih kotak centang yang mengakui yang CloudFormation dapat membuat sumber daya IAM dengan nama khusus, dan pilih Buat tumpukan.**

1.  CloudFormation Tumpukan sekarang sedang dibuat. Status tumpukan akan `CREATE_IN_PROGRESS` sekitar lima menit sebelum diubah menjadi`CREATE_COMPLETE`. Status akan disegarkan secara berkala, atau Anda dapat me-refresh halaman.

------
#### [ AWS CLI ]

**Instal aplikasi sampel menggunakan AWS CLI**

1. Arahkan ke `cloudformation` folder `xray-scorekeep` repositori yang Anda kloning sebelumnya dalam tutorial:

   ```
   cd xray-scorekeep/cloudformation/
   ```

1. Masukkan AWS CLI perintah berikut untuk membuat CloudFormation tumpukan:

   ```
   aws cloudformation create-stack --stack-name scorekeep --capabilities "CAPABILITY_NAMED_IAM" --template-body file://cf-resources.yaml
   ```

1. Tunggu sampai status CloudFormation tumpukan`CREATE_COMPLETE`, yang akan memakan waktu sekitar lima menit. Gunakan AWS CLI perintah berikut untuk memeriksa status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

## Hasilkan data pelacakan
<a name="xray-gettingstarted-generate-traces"></a>

Aplikasi sampel termasuk aplikasi web front-end. Gunakan aplikasi web untuk menghasilkan lalu lintas ke API dan mengirim data pelacakan ke X-Ray. Pertama, ambil URL aplikasi web menggunakan Konsol Manajemen AWS atau: AWS CLI

------
#### [ Konsol Manajemen AWS ]

**Temukan URL aplikasi menggunakan Konsol Manajemen AWS**

1. Buka [konsol CloudFormation](https://console.aws.amazon.com/cloudformation/)

1. Pilih `scorekeep` tumpukan dari daftar.

1. Pilih tab **Output** pada halaman `scorekeep` tumpukan, dan pilih tautan `LoadBalancerUrl` URL untuk membuka aplikasi web.

------
#### [ AWS CLI ]

**Temukan URL aplikasi menggunakan AWS CLI**

1. Gunakan perintah berikut untuk menampilkan URL aplikasi web:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].Outputs[0].OutputValue"
   ```

1. Salin URL ini dan buka di browser untuk menampilkan aplikasi web Scorekeep.

------

**Gunakan aplikasi web untuk menghasilkan data jejak**

1. Pilih **Buat** untuk membuat pengguna dan sesi.

1. Ketik **nama game**, atur **Aturan** ke **Tic Tac Toe**, lalu pilih **Buat** untuk membuat game.

1. Pilih **Mainkan** untuk memulai game.

1. Pilih ubin untuk bergerak dan mengubah status game.

Masing-masing langkah ini menghasilkan permintaan HTTP ke API, dan panggilan hilir ke DynamoDB untuk membaca dan menulis pengguna, sesi, game, gerak, dan data status.

## Lihat peta jejak di Konsol Manajemen AWS
<a name="xray-gettingstarted-console"></a>

Anda dapat melihat peta jejak dan jejak yang dihasilkan oleh aplikasi sampel di X-Ray dan CloudWatch konsol.

------
#### [ X-Ray console ]

**Gunakan konsol X-Ray**

1. Buka halaman peta jejak [konsol X-Ray](https://console.aws.amazon.com/xray/home#/service-map).

1. Konsol menunjukkan representasi grafik layanan yang dihasilkan X-Ray dari pelacakan data yang dikirim oleh aplikasi. Pastikan untuk menyesuaikan periode waktu peta jejak jika diperlukan, untuk memastikan bahwa itu akan menampilkan semua jejak sejak Anda pertama kali memulai aplikasi web.  
![\[Periode waktu peta jejak X-Ray\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/xray-console-time-period-15-minutes.png)

Peta jejak menunjukkan klien aplikasi web, API yang berjalan di Amazon ECS, dan setiap tabel DynamoDB yang digunakan aplikasi. Setiap permintaan ke aplikasi, hingga jumlah maksimum permintaan yang dapat dikonfigurasi per detik, dilacak saat menyentuh API, menghasilkan permintaan ke layanan hilir, dan selesai.

Anda dapat memilih simpul apa pun dalam layanan grafik untuk melihat pelacakan untuk permintaan yang menghasilkan lalu lintas ke simpul tersebut. Saat ini, node Amazon SNS berwarna kuning. Telusuri paling detail untuk mencari tahu penyebabnya.

![\[Halaman peta jejak konsol X-Ray\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-servicemap-before-ECS.png)


**Untuk menemukan penyebab kesalahan**

1. Pilih simpul bernama **SNS**. Panel detail simpul ditampilkan.

1. Pilih **Lihat pelacakan **untuk mengakses layar **Gambaran umum pelacakan.**

1. Pilih pelacakan dari **Daftar pelacakan.** Pelacakan ini tidak memiliki metode atau URL karena dicatat selama startup bukan sebagai respons permintaan masuk.  
![\[Memilih pelacakan dari daftar pelacakan\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-tracelist-sns.png)

1. Pilih ikon status kesalahan dalam segmen Amazon SNS di bagian bawah halaman, untuk membuka halaman **Pengecualian** untuk subsegmen SNS.  
![\[Pilih ikon status kesalahan untuk membuka halaman Pengecualian untuk subsegmen Amazon SNS\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-timeline-sns-ecs.png)

1. X-Ray SDK secara otomatis menangkap pengecualian yang dilemparkan oleh instrumentasi AWS SDK klien dan mencatat pelacakan tumpukan.  
![\[Tab pengecualian menampilkan pengecualian yang ditangkap dan mencatat pelacakan tumpukan\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-exception.png)

------
#### [ CloudWatch console ]

**Gunakan CloudWatch konsol**

1. Buka halaman [peta jejak X-Ray](https://console.aws.amazon.com/cloudwatch/home#xray:service-map/map) CloudWatch konsol.

1. Konsol menunjukkan representasi grafik layanan yang dihasilkan X-Ray dari pelacakan data yang dikirim oleh aplikasi. Pastikan untuk menyesuaikan periode waktu peta jejak jika diperlukan, untuk memastikan bahwa itu akan menampilkan semua jejak sejak Anda pertama kali memulai aplikasi web.  
![\[CloudWatch melacak periode waktu peta\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/cw-console-service-map-time-period-15-minutes.png)

Peta jejak menunjukkan klien aplikasi web, API yang berjalan di Amazon EC2, dan setiap tabel DynamoDB yang digunakan aplikasi. Setiap permintaan ke aplikasi, hingga jumlah maksimum permintaan yang dapat dikonfigurasi per detik, dilacak saat menyentuh API, menghasilkan permintaan ke layanan hilir, dan selesai.

Anda dapat memilih simpul apa pun dalam layanan grafik untuk melihat pelacakan untuk permintaan yang menghasilkan lalu lintas ke simpul tersebut. Saat ini, node Amazon SNS berwarna oranye. Telusuri paling detail untuk mencari tahu penyebabnya.

![\[Halaman peta jejak konsol X-Ray\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-cw-servicemap-before-ECS.png)


**Untuk menemukan penyebab kesalahan**

1. Pilih simpul bernama **SNS**. Panel detail node SNS ditampilkan di bawah peta.

1. Pilih **Lihat jejak** untuk mengakses halaman **Jejak**.

1. Tambahkan bagian bawah halaman, pilih jejak dari daftar **Jejak**. Pelacakan ini tidak memiliki metode atau URL karena dicatat selama startup bukan sebagai respons permintaan masuk.  
![\[Memilih pelacakan dari daftar pelacakan\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-cw-tracelist-sns-ecs.png)

1. Pilih subsegmen Amazon SNS di bagian bawah timeline segmen, dan pilih tab **Pengecualian** untuk subsegmen SNS untuk melihat detail pengecualian.  
![\[Lihat tab Pengecualian untuk subsegmen Amazon SNS\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-gettingstarted-cw-timeline-sns-ecs.png)

------

Penyebabnya menunjukkan bahwa alamat email yang diberikan dalam panggilan ke `createSubscription` yang dibuat di kelas `WebConfig` tidak valid. Di bagian selanjutnya, kita akan memperbaikinya.

## Mengonfigurasi notifikasi Amazon SNS
<a name="xray-gettingstarted-notifications"></a>

Scorekeep menggunakan Amazon SNS untuk mengirim notifikasi saat pengguna menyelesaikan game. Saat aplikasi dijalankan, ia mencoba membuat langganan untuk alamat email yang ditentukan dalam parameter CloudFormation tumpukan. Panggilan itu saat ini gagal. Konfigurasikan email notifikasi untuk mengaktifkan notifikasi, dan selesaikan kegagalan yang disorot di peta jejak.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengonfigurasi notifikasi Amazon SNS menggunakan Konsol Manajemen AWS**

1. Buka [konsol CloudFormation](https://console.aws.amazon.com/cloudformation/)

1. Pilih tombol radio di sebelah nama `scorekeep` tumpukan dalam daftar, lalu pilih **Perbarui**.

1. Pastikan bahwa **Use current template** dipilih, lalu klik **Next** pada halaman **Update stack**.

1. Temukan parameter **Email** dalam daftar, dan ganti nilai default dengan alamat email yang valid.  
![\[Perbarui konfigurasi email\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-cf-email-update.png)

1. Gulir ke bagian bawah halaman dan pilih **Berikutnya**.

1. **Gulir ke bagian bawah halaman **Tinjauan**, pilih kotak centang yang mengakui yang CloudFormation dapat membuat sumber daya IAM dengan nama khusus, dan pilih Perbarui tumpukan.**

1.  CloudFormation Tumpukan sekarang sedang diperbarui. Status tumpukan akan `UPDATE_IN_PROGRESS` sekitar lima menit sebelum diubah menjadi`UPDATE_COMPLETE`. Status akan disegarkan secara berkala, atau Anda dapat me-refresh halaman.

------
#### [ AWS CLI ]

**Untuk mengonfigurasi notifikasi Amazon SNS menggunakan AWS CLI**

1. Arahkan ke `xray-scorekeep/cloudformation/` folder yang sebelumnya Anda buat, dan buka `cf-resources.yaml` file di editor teks.

1. Temukan `Default` nilai dalam parameter **Email** dan ubah dari *UPDATE\$1ME* ke alamat email yang valid.

   ```
   Parameters:
     Email:
       Type: String
       Default: UPDATE_ME # <- change to a valid abc@def.xyz email address
   ```

1. Dari `cloudformation` folder, perbarui CloudFormation tumpukan dengan AWS CLI perintah berikut: 

   ```
   aws cloudformation update-stack --stack-name scorekeep --capabilities "CAPABILITY_NAMED_IAM" --template-body file://cf-resources.yaml
   ```

1. Tunggu sampai status CloudFormation tumpukan`UPDATE_COMPLETE`, yang akan memakan waktu beberapa menit. Gunakan AWS CLI perintah berikut untuk memeriksa status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

Ketika pembaruan selesai, Scorekeep memulai ulang dan membuat langganan topik SNS. Periksa email Anda dan konfirmasikan langganan untuk melihat pembaruan saat Anda menyelesaikan game. Buka peta jejak untuk memverifikasi bahwa panggilan ke SNS tidak lagi gagal.

## Jelajahi aplikasi sampel
<a name="xray-gettingstarted-sample"></a>

Aplikasi sampel adalah API web HTTP di Java yang dikonfigurasi untuk menggunakan X-Ray SDK for Java. Ketika Anda menerapkan aplikasi dengan CloudFormation template, itu akan membuat tabel DynamoDB, Amazon ECS Cluster, dan layanan lain yang diperlukan untuk menjalankan Scorekeep di ECS. File definisi tugas untuk ECS dibuat melalui CloudFormation. File ini mendefinisikan gambar kontainer yang digunakan per tugas dalam cluster ECS. Gambar-gambar ini diperoleh dari ECR publik X-Ray resmi. Image container API scorekeep memiliki API yang dikompilasi dengan Gradle. Gambar kontainer dari wadah frontend Scorekeep melayani frontend menggunakan server proxy nginx. Server ini merutekan permintaan ke jalur yang dimulai dengan /api ke API.

Untuk instrumentasi permintaan HTTP masuk, aplikasi menambahkan `TracingFilter` yang disediakan oleh SDK.

**Example src/main/java/scorekeep/WebConfig.java - filter servlet**  

```
import javax.servlet.Filter;
import [com.amazonaws.xray.javax.servlet.AWSXRayServletFilter](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/javax/servlet/AWSXRayServletFilter.html);
...

@Configuration
public class WebConfig {

  @Bean
  public Filter TracingFilter() {
    return new AWSXRayServletFilter("Scorekeep");
  }
...
```

Filter ini mengirimkan pelacakan data tentang semua permintaan masuk yang melayani aplikasi, termasuk permintaan URL, metode, status respons, waktu mulai, dan waktu berakhir.

Aplikasi ini juga membuat panggilan hilir ke DynamoDB menggunakan AWS SDK untuk Java. Untuk instrumen panggilan ini, aplikasi hanya mengambil submodul AWS terkait SDK sebagai dependensi, dan X-Ray SDK for Java secara otomatis menginstrumentasikan semua klien SDK. AWS 

Aplikasi ini menggunakan `Docker` untuk membangun kode sumber on-instance dengan `Gradle Docker Image` dan `Scorekeep API Dockerfile` file untuk menjalankan JAR yang dapat dieksekusi yang dihasilkan Gradle. `ENTRYPOINT` 

**Example penggunaan Docker untuk membangun melalui Gradle Docker Image**  

```
docker run --rm -v /PATH/TO/SCOREKEEP_REPO/home/gradle/project -w /home/gradle/project gradle:4.3 gradle build
```

**Example TITIK MASUK Dockerfile**  

```
ENTRYPOINT [ "sh", "-c", "java -Dserver.port=5000 -jar scorekeep-api-1.0.0.jar" ]
```

File `build.gradle` mengunduh submodul SDK dari Maven selama kompilasi dengan menyatakannya sebagai dependensi.

**Example build.gradle -- dependensi**  

```
...
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
    compile('com.amazonaws:aws-java-sdk-dynamodb')
    compile("com.amazonaws:aws-xray-recorder-sdk-core")
    compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk")
    compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk-instrumentor")
    ...
}
dependencyManagement {
    imports {
        mavenBom("com.amazonaws:aws-java-sdk-bom:1.11.67")
        mavenBom("com.amazonaws:aws-xray-recorder-sdk-bom:2.11.0")
    }
}
```

Submodul Instrumentor inti, AWS AWS SDK, dan SDK adalah semua yang diperlukan untuk secara otomatis instrumen panggilan hilir yang dibuat dengan SDK. AWS 

Untuk menyampaikan data segmen mentah ke X-Ray API, daemon X-Ray diperlukan untuk mendengarkan lalu lintas pada port UDP 2000. *Untuk melakukannya, aplikasi memiliki daemon X-Ray yang dijalankan dalam wadah yang digunakan bersama aplikasi Scorekeep pada ECS sebagai wadah sespan.* Lihat topik [daemon X-Ray](xray-daemon.md) untuk informasi lebih lanjut.

**Example Definisi Kontainer Daemon X-Ray dalam Definisi Tugas ECS**  

```
...
Resources:
  ScorekeepTaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties: 
      ContainerDefinitions: 
      ...
      
      - Cpu: '256'
        Essential: true
        Image: amazon/aws-xray-daemon
        MemoryReservation: '128'
        Name: xray-daemon
        PortMappings: 
          - ContainerPort: '2000'
            HostPort: '2000'
            Protocol: udp
      ...
```

X-Ray SDK for Java menyediakan kelas bernama `AWSXRay` yang menyediakan pencatat global, sebuah `TracingHandler` yang dapat Anda gunakan untuk instrumentasi kode Anda. Anda dapat mengonfigurasi pencatat global untuk menyesuaikan `AWSXRayServletFilter` yang membuat segmen untuk panggilan HTTP masuk. Sampel mencakup blok statis di kelas `WebConfig` yang mengonfigurasi pencatat global dengan plugin dan aturan sampling.

**Example src/main/java/scorekeep/WebConfig.java - perekam**  

```
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.AWSXRayRecorderBuilder;
import com.amazonaws.xray.javax.servlet.AWSXRayServletFilter;
import com.amazonaws.xray.plugins.ECSPlugin;
import com.amazonaws.xray.plugins.EC2Plugin;
import com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy;
...

@Configuration
public class WebConfig {
  ...
  
  static {
    AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard().withPlugin(new ECSPlugin()).withPlugin(new EC2Plugin());

    URL ruleFile = WebConfig.class.getResource("/sampling-rules.json");
    builder.withSamplingStrategy(new LocalizedSamplingStrategy(ruleFile));

    AWSXRay.setGlobalRecorder(builder.build());
    ...
    
  }
}
```

Contoh ini menggunakan builder untuk memuat aturan sampling dari file bernama `sampling-rules.json`. Aturan sampling menentukan tingkat saat SDK mencatat segmen untuk permintaan masuk. 

**Example src/main/java/resources/sampling-aturan.json**  

```
{
  "version": 1,
  "rules": [
    {
      "description": "Resource creation.",
      "service_name": "*",
      "http_method": "POST",
      "url_path": "/api/*",
      "fixed_target": 1,
      "rate": 1.0
    },
    {
      "description": "Session polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/session/*",
      "fixed_target": 0,
      "rate": 0.05
    },
    {
      "description": "Game polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/game/*/*",
      "fixed_target": 0,
      "rate": 0.05
    },
    {
      "description": "State polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/state/*/*/*",
      "fixed_target": 0,
      "rate": 0.05
    }
  ],
  "default": {
    "fixed_target": 1,
    "rate": 0.1
  }
}
```

File aturan sampling menentukan empat aturan sampling kustom dan aturan default. Untuk setiap permintaan masuk, SDK mengevaluasi aturan kustom sesuai urutan penentuannya. SDK menerapkan aturan pertama yang cocok dengan permintaan metode, jalur, dan nama layanan. Untuk Scorekeep, aturan pertama menangkap semua permintaan POST (panggilan pembuatan sumber daya) dengan menerapkan target tetap dari satu permintaan per detik dan tingkat 1,0, atau 100 persen permintaan setelah target tetap terpenuhi.

Tiga aturan kustom lainnya menerapkan tingkat lima persen tanpa target tetap untuk sesi, game, dan baca status (permintaan GET). Hal ini meminimalkan jumlah pelacakan untuk panggilan periodik yang dibuat front end secara otomatis setiap beberapa detik untuk memastikan konten diperbarui. Untuk semua permintaan lainnya, file menentukan tingkat default dari satu permintaan per detik dan tingkat 10 persen.

Aplikasi sampel juga menunjukkan cara menggunakan fitur lanjutan seperti instrumentasi klien SDK manual, membuat tambahan subsegmen, dan panggilan HTTP keluar. Untuk informasi selengkapnya, lihat [AWS X-Ray aplikasi sampel](xray-scorekeep.md).

## Opsional: Kebijakan hak istimewa terbatas
<a name="xray-gettingstarted-security"></a>

 Kontainer Scorekeep ECS mengakses sumber daya menggunakan kebijakan akses penuh, seperti dan. `AmazonSNSFullAccess` `AmazonDynamoDBFullAccess` Menggunakan kebijakan akses penuh bukanlah praktik terbaik untuk aplikasi produksi. Contoh berikut memperbarui kebijakan DynamoDB IAM untuk meningkatkan keamanan aplikasi. Untuk mempelajari lebih lanjut tentang praktik terbaik keamanan dalam kebijakan IAM, lihat [Identitas dan manajemen akses untuk AWS X-Ray](security-iam.md).

**Example template cf-resources.yaml Definisi peran ECSTask**  

```
ECSTaskRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement: 
          - 
            Effect: "Allow"
            Principal: 
              Service: 
                - "ecs-tasks.amazonaws.com"
            Action: 
              - "sts:AssumeRole"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess"
        - "arn:aws:iam::aws:policy/AmazonSNSFullAccess"
        - "arn:aws:iam::aws:policy/AWSXrayFullAccess"
      RoleName: "scorekeepRole"
```

Untuk memperbarui kebijakan Anda, pertama-tama Anda mengidentifikasi ARN sumber daya DynamoDB Anda. Kemudian Anda menggunakan ARN dalam kebijakan IAM khusus. Terakhir, Anda menerapkan kebijakan itu ke profil instans Anda.

**Untuk mengidentifikasi ARN sumber daya DynamoDB Anda:**

1. Buka [Konsol DynamoDB](https://console.aws.amazon.com/dynamodbv2).

1. Pilih **Tabel** dari bilah navigasi kiri.

1. Pilih salah satu `scorekeep-*` untuk menampilkan halaman detail tabel.

1. Di bawah tab **Ikhtisar**, pilih **Info tambahan** untuk memperluas bagian dan melihat Nama Sumber Daya Amazon (ARN). Salin nilai ini.

1. Masukkan ARN ke dalam kebijakan IAM berikut, ganti `AWS_ACCOUNT_ID` nilai `AWS_REGION` dan dengan wilayah dan ID akun spesifik Anda. Kebijakan baru ini hanya mengizinkan tindakan yang ditentukan, bukan `AmazonDynamoDBFullAccess` kebijakan yang mengizinkan tindakan apa pun.  
**Example**  

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ScorekeepDynamoDB",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:PutItem",
                   "dynamodb:UpdateItem",
                   "dynamodb:DeleteItem",
                   "dynamodb:GetItem",
                   "dynamodb:Scan",
                   "dynamodb:Query"
               ],
               "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/scorekeep-*"
           }
       ]
   }
   ```

------

   Tabel yang dibuat aplikasi mengikuti konvensi penamaan yang konsisten. Anda dapat menggunakan `scorekeep-*` format untuk menunjukkan semua tabel Scorekeep.

**Ubah kebijakan IAM Anda**

1. Buka [peran tugas Scorekeep (ScoreKeeProle](https://console.aws.amazon.com/iamv2/home#/roles/details/scorekeepRole)) dari konsol IAM.

1. Pilih kotak centang di samping `AmazonDynamoDBFullAccess` kebijakan dan pilih **Hapus** untuk menghapus kebijakan ini. 

1. Pilih **Tambahkan izin**, lalu **Lampirkan kebijakan**, dan terakhir **Buat kebijakan**.

1. Pilih tab **JSON** dan tempel kebijakan yang dibuat di atas.

1. Pilih **Berikutnya: Tag** di bagian bawah halaman.

1. Pilih **Berikutnya: Tinjau** di bagian bawah halaman.

1. Untuk **Nama**, tetapkan nama untuk kebijakan tersebut.

1. Pilih **Buat kebijakan** di bagian bawah halaman. 

1. Lampirkan kebijakan yang baru dibuat ke `scorekeepRole` peran. Mungkin perlu beberapa menit agar kebijakan terlampir berlaku.

Jika Anda telah melampirkan kebijakan baru ke `scorekeepRole` peran, Anda harus melepaskannya sebelum menghapus CloudFormation tumpukan, karena kebijakan terlampir ini akan memblokir tumpukan agar tidak dihapus. Kebijakan dapat dipisahkan secara otomatis dengan menghapus kebijakan.

**Hapus kebijakan IAM kustom Anda**

1. Buka [konsol IAM](https://console.aws.amazon.com/iam).

1. Pilih **Kebijakan** dari bilah navigasi kiri.

1. Cari nama kebijakan kustom yang Anda buat sebelumnya di bagian ini, dan pilih tombol radio di sebelah nama kebijakan untuk menyorotnya.

1. Pilih drop-down **Tindakan** dan kemudian pilih **Hapus**.

1. Ketik nama kebijakan kustom, lalu pilih **Hapus** untuk mengonfirmasi penghapusan. Ini akan secara otomatis melepaskan kebijakan dari `scorekeepRole` peran.

## Bersihkan
<a name="xray-gettingstarted-cleanup"></a>

Ikuti langkah-langkah berikut untuk menghapus sumber daya aplikasi Scorekeep:

**catatan**  
Jika Anda membuat dan melampirkan kebijakan kustom menggunakan bagian sebelumnya dari tutorial ini, Anda harus menghapus kebijakan dari `scorekeepRole` sebelum menghapus CloudFormation tumpukan.

------
#### [ Konsol Manajemen AWS ]

**Hapus aplikasi sampel menggunakan Konsol Manajemen AWS**

1. Buka [konsol CloudFormation](https://console.aws.amazon.com/cloudformation/)

1. Pilih tombol radio di sebelah nama `scorekeep` tumpukan dalam daftar, lalu pilih **Hapus**.

1.  CloudFormation Tumpukan sekarang sedang dihapus. Status tumpukan akan berlangsung `DELETE_IN_PROGRESS` selama beberapa menit sampai semua sumber daya dihapus. Status akan disegarkan secara berkala, atau Anda dapat me-refresh halaman.

------
#### [ AWS CLI ]

**Hapus aplikasi sampel menggunakan AWS CLI**

1. Masukkan AWS CLI perintah berikut untuk menghapus CloudFormation tumpukan:

   ```
   aws cloudformation delete-stack --stack-name scorekeep
   ```

1. Tunggu sampai CloudFormation tumpukan tidak ada lagi, yang akan memakan waktu sekitar lima menit. Gunakan AWS CLI perintah berikut untuk memeriksa status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

## Langkah selanjutnya
<a name="xray-gettingstarted-nextsteps"></a>

Pelajari selengkapnya tentang X-Ray di bab berikutnya, [AWS X-Ray konsep](xray-concepts.md).

Untuk menggunakan aplikasi Anda sendiri, pelajari lebih lanjut tentang X-Ray SDK for Java atau salah satu SDKs X-Ray lainnya:
+ **X-Ray SDK for Java** – [AWS X-Ray SDK for Java](xray-sdk-java.md)
+ **X-Ray SDK for Node.js** – [AWS X-Ray SDK untuk Node.js](xray-sdk-nodejs.md)
+ **X-Ray SDK for .NET** – [AWS X-Ray SDK for .NET](xray-sdk-dotnet.md)

Untuk menjalankan daemon X-Ray secara lokal atau aktif, lihat. AWS[AWS X-Ray daemon](xray-daemon.md)

Untuk berkontribusi pada aplikasi sampel GitHub, lihat [eb-java-scorekeep](https://github.com/awslabs/eb-java-scorekeep/tree/xray-gettingstarted).