

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

# Mulai Cepat: Penerbitan Aplikasi
<a name="serverlessrepo-quick-start"></a>

Panduan ini memandu Anda melalui langkah-langkah untuk mengunduh, membangun, menguji, dan mempublikasikan contoh aplikasi tanpa server ke AWS Serverless Application Repository CLI AWS SAM yang menggunakan. Anda dapat menggunakan contoh aplikasi ini sebagai titik awal untuk mengembangkan dan menerbitkan aplikasi tanpa server Anda sendiri.

## Ikhtisar
<a name="serverlessrepo-quick-start-steps"></a>

Langkah-langkah berikut menguraikan cara mengunduh, membangun, dan menerbitkan contoh aplikasi tanpa server:

1. **Inisialisasi**. Unduh contoh aplikasi dari template menggunakan`sam init`.

1. **Uji secara lokal**. Uji aplikasi secara lokal menggunakan `sam local invoke` and/or `sam local start-api`. Perhatikan bahwa dengan perintah ini, meskipun fungsi Lambda Anda dipanggil secara lokal, ia membaca dari dan menulis ke AWS sumber daya di Cloud. AWS 

1. **Package**. Saat Anda puas dengan fungsi Lambda Anda, bundel fungsi Lambda, AWS SAM template, dan dependensi apa pun ke dalam paket penerapan yang digunakan. CloudFormation `sam package` Pada langkah ini Anda juga akan menyertakan informasi tentang aplikasi yang akan diunggah. AWS Serverless Application Repository

1. **Publikasikan**. Publikasikan aplikasi ke AWS Serverless Application Repository penggunaan`sam publish`. Pada akhir langkah ini, Anda dapat melihat aplikasi Anda AWS Serverless Application Repository dan menerapkannya ke AWS Cloud menggunakan AWS Serverless Application Repository.

