

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

# Aktifkan aplikasi Anda di Lambda
<a name="CloudWatch-Application-Signals-Enable-LambdaMain"></a>

Anda dapat mengaktifkan Sinyal Aplikasi untuk fungsi Lambda Anda. Sinyal Aplikasi secara otomatis menginstrumen fungsi Lambda Anda menggunakan pustaka AWS Distro for OpenTelemetry (ADOT) yang disempurnakan, yang disediakan melalui lapisan Lambda. AWS Lambda Layer ini untuk OpenTelemetry mengemas dan menyebarkan pustaka yang diperlukan untuk instrumentasi otomatis untuk Sinyal Aplikasi.

Selain mendukung Sinyal Aplikasi, lapisan Lambda ini juga merupakan komponen OpenTelemetry dukungan Lambda dan menyediakan fungsionalitas pelacakan.

Anda juga dapat meningkatkan pengamatan Lambda dengan menggunakan pencarian transaksi, yang memungkinkan penangkapan rentang jejak untuk pemanggilan fungsi Lambda tanpa sampling. Fitur ini memungkinkan Anda mengumpulkan rentang untuk fungsi Anda, tidak terpengaruh oleh `sampled` bendera dalam propagasi konteks jejak. Ini memastikan bahwa tidak ada dampak tambahan terhadap layanan yang bergantung pada hilir. Dengan mengaktifkan pencarian transaksi di Lambda, Anda mendapatkan visibilitas lengkap ke dalam kinerja fungsi Anda dan Anda dapat memecahkan masalah yang jarang terjadi. Untuk memulai, lihat [Pencarian Transaksi](CloudWatch-Transaction-Search.md)

