

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

# Aktifkan pencarian transaksi
<a name="Enable-TransactionSearch"></a>

Anda dapat mengaktifkan [Pencarian Transaksi](CloudWatch-Transaction-Search.md) melalui konsol atau dengan menggunakan API. [Pencarian transaksi dikonfigurasi untuk seluruh akun dan mengalihkan semua rentang konsumsi melalui X-Ray ke mode pengumpulan hemat biaya menggunakan Harga Amazon. CloudWatch ](https://aws.amazon.com/cloudwatch/pricing/) Secara default, Anda juga akan mengindeks 1% dari rentang yang dicerna secara gratis sebagai ringkasan jejak untuk analisis, yang biasanya cukup mengingat Anda sudah memiliki visibilitas end-to-end jejak penuh pada semua rentang yang tertelan melalui Pencarian Transaksi.

## Prasyarat
<a name="Enable-TransactionSearch-prerequisites"></a>

 Sebelum Anda dapat mengaktifkan Penelusuran Transaksi, Anda harus membuat peran dengan izin berikut. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "TransactionSearchXRayPermissions",
      "Effect": "Allow",
      "Action": [
        "xray:GetTraceSegmentDestination",
        "xray:UpdateTraceSegmentDestination",
        "xray:GetIndexingRules",
        "xray:UpdateIndexingRule"
      ],
      "Resource": "*"
    },
    {
      "Sid": "TransactionSearchLogGroupPermissions",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutRetentionPolicy"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/application-signals/data:*",
        "arn:aws:logs:*:*:log-group:aws/spans:*"
      ]
    },
    {
      "Sid": "TransactionSearchLogsPermissions",
      "Effect": "Allow",
      "Action": [
        "logs:PutResourcePolicy",
        "logs:DescribeResourcePolicies"
      ],
      "Resource": "*"
    },
    {
      "Sid": "TransactionSearchApplicationSignalsPermissions",
      "Effect": "Allow",
      "Action": [
        "application-signals:StartDiscovery"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudWatchApplicationSignalsCreateServiceLinkedRolePermissions",
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/application-signals.cloudwatch.amazonaws.com/AWSServiceRoleForCloudWatchApplicationSignals",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "application-signals.cloudwatch.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchApplicationSignalsGetRolePermissions",
      "Effect": "Allow",
      "Action": "iam:GetRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/application-signals.cloudwatch.amazonaws.com/AWSServiceRoleForCloudWatchApplicationSignals"
    },
    {
      "Sid": "CloudWatchApplicationSignalsCloudTrailPermissions",
      "Effect": "Allow",
      "Action": [
        "cloudtrail:CreateServiceLinkedChannel"
      ],
      "Resource": "arn:aws:cloudtrail:*:*:channel/aws-service-channel/application-signals/*"
    }
  ]
}
```

------

**catatan**  
 Untuk menggunakan Penelusuran Transaksi dan CloudWatch fitur lainnya, tambahkan [CloudWatchReadOnlyAccess kebijakan](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchReadOnlyAccess.html) ke peran Anda. Untuk informasi tentang cara membuat peran, lihat [Pembuatan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 

## Mengaktifkan Penelusuran Transaksi di konsol
<a name="CloudWatch-Transaction-Search-EnableConsole"></a>

 Prosedur berikut menjelaskan cara mengaktifkan Pencarian Transaksi di konsol. 

**Untuk mengaktifkan Penelusuran Transaksi di CloudWatch konsol**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  Dari panel navigasi, di bawah **Sinyal Aplikasi**, pilih **Pencarian Transaksi**. 

1.  Pilih **Aktifkan Pencarian Transaksi**. 

1.  Pilih kotak untuk menelan bentang sebagai log terstruktur, dan masukkan persentase rentang yang akan diindeks. Anda dapat mengindeks rentang 1% secara gratis dan mengubah persentasenya nanti berdasarkan kebutuhan Anda. 

## Mengaktifkan Penelusuran Transaksi menggunakan API
<a name="CloudWatch-Transaction-Search-EnableAPI"></a>

 Prosedur berikut menjelaskan cara mengaktifkan Transaction Search menggunakan API. 

### Langkah 1. Buat kebijakan yang memberikan akses ke rentang konsumsi di Log CloudWatch
<a name="w2aac28c21c15c11b5"></a>

 Saat menggunakan AWS CLI atau SDK untuk mengaktifkan Penelusuran Transaksi, Anda harus mengonfigurasi izin menggunakan kebijakan berbasis sumber daya dengan. [https://docs.aws.amazon.com/xray/latest/api/API_PutResourcePolicy.html](https://docs.aws.amazon.com/xray/latest/api/API_PutResourcePolicy.html) 

**Contoh kebijakan**  
 Kebijakan contoh berikut memungkinkan X-Ray mengirim jejak ke CloudWatch Log 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TransactionSearchXRayAccess",
            "Effect": "Allow",
            "Principal": {
                "Service": "xray.amazonaws.com"
            },
            "Action": "logs:PutLogEvents",
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:aws/spans:*",
                "arn:aws:logs:us-east-1:123456789012:log-group:/aws/application-signals/data:*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:xray:us-east-1:123456789012:*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

**Perintah contoh**  
 Contoh berikut menunjukkan cara memformat AWS CLI perintah Anda dengan`PutResourcePolicy`. 

```
aws logs put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17",		 	 	  "Statement": [ { "Sid": "TransactionSearchXRayAccess", "Effect": "Allow", "Principal": { "Service": "xray.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": [ "arn:partition:logs:region:account-id:log-group:aws/spans:*", "arn:partition:logs:region:account-id:log-group:/aws/application-signals/data:*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:xray:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ]}'
```

### Langkah 2. Konfigurasikan tujuan segmen jejak
<a name="w2aac28c21c15c11b7"></a>

 Konfigurasikan konsumsi bentang dengan. [https://docs.aws.amazon.com/xray/latest/api/API_UpdateTraceSegmentDestination.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateTraceSegmentDestination.html) 

**Perintah contoh**  
 Contoh berikut menunjukkan cara memformat AWS CLI perintah Anda dengan`UpdateTraceSegmentDestination`. 

```
aws xray update-trace-segment-destination --destination CloudWatchLogs
```

### Langkah 3. Konfigurasikan jumlah bentang yang akan diindeks
<a name="w2aac28c21c15c11b9"></a>

 Konfigurasikan persentase pengambilan sampel yang Anda inginkan dengan [https://docs.aws.amazon.com/xray/latest/api/API_UpdateIndexingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateIndexingRule.html) 

**Perintah contoh**  
 Contoh berikut menunjukkan cara memformat AWS CLI perintah Anda dengan`UpdateIndexingRule`. 

```
aws xray update-indexing-rule --name "Default" --rule '{"Probabilistic": {"DesiredSamplingPercentage": number}}'
```

**catatan**  
 Setelah Anda mengaktifkan Penelusuran Transaksi, dibutuhkan waktu sepuluh menit agar rentang tersedia untuk pencarian dan analisis. 

### Langkah 4. Verifikasi rentang tersedia untuk pencarian dan analisis
<a name="w2aac28c21c15c11c11"></a>

 Untuk memverifikasi rentang tersedia untuk pencarian dan analisis, gunakan [https://docs.aws.amazon.com/xray/latest/api/API_GetTraceSegmentDestination.html](https://docs.aws.amazon.com/xray/latest/api/API_GetTraceSegmentDestination.html). 

**Contoh perintah**  
 Contoh berikut menunjukkan cara memformat AWS CLI perintah Anda dengan`GetTraceSegmentDestination`. 

```
aws xray get-trace-segment-destination
```

**Contoh tanggapan**  
 Contoh berikut menunjukkan respons yang dapat Anda harapkan saat Transaction Search aktif. 

```
{
    "Destination": "CloudWatchLogs",
    "Status": "ACTIVE"
}
```

# Menggunakan Penelusuran Transaksi dengan CloudFormation
<a name="CloudWatch-Transaction-Search-Cloudformation"></a>

Anda dapat menggunakan CloudFormation untuk mengaktifkan dan mengkonfigurasi Pencarian Transaksi X-Ray.

**catatan**  
Untuk membuat CloudFormation tumpukan, lihat [Membuat tumpukan pertama Anda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.walkthrough.html).

## Prasyarat
<a name="prerequsites-transaction-search"></a>
+ Anda harus memiliki akses ke AWS akun dengan pengguna IAM atau peran yang memiliki izin untuk menggunakan Amazon EC2, Amazon S3 CloudFormation, atau memiliki akses pengguna administratif.
+ Anda harus memiliki Virtual Private Cloud (VPC) yang memiliki akses ke internet. Agar semuanya tetap sederhana, Anda dapat menggunakan VPC default yang disertakan dengan akun Anda. VPC default dan subnet default cukup untuk konfigurasi ini.
+ Pastikan Penelusuran Transaksi dinonaktifkan sebelum Anda mengaktifkan penggunaan AWS CDK atau CloudFormation.

## Mengaktifkan Pencarian Transaksi
<a name="enabling-transaction-search-CFN"></a>

Untuk mengaktifkan Transaction Search menggunakan CloudFormation, Anda perlu membuat dua sumber berikut.
+ `AWS::Logs::ResourcePolicy`
+ `AWS::XRay::TransactionSearchConfig`

1. **Buat AWS::Logs::ResourcePolicy** - Buat kebijakan sumber daya yang memungkinkan X-Ray mengirim jejak ke CloudWatch Log

   **YAML**

   ```
   Resources:
     LogsResourcePolicy:
       Type: AWS::Logs::ResourcePolicy
       Properties:
         PolicyName: TransactionSearchAccess
         PolicyDocument: !Sub >
           {
             "Version": "2012-10-17",		 	 	 
             "Statement": [
               {
                 "Sid": "TransactionSearchXRayAccess",
                 "Effect": "Allow",
                 "Principal": {
                   "Service": "xray.amazonaws.com"
                 },
                 "Action": "logs:PutLogEvents",
                 "Resource": [
                   "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:aws/spans:*",
                   "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/application-signals/data:*"
                 ],
                 "Condition": {
                   "ArnLike": {
                     "aws:SourceArn": "arn:${AWS::Partition}:xray:${AWS::Region}:${AWS::AccountId}:*"
                   },
                   "StringEquals": {
                     "aws:SourceAccount": "${AWS::AccountId}"
                   }
                 }
               }
             ]
           }
   ```

   **JSON**

   ```
   {
       "Resources": {
           "LogsResourcePolicy": {
               "Type": "AWS::Logs::ResourcePolicy",
               "Properties": {
                   "PolicyName": "TransactionSearchAccess",
                   "PolicyDocument": {
                       "Fn::Sub": "{\n  \"Version\": \"2012-10-17\",		 	 	 \n  \"Statement\": [\n    {\n      \"Sid\": \"TransactionSearchXRayAccess\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"Service\": \"xray.amazonaws.com\"\n      },\n      \"Action\": \"logs:PutLogEvents\",\n      \"Resource\": [\n        \"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:aws/spans:*\",\n        \"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/application-signals/data:*\"\n      ],\n      \"Condition\": {\n        \"ArnLike\": {\n          \"aws:SourceArn\": \"arn:${AWS::Partition}:xray:${AWS::Region}:${AWS::AccountId}:*\"\n        },\n        \"StringEquals\": {\n          \"aws:SourceAccount\": \"${AWS::AccountId}\"\n        }\n      }\n    }\n  ]\n}"
                   }
               }
           }
       }
   }
   ```

1. **Buat dan Konfigurasi AWS::XRay::TransactionSearchConfig** — Buat `TransactionSearchConfig` sumber daya untuk mengaktifkan Pencarian Transaksi.

   **YAML**

   ```
   Resources:
     XRayTransactionSearchConfig:
       Type: AWS::XRay::TransactionSearchConfig
   ```

   **JSON**

   ```
   {
     "Resources": {
       "XRayTransactionSearchConfig": {
         "Type": "AWS::XRay::TransactionSearchConfig"
       }
     }
   }
   ```

1. (Opsional) Anda dapat mengatur `IndexingPercentage` properti untuk mengontrol persentase rentang yang akan diindeks.

   **YAML**

   ```
   Resources:
     XRayTransactionSearchConfig:
       Type: AWS::XRay::TransactionSearchConfig
       Properties:
         IndexingPercentage: 50
   ```

   **JSON**

   ```
   {
     "Resources": {
       "XRayTransactionSearchConfig": {
         "Type": "AWS::XRay::TransactionSearchConfig",
         "Properties": {
           "IndexingPercentage": 20
         }
       }
     }
   }
   ```

    IndexingPercentage Nilai dapat diatur antara 0 dan 100.

## Contoh templat
<a name="transaction-search-CFN-examples"></a>

Contoh berikut mencakup kebijakan sumber daya dan TransactionSearchConfig.

**YAML**

```
Resources:
  LogsResourcePolicy:
    Type: AWS::Logs::ResourcePolicy
    Properties:
      PolicyName: TransactionSearchAccess
      PolicyDocument: !Sub >
        {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Sid": "TransactionSearchXRayAccess",
              "Effect": "Allow",
              "Principal": {
                "Service": "xray.amazonaws.com"
              },
              "Action": "logs:PutLogEvents",
              "Resource": [
                "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:aws/spans:*",
                "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/application-signals/data:*"
              ],
              "Condition": {
                "ArnLike": {
                  "aws:SourceArn": "arn:${AWS::Partition}:xray:${AWS::Region}:${AWS::AccountId}:*"
                },
                "StringEquals": {
                  "aws:SourceAccount": "${AWS::AccountId}"
                }
              }
            }
          ]
        }

  XRayTransactionSearchConfig:
    Type: AWS::XRay::TransactionSearchConfig
    Properties:
      IndexingPercentage: 10