Contoh [Aplikasi Hello World](#serverlessrepo-quick-start-hello-world) di bagian selanjutnya memandu Anda melalui langkah-langkah ini dalam membangun dan menerbitkan aplikasi tanpa server.

## Aplikasi Hello World
<a name="serverlessrepo-quick-start-hello-world"></a>

Dalam latihan ini, Anda mengunduh dan menguji aplikasi tanpa server Hello World yang mewakili backend API sederhana. Ini memiliki titik akhir Amazon API Gateway yang mendukung operasi GET dan fungsi Lambda. Saat permintaan GET dikirim ke titik akhir, API Gateway memanggil fungsi Lambda. Kemudian, AWS Lambda menjalankan fungsi, yang hanya mengembalikan `hello world` pesan.

Aplikasi ini memiliki komponen-komponen berikut:
+  AWS SAM Template yang mendefinisikan dua AWS sumber daya untuk aplikasi Hello World: layanan API Gateway dengan operasi GET, dan fungsi Lambda. Template juga mendefinisikan pemetaan antara operasi GET API Gateway dan fungsi Lambda. 
+ Kode aplikasi yang ditulis dengan Python.

## Sebelum Anda Memulai
<a name="serverlessrepo-quick-start-hello-world-prereq"></a>

Pastikan Anda memiliki pengaturan yang diperlukan untuk latihan ini:
+ Anda harus memiliki AWS akun dengan pengguna IAM yang memiliki izin administrator. Lihat [Mengatur AWS Akun](https://docs.aws.amazon.com/lambda/latest/dg/setup.html).
+ Anda harus menginstal AWS SAM CLI (antarmuka baris perintah). Lihat [Menginstal AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html).
+ Anda harus memiliki versi 1.16.77 atau yang lebih baru dari yang diinstal. AWS CLI Lihat [Menginstal AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).

## Langkah 1: Inisialisasi Aplikasi
<a name="serverlessrepo-quick-start-hello-world-setup-local-app"></a>

Dalam bagian ini, Anda mengunduh aplikasi contoh, yang terdiri dari templat AWS SAM dan kode aplikasi.

**Untuk menginisialisasi aplikasi**

1. Jalankan perintah berikut pada command AWS SAM prompt CLI.

   ```
   sam init --runtime python3.6 
   ```

1. Tinjau konten direktori yang dibuat oleh perintah (`sam-app/`): 
   + `template.yaml`— Mendefinisikan dua AWS sumber daya yang dibutuhkan aplikasi Hello World: fungsi Lambda dan titik akhir API Gateway yang mendukung operasi GET. Templat juga menentukan pemetaan antara dua sumber daya.
   + Konten yang terkait dengan kode aplikasi Hello World:
     + `hello_world/`directory - Berisi kode aplikasi, yang kembali `hello world` ketika Anda menjalankannya.
**catatan**  
Untuk latihan ini, kode aplikasi ditulis dengan Python, dan Anda menentukan runtime dalam perintah. `init` AWS Lambda mendukung bahasa tambahan untuk membuat kode aplikasi. Jika Anda menentukan runtime lain yang didukung, `init` perintah tersebut menyediakan kode Hello World dalam bahasa yang ditentukan, dan `README.md` file yang dapat Anda ikuti untuk bahasa tersebut. Untuk informasi tentang runtime yang didukung, lihat [Lingkungan Eksekusi Lambda dan](https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html) Pustaka yang Tersedia.

    

## Langkah 2: Uji Aplikasi Secara Lokal
<a name="serverlessrepo-quick-start-hello-world-test-locally"></a>

Sekarang setelah Anda memiliki AWS SAM aplikasi di mesin lokal Anda, ikuti langkah-langkah di bawah ini untuk mengujinya secara lokal.



**Untuk menguji aplikasi secara lokal**

1. Mulai titik akhir API Gateway secara lokal. Anda harus menjalankan perintah berikut dari direktori yang berisi `template.yaml` file.

   ```
   sam-app> sam local start-api --region us-east-1
   ```

   Perintah mengembalikan titik akhir API Gateway, yang dapat Anda kirimi permintaan untuk pengujian lokal.

1. Uji aplikasinya. Salin URL titik akhir API Gateway, tempel di browser, dan pilih **Enter**. Contoh URL titik akhir API Gateway adalah`http://127.0.0.1:3000/hello`.

   API Gateway secara lokal memanggil fungsi Lambda tempat titik akhir dipetakan. Fungsi Lambda dijalankan di wadah Docker lokal dan kembali. `hello world` API Gateway mengembalikan respons ke browser yang berisi teks. 

**Latihan: Ubah string pesan**

Setelah berhasil menguji aplikasi sampel, Anda dapat bereksperimen dengan membuat modifikasi sederhana: ubah string pesan yang dikembalikan.

1. Edit `/hello_world/app.py` file untuk mengubah string pesan dari `'hello world'` ke`'Hello World!'`.

1. Muat ulang URL pengujian di browser Anda dan amati string baru.

Anda akan melihat bahwa kode baru Anda dimuat secara dinamis, tanpa Anda harus memulai ulang `sam local` prosesnya.

## Langkah 3: Package Aplikasi
<a name="serverlessrepo-quick-start-hello-world-package-app"></a>

Setelah menguji aplikasi Anda secara lokal, Anda menggunakan AWS SAM CLI untuk membuat paket penerapan dan template yang dikemas. AWS SAM 

**catatan**  
Pada langkah-langkah berikut, Anda membuat file.zip untuk isi `hello_world/` direktori, yang berisi kode aplikasi. File.zip ini adalah **paket penyebaran** untuk aplikasi tanpa server Anda. Untuk informasi selengkapnya, lihat [Membuat Package Deployment (Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html)) di Panduan *AWS Lambda Pengembang.*

**Untuk membuat paket deployment Lambda**

1. Tambahkan `Metadata` bagian ke file AWS SAM template Anda yang menyediakan informasi aplikasi yang diperlukan. Untuk informasi selengkapnya tentang `Metadata` bagian AWS SAM templat, lihat [Properti Bagian Metdata AWS SAM Template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications-metadata-properties.html) di *Panduan AWS Serverless Application Model Pengembang*.

   Berikut adalah `Metadata` bagian contoh:

   ```
   Metadata:
     AWS::ServerlessRepo::Application:
       Name: my-app
       Description: hello world
       Author: user1
       SpdxLicenseId: Apache-2.0
       LicenseUrl: LICENSE.txt
       ReadmeUrl: README.md
       Labels: ['tests']
       HomePageUrl: https://github.com/user1/my-app-project
       SemanticVersion: 0.0.1
       SourceCodeUrl: https://github.com/user1/my-app-project
   ```

   `ReadmeUrl`Properti `LicenseUrl` dan dapat berupa referensi ke file lokal (seperti pada contoh di atas), atau dapat berupa tautan ke bucket Amazon S3 yang sudah menampung artefak ini.

1. Buat bucket S3 di lokasi tempat Anda ingin menyimpan kode yang dipaketkan. Jika Anda ingin menggunakan bucket S3 yang sudah ada, lewati langkah ini.

   ```
   sam-app> aws s3 mb s3://bucketname
   ```

1. Buat paket penyebaran fungsi Lambda dengan menjalankan perintah CLI `package` AWS SAM berikut. 

   ```
   sam-app> sam package \
       --template-file template.yaml \
       --output-template-file packaged.yaml \
       --s3-bucket bucketname
   ```

   Perintah ini melakukan hal berikut:
   + Ritsleting konten `aws-sam/hello_world/` direktori dan mengunggahnya ke Amazon S3.
   + Mengunggah paket penerapan, file README, dan file LICENSE ke bucket Amazon S3 yang ditentukan oleh opsi. `--s3-bucket`
   + Mengeluarkan file template baru, yang disebut`packaged.yaml`, yang Anda gunakan pada langkah berikutnya untuk mempublikasikan aplikasi. AWS Serverless Application Repository File `packaged.yaml` template mirip dengan file template asli (`template.yaml`), tetapi memiliki perbedaan `ReadmeUrl` utama—properti`CodeUri`,`LicenseUrl`, dan mengarah ke bucket Amazon S3 dan objek yang berisi artefak masing-masing. Sinppet berikut dari contoh file templat `packaged.yaml` menunjukkan properti `CodeUri`: 

     ```
     HelloWorldFunction:
         Type: AWS::Serverless::Function # For more information about function resources, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
         Properties:
           CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID
     
     ...
     ```

## Langkah 4: Publikasikan Aplikasi
<a name="serverlessrepo-quick-start-hello-world-publish-app"></a>

Sekarang setelah Anda membuat paket penyebaran, Anda menggunakannya untuk mempublikasikan aplikasi ke AWS Serverless Application Repository.

**Untuk mempublikasikan aplikasi tanpa server ke AWS Serverless Application Repository**
+ Jalankan perintah berikut untuk mempublikasikan aplikasi baru AWS Serverless Application Repository dengan versi pertama yang dibuat sebagai 0.0.1.

  ```
  sam-app> sam publish \
      --template packaged.yaml \
      --region us-east-1
  ```

**catatan**  
Aplikasi akan dibuat sebagai pribadi secara default. Anda harus membagikan aplikasi sebelum AWS akun lain diizinkan untuk melihat dan menyebarkan aplikasi Anda. Lihat **Langkah Berikutnya** di bawah ini untuk detail selengkapnya tentang berbagi aplikasi Anda.

## Langkah Berikutnya
<a name="serverlessrepo-quick-start-nextstep"></a>

Sekarang Anda telah menerbitkan aplikasi sampel Anda, berikut adalah beberapa hal yang mungkin ingin Anda lakukan dengannya.
+ **Lihat Aplikasi Anda di AWS Serverless Application Repository** — Output dari `sam publish` perintah akan menyertakan tautan ke AWS Serverless Application Repository langsung ke halaman detail aplikasi Anda. Anda juga dapat pergi ke halaman AWS Serverless Application Repository arahan dan mencari aplikasi Anda.
+ **Bagikan Aplikasi Anda** — Karena aplikasi Anda diatur ke pribadi secara default, itu tidak terlihat oleh AWS Akun lain. Untuk membagikan aplikasi Anda dengan orang lain, Anda harus mempublikasikannya atau memberikan izin ke daftar AWS Akun tertentu. Untuk informasi tentang berbagi aplikasi Anda menggunakan AWS CLI lihat[AWS Serverless Application Repository Contoh Kebijakan Aplikasi](security_iam_resource-based-policy-examples.md). Untuk informasi tentang berbagi aplikasi menggunakan konsol, lihat[Berbagi Aplikasi](serverlessrepo-how-to-publish.md#share-application).

## Informasi Selengkapnya
<a name="serverlessrepo-quick-start-moreinfo"></a>

*Untuk informasi selengkapnya tentang `Metadata` bagian AWS SAM template, `sam package` dan `sam publish` perintah AWS SAM CLI, lihat [Menerbitkan Aplikasi Menggunakan AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) di Panduan Pengembang.AWS Serverless Application Model *