**Topics**
+ [Memulai](#Application-Signals-Enable-Lambda-Methods-Getting-Started)
+ [Gunakan konsol CloudWatch Sinyal Aplikasi](#Enable-Lambda-CWConsole)
+ [Gunakan konsol Lambda](#Enable-Lambda-LambdaConsole)
+ [Aktifkan Sinyal Aplikasi pada Lambda menggunakan AWS CDK](#CloudWatch-Application-Signals-Lambda-CDK)
+ [Aktifkan Sinyal Aplikasi pada Lambda menggunakan Model Context Protocol (MCP)](#CloudWatch-Application-Signals-Lambda-MCP)
+ [(Opsional) Pantau kesehatan aplikasi Anda](#CloudWatch-Application-Signals-Monitor-Lambda)
+ [Aktifkan Sinyal Aplikasi secara manual.](#Enable-Lambda-Manually)
+ [Nonaktifkan Sinyal Aplikasi secara manual](#Disable-Lambda-Manually)
+ [Mengonfigurasi Sinyal Aplikasi](#Configuring-Lambda-AppSignals)
+ [AWS Lapisan Lambda untuk ARN OpenTelemetry](#Enable-Lambda-Layers)
+ [Terapkan fungsi Lambda menggunakan wadah Amazon ECR](#containerized-lambda)

## Memulai
<a name="Application-Signals-Enable-Lambda-Methods-Getting-Started"></a>

Ada tiga metode untuk mengaktifkan Sinyal Aplikasi untuk fungsi Lambda Anda.

Setelah Anda mengaktifkan Sinyal Aplikasi untuk fungsi Lambda, diperlukan beberapa menit agar telemetri dari fungsi tersebut muncul di konsol Sinyal Aplikasi. 
+ Gunakan konsol CloudWatch Sinyal Aplikasi
+ Gunakan konsol Lambda
+ Tambahkan AWS Lambda Layer secara manual OpenTelemetry untuk runtime fungsi Lambda Anda.

Masing-masing metode ini menambahkan AWS Lambda Layer OpenTelemetry untuk fungsi Anda.

## Gunakan konsol CloudWatch Sinyal Aplikasi
<a name="Enable-Lambda-CWConsole"></a>

Gunakan langkah-langkah ini untuk menggunakan konsol Sinyal Aplikasi untuk mengaktifkan Sinyal Aplikasi untuk fungsi Lambda.

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

1. Pada panel navigasi, silakan pilih **Sinyal Aplikasi**, **Layanan**.

1. Di area ** daftar ** Layanan, pilih ** Aktifkan Sinyal Aplikasi**.

1. Pilih ** ubin ** Lambda.

1. Pilih setiap fungsi yang ingin Anda aktifkan untuk Sinyal Aplikasi, lalu pilih Sel ** esai**.

## Gunakan konsol Lambda
<a name="Enable-Lambda-LambdaConsole"></a>

Gunakan langkah-langkah ini untuk menggunakan konsol Lambda untuk mengaktifkan Sinyal Aplikasi untuk fungsi Lambda.

1. Buka AWS Lambda konsol di [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi, pilih ** Fungsi ** dan kemudian pilih nama fungsi yang ingin Anda aktifkan.

1. Pilih ** tab ** Konfigurasi, lalu pilih Alat Pem ** antauan dan operasi**.

1. Pilih **Edit**.

1. Di X-Ray ** bagian Sin ** CloudWatch yal Aplikasi dan, pilih Kumpulkan jejak aplikasi ** secara otomatis dan metrik aplikasi standar dengan Sinyal Aplikasi ** dan Kumpulkan jejak layanan Lambda ** secara otomatis untuk visibilitas ujung ke ujung. X-Ray **.

1. Pilih **Simpan**.

## Aktifkan Sinyal Aplikasi pada Lambda menggunakan AWS CDK
<a name="CloudWatch-Application-Signals-Lambda-CDK"></a>

 Jika Anda belum mengaktifkan Sinyal Aplikasi di akun ini, Anda harus memberikan izin yang diperlukan Sinyal Aplikasi untuk menemukan layanan Anda. Untuk informasi selengkapnya, lihat [Aktifkan Sinyal Aplikasi di akun Anda](CloudWatch-Application-Signals-Enable.md).

1. Aktifkan Sinyal Aplikasi untuk aplikasi Anda

   ```
   import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib';
   
   const cfnDiscovery = new applicationsignals.CfnDiscovery(this,
     'ApplicationSignalsServiceRole', { }
   );
   ```

   Sumber CloudFormation daya Discovery memberikan izin berikut kepada Sinyal Aplikasi:
   + `xray:GetServiceGraph`
   + `logs:StartQuery`
   + `logs:GetQueryResults`
   + `cloudwatch:GetMetricData`
   + `cloudwatch:ListMetrics`
   + `tag:GetResources`

   Untuk informasi selengkapnya tentang peran ini, silakan lihat [Service-linked izin peran untuk Sin CloudWatch yal Aplikasi](using-service-linked-roles.md#service-linked-role-signals).

1. Tambahkan kebijakan IAM `CloudWatchLambdaApplicationSignalsExecutionRolePolicy` ke fungsi lambda.

   ```
   const fn = new Function(this, 'DemoFunction', {
       code: Code.fromAsset('$YOUR_LAMBDA.zip'),
       runtime: Runtime.PYTHON_3_12,
       handler: '$YOUR_HANDLER'
   })
   
   fn.role?.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('CloudWatchLambdaApplicationSignalsExecutionRolePolicy'));
   ```

1. Ganti `$AWS_LAMBDA_LAYER_FOR_OTEL_ARN` dengan [AWS Lambda Layer aktual untuk OpenTelemetry ARN ](https://aws-otel.github.io/docs/getting-started/lambda#adot-lambda-layer-arns) untuk Wilayah Anda.

   ```
   fn.addLayers(LayerVersion.fromLayerVersionArn(
       this, 'AwsLambdaLayerForOtel',
       '$AWS_LAMBDA_LAYER_FOR_OTEL_ARN'
   ))
   fn.addEnvironment("AWS_LAMBDA_EXEC_WRAPPER", "/opt/otel-instrument");
   ```

## Aktifkan Sinyal Aplikasi pada Lambda menggunakan Model Context Protocol (MCP)
<a name="CloudWatch-Application-Signals-Lambda-MCP"></a>

Anda dapat menggunakan server Appl CloudWatch ication Signals Model Context Protocol (MCP) untuk mengaktifkan Sinyal Aplikasi pada fungsi Lambda Anda melalui interaksi AI percakapan. Ini menyediakan antarmuka bahasa alami untuk mengatur pemantauan Sinyal Aplikasi.

Server MCP mengotomatiskan proses pengaktifan dengan memahami kebutuhan Anda dan menghasilkan konfigurasi yang sesuai. Alih-alih mengikuti langkah-langkah konsol secara manual atau menulis kode CDK, Anda cukup menjelaskan apa yang ingin Anda aktifkan.

### Prasyarat
<a name="CloudWatch-Application-Signals-Lambda-MCP-Prerequisites"></a>

Sebelum menggunakan server MCP untuk mengaktifkan Sinyal Aplikasi, pastikan Anda memiliki:
+ Lingkungan Pengembangan yang mendukung MCP (seperti Kiro, Claude Desktop, VSCode dengan ekstensi MCP, atau alat lainnya) MCP-compatible 
+ Server MCP Sinyal CloudWatch Aplikasi dikonfigurasi di IDE Anda. Untuk petunjuk penyiapan terperinci, lihat dokumentasi [ CloudWatch ](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server) Application Signals MCP Server.

### Menggunakan server MCP
<a name="CloudWatch-Application-Signals-Lambda-MCP-Usage"></a>

Setelah Anda mengonfigurasi server MCP Sinyal CloudWatch Aplikasi di IDE Anda, Anda dapat meminta panduan pengaktifan menggunakan petunjuk bahasa alami. Meskipun asisten pengkodean dapat menyimpulkan konteks dari struktur proyek Anda, memberikan detail spesifik dalam petunjuk Anda membantu memastikan bahwa Anda menerima panduan yang lebih akurat dan relevan. Sertakan informasi seperti bahasa pemrograman fungsi Lambda Anda, nama fungsi, dan jalur absolut ke kode fungsi Lambda dan kode infrastruktur Anda.

**Petunjuk praktik terbaik (spesifik dan lengkap): **

```
"Enable Application Signals for my Python Lambda function.
My function code is in /home/user/order-processor/lambda and IaC is in /home/user/order-processor/terraform"

"I want to add observability to my Node.js Lambda function 'checkout-handler'.
The function code is at /Users/dev/checkout-function and
the CDK infrastructure is at /Users/dev/checkout-function/cdk"

"Help me instrument my Java Lambda function with Application Signals.
Function directory: /opt/apps/payment-lambda
CDK infrastructure: /opt/apps/payment-lambda/cdk"
```

**Prompt yang kurang efektif: **

```
"Enable monitoring for my Lambda"
→ Missing: language, paths

"Enable Application Signals. My code is in ./src and IaC is in ./infrastructure"
→ Problem: Relative paths instead of absolute paths

"Enable Application Signals for my Lambda at /home/user/myfunction"
→ Missing: programming language
```

**Template cepat: **

```
"Enable Application Signals for my [LANGUAGE] Lambda function.
Function code: [ABSOLUTE_PATH_TO_FUNCTION]
IaC code: [ABSOLUTE_PATH_TO_IAC]"
```

### Manfaat menggunakan server MCP
<a name="CloudWatch-Application-Signals-Lambda-MCP-Benefits"></a>

Menggunakan server Appl CloudWatch ication Signals MCP menawarkan beberapa keuntungan:
+ **Antarmuka bahasa alami: J ** elaskan apa yang ingin Anda aktifkan tanpa menghafal perintah atau sintaks konfigurasi
+ **Context-aware panduan: ** Server MCP memahami lingkungan spesifik Anda dan memberikan rekomendasi yang disesuaikan
+ **Mengurangi kesalahan: ** Pembuatan konfigurasi otomatis meminimalkan kesalahan pengetikan manual
+ **Pengaturan lebih cepat: ** Mulai dari niat ke implementasi dengan lebih cepat
+ **Alat pembelajaran: ** Lihat konfigurasi yang dihasilkan dan pahami cara kerja Sinyal Aplikasi

Untuk informasi selengkapnya tentang mengkonfigurasi dan menggunakan server MCP Sinyal CloudWatch Aplikasi, lihat dokumentasi server [ MCP. ](https://awslabs.github.io/mcp/servers/cloudwatch-applicationsignals-mcp-server)

## (Opsional) Pantau kesehatan aplikasi Anda
<a name="CloudWatch-Application-Signals-Monitor-Lambda"></a>

Setelah mengaktifkan aplikasi di Lambda, Anda dapat memantau kesehatan aplikasi Anda. Untuk informasi selengkapnya, lihat [Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi](Services.md).

## Aktifkan Sinyal Aplikasi secara manual.
<a name="Enable-Lambda-Manually"></a>

Gunakan langkah-langkah ini untuk mengaktifkan Sinyal Aplikasi secara manual untuk fungsi Lambda.

1. Tambahkan AWS Lambda Layer OpenTelemetry untuk runtime Lambda Anda. Untuk menemukan layer ARN untuk Wilayah Anda, lihat ARN [ ADOT Lambda Layer. ](https://aws-otel.github.io/docs/getting-started/lambda#adot-lambda-layer-arns)

1. Tambahkan variabel lingkungan `AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument`

   Tambahkan variabel lingkungan `LAMBDA_APPLICATION_SIGNALS_REMOTE_ENVIRONMENT` untuk mengkonfigurasi lingkungan Lambda kustom. Secara default, lingkungan lambda dikonfigurasi untuk`lambda:default`.

1. Lampirkan kebijakan AWS IAM terkelola ** CloudWatchLambdaApplicationSignalsExecutionRolePolicy ** ke peran eksekusi Lambda.

1. (Opsional) Sebaiknya aktifkan pelacakan aktif Lambda untuk mendapatkan pengalaman penelusuran yang lebih baik. Untuk informasi selengkapnya, lihat [ Visualisasikan pemanggilan fungsi Lambda menggunakan. AWS X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html)

## Nonaktifkan Sinyal Aplikasi secara manual
<a name="Disable-Lambda-Manually"></a>

Untuk menonaktifkan Sinyal Aplikasi secara manual untuk fungsi Lambda, hapus AWS Lambda Layer for OpenTelemetry dari runtime Lambda Anda, dan hapus variabel lingkungan. `AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument`

## Mengonfigurasi Sinyal Aplikasi
<a name="Configuring-Lambda-AppSignals"></a>

Anda dapat menggunakan bagian ini untuk mengkonfigurasi Sinyal Aplikasi di Lambda.

 **Mengelompokkan beberapa fungsi Lambda menjadi satu layanan ** 

Vari `OTEL_SERVICE_NAME` abel lingkungan menetapkan nama layanan. Ini akan ditampilkan sebagai nama layanan untuk aplikasi Anda di dasbor Sinyal Aplikasi. Anda dapat menetapkan nama layanan yang sama untuk beberapa fungsi Lambda, dan mereka akan digabungkan menjadi satu layanan di Sinyal Aplikasi. Bila Anda tidak memberikan nilai untuk kunci ini, nama Fungsi Lambda default digunakan.

 **Pengambilan sampel ** 

Secara default, strategi pengambilan sampel jejak berbasis induk. Anda dapat menyesuaikan strategi pengambilan sampel dengan mengatur variabel lingkungan`OTEL_TRACES_SAMPLER`.

Misalnya, atur laju pengambilan sampel jejak ke 30%.

```
OTEL_TRACES_SAMPLER=traceidratio
OTEL_TRACES_SAMPLER_ARG=0.3
```

Untuk informasi selengkapnya, lihat [ OpenTelemetry Spesifikasi Variabel Lingkungan](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/).

 **Mengaktifkan semua instrumentasi perpustakaan ** 

Untuk mengurangi cold start Lambda, secara default, hanya instrumentasi AWS SDK dan HTTP yang diaktifkan untuk Python, Node, dan Java. Anda dapat mengatur variabel lingkungan untuk mengaktifkan instrumentasi untuk pustaka lain yang digunakan dalam fungsi Lambda Anda.
+ Python – `OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=none`
+ Node — `OTEL_NODE_DISABLED_INSTRUMENTATIONS=none`
+ Java – `OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=true`

## AWS Lapisan Lambda untuk ARN OpenTelemetry
<a name="Enable-Lambda-Layers"></a>

Untuk daftar lengkap AWS Lambda Layer untuk OpenTelemetry ARN berdasarkan Wilayah dan runtime, lihat ARN [ ADOT Lambda Layer ](https://aws-otel.github.io/docs/getting-started/lambda#adot-lambda-layer-arns) di Distro untuk dokumentasi. AWS OpenTelemetry Lapisan ini tersedia untuk runtime Python Node.js, .NET, dan Java.

## Terapkan fungsi Lambda menggunakan wadah Amazon ECR
<a name="containerized-lambda"></a>

Fungsi Lambda yang digunakan sebagai gambar kontainer tidak mendukung Lambda Layers dengan cara tradisional. Saat menggunakan gambar kontainer, Anda tidak dapat melampirkan layer seperti yang Anda lakukan dengan metode penerapan Lambda lainnya. Sebagai gantinya, Anda harus memasukkan konten layer secara manual ke dalam image wadah Anda selama proses pembuatan.

------
#### [ Java ]

Anda dapat mempelajari cara mengintegrasikan AWS Lambda Layer untuk OpenTelemetry ke dalam fungsi Java Lambda dalam wadah Anda, mengunduh `layer.zip` artefak, dan mengintegrasikannya ke dalam wadah fungsi Java Lambda Anda untuk mengaktifkan pemantauan Sinyal Aplikasi.

**Prasyarat**
+ AWS CLI dikonfigurasi dengan kredensi Anda
+ Docker diinstal
+ Instruksi ini mengasumsikan Anda berada di platform x86\_64

1. **Menyiapkan Struktur Proyek **

   Buat direktori untuk fungsi Lambda Anda

   ```
   mkdir java-appsignals-container-lambda && \
   cd java-appsignals-container-lambda
   ```

   Buat struktur proyek Maven

   ```
   mkdir -p src/main/java/com/example/java/lambda
   mkdir -p src/main/resources
   ```

1. **Buat Dockerfile **

   Unduh dan integrasikan OpenTelemetry Layer dengan dukungan Sinyal Aplikasi langsung ke dalam gambar wadah Lambda Anda. Untuk melakukan ini, `Dockerfile` file dibuat.

   ```
   FROM public.ecr.aws/lambda/java:21
   
   # Install utilities
   RUN dnf install -y unzip wget maven
   
   # Download the OpenTelemetry Layer with AppSignals Support
   RUN wget https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip
   
   # Extract and include Lambda layer contents
   RUN mkdir -p /opt && \
       unzip /tmp/layer.zip -d /opt/ && \
       chmod -R 755 /opt/ && \
       rm /tmp/layer.zip
   
   # Copy and build function code
   COPY pom.xml ${LAMBDA_TASK_ROOT}
   COPY src ${LAMBDA_TASK_ROOT}/src
   RUN mvn clean package -DskipTests
   
   # Copy the JAR file to the Lambda runtime directory (from inside the container)
   RUN mkdir -p ${LAMBDA_TASK_ROOT}/lib/
   RUN cp ${LAMBDA_TASK_ROOT}/target/function.jar ${LAMBDA_TASK_ROOT}/lib/
   
   # Set the handler
   CMD ["com.example.java.lambda.App::handleRequest"]
   ```
**catatan**  
`layer.zip`File berisi OpenTelemetry instrumentasi yang diperlukan untuk dukungan Sinyal AWS Aplikasi untuk memantau fungsi Lambda Anda.  
Langkah-langkah ekstraksi lapisan memastikan:  
Isi layer.zip diekstraksi dengan benar ke `/opt/ directory`
`otel-instrument`Skrip menerima izin eksekusi yang tepat
File layer.zip sementara dihapus untuk menjaga ukuran gambar lebih kecil

1. **Kode fungsi lambda ** - Buat file Java untuk handler Lambda Anda di `src/main/java/com/example/lambda/App.java:`

   Proyek Anda akan terlihat seperti:

   ```
   .
   ├── Dockerfile
   ├── pom.xml
   └── src
       └── main
           ├── java
           │   └── com
           │       └── example
           │           └── java
           │               └── lambda
           │                   └── App.java
           └── resources
   ```

1. **Membangun dan menyebarkan image kontainer **

   **Menyiapkan variabel lingkungan **

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   AWS_REGION=$(aws configure get region)
   
   # For fish shell users:
   # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text)
   # set AWS_REGION (aws configure get region)
   ```

   **Otentikasi dengan ECR ** 

   Pertama dengan ECR publik (untuk gambar dasar):

   ```
   aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   Kemudian dengan ECR pribadi Anda:

   ```
   aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
   ```

   **Bangun, tag, dan dorong gambar Anda **

   ```
   # Build the Docker image
   docker build -t lambda-appsignals-demo .
   
   # Tag the image
   docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   # Push the image
   docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   ```

1. **Buat dan konfigurasikan fungsi Lambda **

   Buat fungsi baru menggunakan konsol Lambda.

   Pilih ** Container image ** sebagai opsi penerapan.

   Pilih ** Jelajahi gambar ** untuk memilih gambar Amazon ECR Anda.

1. **Pengujian dan verifikasi — Uji Lambda Anda dengan acara sederhana. Jika integrasi lapisan berhasil, Lambda Anda muncul di bawah peta layanan Sinyal Aplikasi. **

   Anda akan melihat jejak dan metrik untuk fungsi Lambda Anda di CloudWatch konsol.

**Pemecahan Masalah**

Jika Sinyal Aplikasi tidak berfungsi, periksa hal berikut:
+ Periksa log fungsi untuk kesalahan apa pun yang terkait dengan OpenTelemetry instrumentasi
+ Verifikasi apakah variabel lingkungan dis `AWS_LAMBDA_EXEC_WRAPPER` etel dengan benar
+ Pastikan ekstraksi lapisan dalam file Docker berhasil diselesaikan
+ Konfirmasikan apakah izin IAM terpasang dengan benar
+ Jika diperlukan, tingkatkan * pengaturan * Timeout dan Memori dalam konfigurasi umum fungsi Lambda

------
#### [ .Net ]

Anda dapat mempelajari cara mengintegrasikan Layer dengan dukungan OpenTelemetry Sinyal Aplikasi ke dalam fungsi.Net Lambda dalam wadah Anda, mengunduh `layer.zip` artefak, dan mengintegrasikannya ke fungsi.Net Lambda Anda untuk mengaktifkan pemantauan Sinyal Aplikasi.

**Prasyarat**
+ AWS CLI dikonfigurasi dengan kredensi Anda
+ Docker diinstal
+ SDK.Net 8
+ Instruksi ini mengasumsikan Anda berada di platform x86\_64

1. **Menyiapkan Struktur Proyek **

   Buat direktori untuk gambar wadah fungsi Lambda Anda

   ```
   mkdir dotnet-appsignals-container-lambda && \
   cd dotnet-appsignals-container-lambda
   ```

1. **Buat Dockerfile **

   Unduh dan integrasikan OpenTelemetry Layer dengan dukungan Sinyal Aplikasi langsung ke dalam gambar wadah Lambda Anda. Untuk melakukan ini, `Dockerfile` file dibuat.

   ```
   FROM public.ecr.aws/lambda/dotnet:8
   
   # Install utilities
   RUN dnf install -y unzip wget dotnet-sdk-8.0 which
   
   # Add dotnet command to docker container's PATH
   ENV PATH="/usr/lib64/dotnet:${PATH}"
   
   # Download the OpenTelemetry Layer with AppSignals Support
   RUN wget https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip
   
   # Extract and include Lambda layer contents
   RUN mkdir -p /opt && \
       unzip /tmp/layer.zip -d /opt/ && \
       chmod -R 755 /opt/ && \
       rm /tmp/layer.zip
   
   WORKDIR ${LAMBDA_TASK_ROOT}
   
   # Copy the project files
   COPY dotnet-lambda-function/src/dotnet-lambda-function/*.csproj ${LAMBDA_TASK_ROOT}/
   COPY dotnet-lambda-function/src/dotnet-lambda-function/Function.cs ${LAMBDA_TASK_ROOT}/
   COPY dotnet-lambda-function/src/dotnet-lambda-function/aws-lambda-tools-defaults.json ${LAMBDA_TASK_ROOT}/
   
   # Install dependencies and build the application
   RUN dotnet restore
   
   # Use specific runtime identifier and disable ReadyToRun optimization
   RUN dotnet publish -c Release -o out --self-contained false /p:PublishReadyToRun=false
   
   # Copy the published files to the Lambda runtime directory
   RUN cp -r out/* ${LAMBDA_TASK_ROOT}/
   
   CMD ["dotnet-lambda-function::dotnet_lambda_function.Function::FunctionHandler"]
   ```
**catatan**  
`layer.zip`File berisi OpenTelemetry instrumentasi yang diperlukan untuk dukungan Sinyal AWS Aplikasi untuk memantau fungsi Lambda Anda.  
Langkah-langkah ekstraksi lapisan memastikan:  
Isi layer.zip diekstraksi dengan benar ke `/opt/ directory`
`otel-instrument`Skrip menerima izin eksekusi yang tepat
File layer.zip sementara dihapus untuk menjaga ukuran gambar lebih kecil

1. **Kode fungsi Lambda ** - Inisialisasi proyek Lambda Anda menggunakan template Lam AWS bda.NET:

   ```
   # Install the Lambda templates if you haven't already
   dotnet new -i Amazon.Lambda.Templates
   
   # Create a new Lambda project
   dotnet new lambda.EmptyFunction -n dotnet-lambda-function
   ```

   Proyek Anda akan terlihat seperti:

   ```
   .
   ├── Dockerfile
   └── dotnet-lambda-function
       ├── src
       │   └── dotnet-lambda-function
       │       ├── Function.cs
       │       ├── Readme.md
       │       ├── aws-lambda-tools-defaults.json
       │       └── dotnet-lambda-function.csproj
       └── test
           └── dotnet-lambda-function.Tests
               ├── FunctionTest.cs
               └── dotnet-lambda-function.Tests.csproj
   ```

1. **Membangun dan menyebarkan image kontainer **

   **Menyiapkan variabel lingkungan **

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   AWS_REGION=$(aws configure get region)
   
   # For fish shell users:
   # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text)
   # set AWS_REGION (aws configure get region)
   ```

   Perbarui `Function.cs` kode ke:

   Perbarui `dotnet-lambda-function.csproj` kode ke:

   ```
   <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
       <TargetFramework>net8.0>/TargetFramework>
      <ImplicitUsings>enable</ImplicitUsings>
       <Nullable>enable</Nullable>
       <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
       <AWSProjectType>Lambda</AWSProjectType>
       
       <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
       
       <PublishReadyToRun>true</PublishReadyToRun>
    </PropertyGroup>
     <ItemGroup>
       <PackageReference Include="Amazon.Lambda.Core" Version="2.5.0" />
       <PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.4" />
       <PackageReference Include="AWSSDK.S3" Version="3.7.305.23" />
     </ItemGroup>
   </Project>
   ```

1. **Membangun dan menyebarkan image kontainer **

   Menyiapkan variabel lingkungan

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   AWS_REGION=$(aws configure get region)
   
   # For fish shell users:
   # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text)
   # set AWS_REGION (aws configure get region)
   ```

   Otentikasi dengan Amazon ECR publik

   ```
   aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   Otentikasi dengan Amazon ECR pribadi

   ```
   aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
   ```

   Buat repositori Amazon ECR (jika diperlukan)

   ```
   aws ecr create-repository \
       --repository-name lambda-appsignals-demo \
       --region $AWS_REGION
   ```

   Bangun, tag, dan dorong gambar Anda

   ```
   # Build the Docker image
   docker build -t lambda-appsignals-demo .
   
   # Tag the image
   docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   # Push the image
   docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   5. Create and Configure the Lambda Function
   ```

1. **Buat dan konfigurasikan fungsi Lambda **

   Buat fungsi baru menggunakan konsol Lambda.

   Pilih ** Container image ** sebagai opsi penerapan.

   Pilih ** Jelajahi gambar ** untuk memilih gambar Amazon ECR Anda.

1. **Pengujian dan verifikasi — Uji Lambda Anda dengan acara sederhana. Jika integrasi lapisan berhasil, Lambda Anda muncul di bawah peta layanan Sinyal Aplikasi. **

   Anda akan melihat jejak dan metrik untuk fungsi Lambda Anda di CloudWatch konsol.

**Pemecahan Masalah**

Jika Sinyal Aplikasi tidak berfungsi, periksa hal berikut:
+ Periksa log fungsi untuk kesalahan apa pun yang terkait dengan OpenTelemetry instrumentasi
+ Verifikasi apakah variabel lingkungan dis `AWS_LAMBDA_EXEC_WRAPPER` etel dengan benar
+ Pastikan ekstraksi lapisan dalam file Docker berhasil diselesaikan
+ Konfirmasikan apakah izin IAM terpasang dengan benar
+ Jika diperlukan, tingkatkan * pengaturan * Timeout dan Memori dalam konfigurasi umum fungsi Lambda

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

Anda dapat mempelajari cara mengintegrasikan Layer dengan dukungan Sinyal Aplikasi ke dalam fungsi Node.js Lambda dalam wadah Anda, mengunduh `layer.zip` artefak, dan mengintegrasikannya ke dalam fungsi Node.js Lambda Anda untuk mengaktifkan pemantauan Sinyal Aplikasi. OpenTelemetry 

**Prasyarat**
+ AWS CLI dikonfigurasi dengan kredensi Anda
+ Docker diinstal
+ Instruksi ini mengasumsikan Anda berada di platform x86\_64

1. **Menyiapkan Struktur Proyek **

   Buat direktori untuk gambar wadah fungsi Lambda Anda

   ```
   mkdir nodejs-appsignals-container-lambda &&\
   cd nodejs-appsignals-container-lambda
   ```

1. **Buat Dockerfile **

   Unduh dan integrasikan OpenTelemetry Layer dengan dukungan Sinyal Aplikasi langsung ke dalam gambar wadah Lambda Anda. Untuk melakukan ini, `Dockerfile` file dibuat.

   ```
   # Dockerfile
   FROM public.ecr.aws/lambda/nodejs:22
   
   # Install utilities
   RUN dnf install -y unzip wget
   
   # Download the OpenTelemetry Layer with AppSignals Support
   RUN wget https://github.com/aws-observability/aws-otel-js-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip
   
   # Extract and include Lambda layer contents
   RUN mkdir -p /opt && \
       unzip /tmp/layer.zip -d /opt/ && \
       chmod -R 755 /opt/ && \
       rm /tmp/layer.zip
   
   # Install npm dependencies
   RUN npm init -y
   RUN npm install
   
   # Copy function code
   COPY *.js ${LAMBDA_TASK_ROOT}/
   
   # Set the CMD to your handler
   CMD [ "index.handler" ]
   ```
**catatan**  
`layer.zip`File berisi OpenTelemetry instrumentasi yang diperlukan untuk dukungan Sinyal AWS Aplikasi untuk memantau fungsi Lambda Anda.  
Langkah-langkah ekstraksi lapisan memastikan:  
Isi layer.zip diekstraksi dengan benar ke `/opt/ directory`
`otel-instrument`Skrip menerima izin eksekusi yang tepat
File layer.zip sementara dihapus untuk menjaga ukuran gambar lebih kecil

1. **Kode fungsi lambda **

   Buat `index.js` file dengan konten berikut:

   ```
   const { S3Client, ListBucketsCommand } = require('@aws-sdk/client-s3');
   
   // Initialize S3 client
   const s3Client = new S3Client({ region: process.env.AWS_REGION });
   
   exports.handler = async function(event, context) {
     console.log('Received event:', JSON.stringify(event, null, 2));
     console.log('Handler initializing:', exports.handler.name);
   
     const response = {
       statusCode: 200,
       body: {}
     };
   
     try {
       // List S3 buckets
       const command = new ListBucketsCommand({});
       const data = await s3Client.send(command);
   
       // Extract bucket names
       const bucketNames = data.Buckets.map(bucket => bucket.Name);
   
       response.body = {
         message: 'Successfully retrieved buckets',
         buckets: bucketNames
       };
   
     } catch (error) {
       console.error('Error listing buckets:', error);
   
       response.statusCode = 500;
       response.body = {
         message: `Error listing buckets: ${error.message}`
       };
     }
   
     return response;
   };
   ```

   Struktur proyek Anda akan terlihat seperti ini:

   ```
   .
   ├── Dockerfile
   └── index.js
   ```

1. **Membangun dan menyebarkan image kontainer **

   **Menyiapkan variabel lingkungan **

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   AWS_REGION=$(aws configure get region)
   
   # For fish shell users:
   # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text)
   # set AWS_REGION (aws configure get region)
   ```

   Otentikasi dengan Amazon ECR publik

   ```
   aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   Otentikasi dengan Amazon ECR pribadi

   ```
   aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
   ```

   Buat repositori Amazon ECR (jika diperlukan)

   ```
   aws ecr create-repository \
       --repository-name lambda-appsignals-demo \
       --region $AWS_REGION
   ```

   Bangun, tag, dan dorong gambar Anda

   ```
   # Build the Docker image
   docker build -t lambda-appsignals-demo .
   
   # Tag the image
   docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   # Push the image
   docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   5. Create and Configure the Lambda Function
   ```

1. **Buat dan konfigurasikan fungsi Lambda **

   Buat fungsi baru menggunakan konsol Lambda.

   Pilih ** Container image ** sebagai opsi penerapan.

   Pilih ** Jelajahi gambar ** untuk memilih gambar Amazon ECR Anda.

1. **Pengujian dan verifikasi — Uji Lambda Anda dengan acara sederhana. Jika integrasi lapisan berhasil, Lambda Anda muncul di bawah peta layanan Sinyal Aplikasi. **

   Anda akan melihat jejak dan metrik untuk fungsi Lambda Anda di CloudWatch konsol.

**Pemecahan Masalah**

Jika Sinyal Aplikasi tidak berfungsi, periksa hal berikut:
+ Periksa log fungsi untuk kesalahan apa pun yang terkait dengan OpenTelemetry instrumentasi
+ Verifikasi apakah variabel lingkungan `AWS_LAMBDA_EXEC_WRAPPER` diatur dengan benar
+ Pastikan ekstraksi lapisan dalam file Docker berhasil diselesaikan
+ Konfirmasikan apakah izin IAM terpasang dengan benar
+ Jika diperlukan, tingkatkan * pengaturan * Timeout dan Memori dalam konfigurasi umum fungsi Lambda

------
#### [ Python ]

Anda dapat mempelajari cara mengintegrasikan Layer dengan dukungan Sinyal Aplikasi ke dalam fungsi Python Lambda dalam wadah Anda, mengunduh `layer.zip` artefak, dan mengintegrasikannya ke dalam fungsi Python Lambda Anda untuk mengaktifkan pemantauan Sinyal Aplikasi. OpenTelemetry 

**Prasyarat**
+ AWS CLI dikonfigurasi dengan kredensi Anda
+ Docker diinstal
+ Instruksi ini mengasumsikan Anda berada di platform x86\_64

1. **Menyiapkan Struktur Proyek **

   Buat direktori untuk gambar wadah fungsi Lambda Anda

   ```
   mkdir python-appsignals-container-lambda &&\
   cd python-appsignals-container-lambda
   ```

1. **Buat Dockerfile **

   Unduh dan integrasikan OpenTelemetry Layer dengan dukungan Sinyal Aplikasi langsung ke dalam gambar wadah Lambda Anda. Untuk melakukan ini, `Dockerfile` file dibuat.

   ```
   # Dockerfile
   
   FROM public.ecr.aws/lambda/python:3.13
   
   # Copy function code
   COPY app.py ${LAMBDA_TASK_ROOT}
   
   # Install unzip and wget utilities
   RUN dnf install -y unzip wget
   
   # Download the OpenTelemetry Layer with AppSignals Support
   RUN wget https://github.com/aws-observability/aws-otel-python-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip
   
   # Extract and include Lambda layer contents
   RUN mkdir -p /opt && \
       unzip /tmp/layer.zip -d /opt/ && \
       chmod -R 755 /opt/ && \
       rm /tmp/layer.zip
   
   # Set the CMD to your handler
   CMD [ "app.lambda_handler" ]
   ```
**catatan**  
`layer.zip`File berisi OpenTelemetry instrumentasi yang diperlukan untuk dukungan Sinyal AWS Aplikasi untuk memantau fungsi Lambda Anda.  
Langkah-langkah ekstraksi lapisan memastikan:  
Isi layer.zip diekstraksi dengan benar ke `/opt/ directory`
`otel-instrument`Skrip menerima izin eksekusi yang tepat
File layer.zip sementara dihapus untuk menjaga ukuran gambar lebih kecil

1. **Kode fungsi lambda **

   Buat fungsi Lambda Anda dalam `app.py` file:

   ```
   import json
   import boto3
   
   def lambda_handler(event, context):
       """
       Sample Lambda function that can be used in a container image.
   
       Parameters:
       -----------
       event: dict
           Input event data
       context: LambdaContext
           Lambda runtime information
   
       Returns:
       __
       dict
           Response object
       """
       print("Received event:", json.dumps(event, indent=2))
   
       # Create S3 client
       s3 = boto3.client('s3')
   
       try:
           # List buckets
           response = s3.list_buckets()
   
           # Extract bucket names
           buckets = [bucket['Name'] for bucket in response['Buckets']]
   
           return {
               'statusCode': 200,
               'body': json.dumps({
                   'message': 'Successfully retrieved buckets',
                   'buckets': buckets
               })
           }
       except Exception as e:
           print(f"Error listing buckets: {str(e)}")
           return {
               'statusCode': 500,
               'body': json.dumps({
                   'message': f'Error listing buckets: {str(e)}'
               })
           }
   ```

   Struktur proyek Anda akan terlihat seperti ini:

   ```
   .
   ├── Dockerfile
   ├── app.py
   └── instructions.md
   ```

1. **Membangun dan menyebarkan image kontainer **

   **Menyiapkan variabel lingkungan **

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   AWS_REGION=$(aws configure get region)
   
   # For fish shell users:
   # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text)
   # set AWS_REGION (aws configure get region)
   ```

   Otentikasi dengan Amazon ECR publik

   ```
   aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   Otentikasi dengan Amazon ECR pribadi

   ```
   aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
   ```

   Buat repositori Amazon ECR (jika diperlukan)

   ```
   aws ecr create-repository \
       --repository-name lambda-appsignals-demo \
       --region $AWS_REGION
   ```

   Bangun, tag, dan dorong gambar Anda

   ```
   # Build the Docker image
   docker build -t lambda-appsignals-demo .
   
   # Tag the image
   docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   # Push the image
   docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
   
   5. Create and Configure the Lambda Function
   ```

1. **Buat dan konfigurasikan fungsi Lambda **

   Buat fungsi baru menggunakan konsol Lambda.

   Pilih ** Container image ** sebagai opsi penerapan.

   Pilih ** Jelajahi gambar ** untuk memilih gambar Amazon ECR Anda.

1. **Pengujian dan verifikasi — Uji Lambda Anda dengan acara sederhana. Jika integrasi lapisan berhasil, Lambda Anda muncul di bawah peta layanan Sinyal Aplikasi. **

   Anda akan melihat jejak dan metrik untuk fungsi Lambda Anda di CloudWatch konsol.

**Pemecahan Masalah**

Jika Sinyal Aplikasi tidak berfungsi, periksa hal berikut:
+ Periksa log fungsi untuk kesalahan apa pun yang terkait dengan OpenTelemetry instrumentasi
+ Verifikasi apakah variabel lingkungan `AWS_LAMBDA_EXEC_WRAPPER` diatur dengan benar
+ Pastikan ekstraksi lapisan dalam file Docker berhasil diselesaikan
+ Konfirmasikan apakah izin IAM terpasang dengan benar
+ Jika diperlukan, tingkatkan * pengaturan * Timeout dan Memori dalam konfigurasi umum fungsi Lambda

------