```

**JSON**

```
{
    "Resources": {
        "LogsResourcePolicy": {
            "Type": "AWS::Logs::ResourcePolicy",
            "Properties": {
                "PolicyName": "TransactionSearchAccess",
                "PolicyDocument": {
                    "Fn::Sub": "{\n  \"Version\": \"2012-10-17\",		 	 	 \n  \"Statement\": [\n    {\n      \"Sid\": \"TransactionSearchXRayAccess\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"Service\": \"xray.amazonaws.com\"\n      },\n      \"Action\": \"logs:PutLogEvents\",\n      \"Resource\": [\n        \"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:aws/spans:*\",\n        \"arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/application-signals/data:*\"\n      ],\n      \"Condition\": {\n        \"ArnLike\": {\n          \"aws:SourceArn\": \"arn:${AWS::Partition}:xray:${AWS::Region}:${AWS::AccountId}:*\"\n        },\n        \"StringEquals\": {\n          \"aws:SourceAccount\": \"${AWS::AccountId}\"\n        }\n      }\n    }\n  ]\n}"
                }
            }
        },
        "XRayTransactionSearchConfig": {
            "Type": "AWS::XRay::TransactionSearchConfig",
            "Properties": {
                "IndexingPercentage": 20
            }
        }
    }
}
```

Berikut adalah contoh menggunakan AWS CDK in TypeScript.

**CDK**

```
import * as cdk from '@aws-cdk/core';
import * as logs from '@aws-cdk/aws-logs';
import * as xray from '@aws-cdk/aws-xray';

