

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

# Membangun fungsi.NET Lambda dengan kompilasi AOT Asli di AWS SAM
<a name="build-dotnet7"></a>

Bangun dan kemas AWS Lambda fungsi.NET 8 Anda dengan AWS Serverless Application Model (AWS SAM), menggunakan kompilasi Native Ahead-of-Time (AOT) untuk meningkatkan waktu mulai AWS Lambda dingin.

**Topics**
+ [.NET 8 Ikhtisar AOT asli](#build-dotnet7-overview)
+ [Menggunakan AWS SAM dengan fungsi.NET 8 Lambda](#build-dotnet7-sam)
+ [Instal prasyarat](#build-dotnet7-prerequisites)
+ [Tentukan fungsi.NET 8 Lambda di template Anda AWS SAM](#build-dotnet7-sam-define)
+ [Membangun aplikasi Anda dengan AWS SAMCLI](#build-dotnet7-sam-build)
+ [Pelajari selengkapnya](#build-dotnet7-learn-more)

## .NET 8 Ikhtisar AOT asli
<a name="build-dotnet7-overview"></a>

Secara historis, fungsi.NET Lambda memiliki waktu mulai dingin yang memengaruhi pengalaman pengguna, latensi sistem, dan biaya penggunaan aplikasi tanpa server Anda. Dengan kompilasi .NET Native AOT, Anda dapat meningkatkan waktu mulai dingin dari fungsi Lambda Anda. Untuk mempelajari lebih lanjut tentang Native AOT untuk.NET 8, lihat [Menggunakan AOT Asli](https://github.com/dotnet/runtime/tree/main/src/coreclr/nativeaot#readme) di repositori * GitHub Dotnet*.

## Menggunakan AWS SAM dengan fungsi.NET 8 Lambda
<a name="build-dotnet7-sam"></a>

Lakukan hal berikut untuk mengonfigurasi fungsi.NET 8 Lambda Anda dengan AWS Serverless Application Model ()AWS SAM:
+ Instal prasyarat pada mesin pengembangan Anda.
+ Tentukan fungsi.NET 8 Lambda di template Anda AWS SAM .
+ Bangun aplikasi Anda dengan AWS SAMCLI.

## Instal prasyarat
<a name="build-dotnet7-prerequisites"></a>

Berikut ini adalah prasyarat yang diperlukan:
+ The AWS SAMCLI
+ CLI INTI .NET
+ Alat Global Inti Amazon.Lambda.Tools .NET
+ Docker

**Instal AWS SAMCLI**

1. Untuk memeriksa apakah Anda sudah AWS SAMCLI menginstal, jalankan yang berikut ini:

   ```
   sam --version
   ```

1. Untuk menginstal AWS SAMCLI, lihat[Instal AWS SAMCLI](install-sam-cli.md).

1. Untuk memutakhirkan versi terinstal AWS SAMCLI, lihat[Upgrade AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

**Instal CLI CLI.NET**

1. Untuk mengunduh dan menginstal .NET Core CLI, lihat [Mengunduh.NET](https://dotnet.microsoft.com/download) dari situs web Microsoft.

1. *Untuk informasi selengkapnya tentang.NET Core CLI, lihat [.NET Core CLI](https://docs.aws.amazon.com/lambda/latest/dg/csharp-package-cli.html) di Panduan Pengembang.AWS Lambda *

**Instal Amazon.Lambda.Tools .NET Core Global Tool**

1. Jalankan perintah berikut:

   ```
   dotnet tool install -g Amazon.Lambda.Tools
   ```

1. Jika Anda sudah menginstal alat tersebut, Anda dapat memastikan alat tersebut menggunakan versi terbaru dengan perintah berikut.

   ```
   dotnet tool update -g Amazon.Lambda.Tools
   ```

1. Untuk informasi selengkapnya tentang Amazon.Lambda.Tools .NET Core Global Tool, lihat Extensions [AWS for](https://github.com/aws/aws-extensions-for-dotnet-cli) .NET CLI repositori.NET di. GitHub

**Instal Docker**
+ Membangun dengan Native AOT, Docker harus diinstal. Untuk instruksi instalasi, lihat [Menginstal Docker untuk digunakan dengan AWS SAMCLI](install-docker.md).

## Tentukan fungsi.NET 8 Lambda di template Anda AWS SAM
<a name="build-dotnet7-sam-define"></a>

Untuk mendefinisikan a. NET8 Fungsi Lambda di AWS SAM template Anda, lakukan hal berikut:

1. Jalankan perintah berikut dari direktori awal pilihan Anda:

   ```
   sam init
   ```

1. Pilih `AWS Quick Start Templates` untuk memilih template awal.

1. Pilih `Hello World Example` template.

1. Pilih untuk tidak menggunakan runtime dan jenis paket paling populer dengan memasukkan`n`.

1. Untuk runtime, pilih`dotnet8`.

1. Untuk jenis paket, pilih`Zip`.

1. Untuk template pemula Anda, pilih`Hello World Example using native AOT`.

**Instal Docker**
+ Membangun dengan Native AOT, Docker harus diinstal. Untuk instruksi instalasi, lihat [Menginstal Docker untuk digunakan dengan AWS SAMCLI](install-docker.md).

```
Resources:
HelloWorldFunction:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: ./src/HelloWorldAot/
    Handler: bootstrap
    Runtime: dotnet8
    Architectures:
      - x86_64
    Events:
      HelloWorldAot:
        Type: Api 
        Properties:
          Path: /hello
          Method: get
```

**catatan**  
Ketika `Event` properti `AWS::Serverless::Function` diatur ke`Api`, tetapi `RestApiId` properti tidak ditentukan, AWS SAM menghasilkan `AWS::ApiGateway::RestApi` CloudFormation sumber daya.

## Membangun aplikasi Anda dengan AWS SAMCLI
<a name="build-dotnet7-sam-build"></a>

 Dari direktori root proyek Anda, jalankan `sam build` perintah untuk mulai membangun aplikasi Anda. Jika `PublishAot` properti telah ditentukan dalam file proyek.NET 8 Anda, AWS SAMCLI akan dibangun dengan kompilasi AOT Asli. Untuk mempelajari lebih lanjut tentang `PublishAot` properti, lihat [Penerapan AOT Asli](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/) di dokumentasi *.NET* Microsoft.

Untuk membangun fungsi Anda, AWS SAMCLI memanggil CLI CLI .NET yang menggunakan Amazon.Lambda.Tools .NET Core Global Tool.

**catatan**  
Saat membangun, jika `.sln` file ada di direktori yang sama atau induk proyek Anda, direktori yang berisi `.sln` file akan dipasang ke wadah. Jika `.sln` file tidak ditemukan, hanya folder proyek yang dipasang. Oleh karena itu, jika Anda sedang membangun aplikasi multi-proyek, pastikan `.sln` file tersebut berada di properti.

## Pelajari selengkapnya
<a name="build-dotnet7-learn-more"></a>

Untuk informasi selengkapnya tentang membangun fungsi.NET 8 Lambda, lihat [Memperkenalkan runtime .NET 8](https://aws.amazon.com/blogs/compute/introducing-the-net-8-runtime-for-aws-lambda/) untuk. AWS Lambda

Untuk referensi **sam build** perintah, lihat[sam build](sam-cli-command-reference-sam-build.md).