export class XRayTransactionSearchStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Create the resource policy
    const transactionSearchAccess = new logs.CfnResourcePolicy(this, 'XRayLogResourcePolicy', {
      policyName: 'TransactionSearchAccess',
      policyDocument: JSON.stringify({
        Version: '2012-10-17',		 	 	 
        Statement: [
          {
            Sid: 'TransactionSearchXRayAccess',
            Effect: 'Allow',
            Principal: {
              Service: 'xray.amazonaws.com',
            },
            Action: 'logs:PutLogEvents',
            Resource: [
              `arn:${this.partition}:logs:${this.region}:${this.account}:log-group:aws/spans:*`,
              `arn:${this.partition}:logs:${this.region}:${this.account}:log-group:/aws/application-signals/data:*`,
            ],
            Condition: {
              ArnLike: {
                'aws:SourceArn': `arn:${this.partition}:xray:${this.region}:${this.account}:*`,
              },
              StringEquals: {
                'aws:SourceAccount': this.account,
              },
            },
          },
        ],
      }),
    });

    // Create the TransactionSearchConfig with dependency
    const transactionSearchConfig = new xray.CfnTransactionSearchConfig(this, 'XRayTransactionSearchConfig', {
      indexingPercentage: 10,
    });

    // Add the dependency to ensure Resource Policy is created first
    transactionSearchConfig.addDependsOn(transactionSearchAccess);
  }
}
```

## Memverifikasi konfigurasi
<a name="transaction-search-verify"></a>

Setelah menerapkan CloudFormation tumpukan Anda, Anda dapat memverifikasi konfigurasi menggunakan. AWS CLI

**aws xray get-trace-segment-destination**

Konfigurasi yang berhasil akan mengembalikan yang berikut ini.

```
{
    "Destination": "CloudWatchLogs",
    "Status": "ACTIVE"
}
```