

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

# Gunakan kembali kode dan sumber daya menggunakan aplikasi bersarang di AWS SAM
<a name="serverless-sam-template-nested-applications"></a>

Sebuah aplikasi nirserver dapat mencakup satu **aplikasi nest** atau lebih. Aplikasi bersarang adalah bagian dari aplikasi yang lebih besar dan dapat dikemas dan digunakan baik sebagai artefak yang berdiri sendiri atau sebagai komponen dari aplikasi yang lebih besar. Aplikasi bersarang memungkinkan Anda mengubah kode yang sering digunakan dan menjadi aplikasinya sendiri yang kemudian dapat digunakan kembali di aplikasi tanpa server yang lebih besar atau beberapa aplikasi tanpa server.

Seiring berkembangnya arsitektur tanpa server Anda, pola umum biasanya muncul di mana komponen yang sama didefinisikan dalam beberapa templat aplikasi. Aplikasi bersarang memungkinkan Anda untuk menggunakan kembali kode umum, fungsionalitas, sumber daya, dan konfigurasi dalam AWS SAM templat terpisah, memungkinkan Anda untuk hanya mempertahankan kode dari satu sumber. Ini mengurangi kode dan konfigurasi duplikat. Selain itu, pendekatan modular ini merampingkan pengembangan, meningkatkan organisasi kode, dan memfasilitasi konsistensi di seluruh aplikasi tanpa server. Dengan aplikasi nest, Anda tetap dapat lebih fokus pada logika bisnis yang unik untuk aplikasi Anda.

Untuk menentukan aplikasi nest di aplikasi nirserver Anda, gunakan tipe sumber daya [AWS::Serverless::Application](sam-resource-application.md).

Anda dapat menentukan aplikasi nest dari dua sumber berikut:
+ **Aplikasi AWS Serverless Application Repository ** – Anda dapat menentukan aplikasi nest dengan menggunakan aplikasi yang tersedia untuk akun Anda di AWS Serverless Application Repository. Ini dapat berupa aplikasi *privat* di akun Anda, aplikasi yang *dibagikan secara privat* dengan akun Anda, atau aplikasi yang *dibagikan secara publik* di AWS Serverless Application Repository. Untuk informasi selengkapnya tentang tingkat izin deployment yang berbeda, lihat [Izin Deployment Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverless-app-consuming-applications.html#application-deployment-permissions) dan [Memublikasikan Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverless-app-publishing-applications.html) di *Panduan Developer AWS Serverless Application Repository *.
+ **Aplikasi lokal** – Anda dapat menentukan aplikasi nest dengan menggunakan aplikasi yang disimpan di sistem file lokal Anda.

Lihat bagian berikut untuk detail tentang cara menggunakan AWS SAM untuk menentukan kedua jenis aplikasi bersarang ini dalam aplikasi tanpa server Anda.

**catatan**  
Jumlah maksimum aplikasi yang dapat di-nest dalam aplikasi nirserver adalah 200.  
Jumlah maksimum parameter yang dapat dimiliki aplikasi nest adalah 60.

## Mendefinisikan aplikasi bersarang dari AWS Serverless Application Repository
<a name="serverless-sam-template-nested-applications-how-to-serverlessrepo"></a>

Anda dapat menentukan aplikasi nest dengan menggunakan aplikasi yang tersedia di AWS Serverless Application Repository. Anda juga dapat menyimpan dan mendistribusikan aplikasi yang berisi aplikasi nest menggunakan AWS Serverless Application Repository. Untuk meninjau detail aplikasi bersarang di AWS Serverless Application Repository, Anda dapat menggunakan AWS SDK, konsol AWS CLI, atau Lambda.

Untuk menentukan aplikasi yang di-host AWS Serverless Application Repository di AWS SAM template aplikasi tanpa server Anda, gunakan tombol **Salin sebagai Sumber Daya SAM** pada halaman detail setiap AWS Serverless Application Repository aplikasi. Untuk melakukannya, ikuti langkah-langkah berikut:

1. Pastikan Anda masuk ke Konsol Manajemen AWS.

1. Temukan aplikasi yang ingin Anda sarang AWS Serverless Application Repository dengan menggunakan langkah-langkah di bagian [Browsing, Searching, dan Deploying Applications](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverless-app-consuming-applications.html#browse-and-search-applications                         ) pada *Panduan AWS Serverless Application Repository Pengembang*.

1. Pilih tombol **Salin sebagai Sumber Daya SAM**. Bagian templat SAM untuk aplikasi yang Anda lihat sekarang ada di clipboard Anda.

1. Tempelkan bagian templat SAM ke bagian `Resources:` dari file templat SAM untuk aplikasi yang ingin Anda nest di aplikasi ini.

Berikut ini adalah contoh bagian templat SAM untuk aplikasi nest yang di-hosting di AWS Serverless Application Repository:

```
Transform: AWS::Serverless-2016-10-31

Resources:
  applicationaliasname:
    Type: AWS::Serverless::Application
    Properties:
      Location:
        ApplicationId: arn:aws:serverlessrepo:us-east-1:123456789012:applications/application-alias-name
        SemanticVersion: 1.0.0
      Parameters:
        # Optional parameter that can have default value overridden
        # ParameterName1: 15 # Uncomment to override default value
        # Required parameter that needs value to be provided
        ParameterName2: YOUR_VALUE
```

Jika tidak ada pengaturan parameter yang diperlukan, Anda dapat menghilangkan bagian `Parameters:` pada templat.

**penting**  
Aplikasi yang berisi aplikasi bersarang yang dihosting di AWS Serverless Application Repository mewarisi batasan berbagi aplikasi bersarang.   
Misalnya, aplikasi dibagikan secara publik, tetapi berisi aplikasi bersarang yang hanya dibagikan secara pribadi dengan AWS akun yang membuat aplikasi induk. Dalam hal ini, jika AWS akun Anda tidak memiliki izin untuk menerapkan aplikasi bersarang, Anda tidak dapat menerapkan aplikasi induk. Untuk informasi lebih lanjut tentang izin untuk men-deploy aplikasi, lihat [Izin Deployment Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverless-app-consuming-applications.html#application-deployment-permissions) dan [Memublikasikan Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverless-app-publishing-applications.html) di *Panduan Developer AWS Serverless Application Repository *.

## Mendefinisikan aplikasi nest dari sistem file lokal
<a name="serverless-sam-template-nested-applications-how-to-local-app"></a>

Anda dapat menentukan aplikasi nest dengan menggunakan aplikasi yang disimpan di sistem file lokal Anda. Anda melakukan ini dengan menentukan path ke file AWS SAM template yang disimpan di sistem file lokal Anda.

Berikut ini adalah contoh bagian templat SAM untuk aplikasi lokal nest:

```
Transform: AWS::Serverless-2016-10-31

Resources:
  applicationaliasname:
    Type: AWS::Serverless::Application
    Properties:
      Location: ../my-other-app/template.yaml
      Parameters:
        # Optional parameter that can have default value overridden
        # ParameterName1: 15 # Uncomment to override default value
        # Required parameter that needs value to be provided
        ParameterName2: YOUR_VALUE
```

Jika tidak ada pengaturan parameter, Anda dapat menghilangkan bagian `Parameters:` pada templat.

## Men-deploy aplikasi nest
<a name="serverless-sam-templates-nested-applications-deploying"></a>

Anda dapat menerapkan aplikasi bersarang Anda dengan menggunakan perintah. AWS SAMCLI `sam deploy` Untuk detail selengkapnya, lihat [Menyebarkan aplikasi dan sumber daya Anda dengan AWS SAM](serverless-deploying.md).

**catatan**  
Saat Anda menyebarkan aplikasi yang berisi aplikasi bersarang, Anda harus mengakuinya berisi aplikasi bersarang. Anda melakukan ini dengan meneruskan `CAPABILITY_AUTO_EXPAND` ke [CreateCloudFormationChangeSet API](https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet), atau menggunakan [https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/create-cloud-formation-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/create-cloud-formation-change-set.html) AWS CLI perintah.  
Untuk informasi selengkapnya tentang mengakui aplikasi nest, lihat [Mengakui IAM Role, Kebijakan Sumber Daya, dan Aplikasi Bersarang saat Men-deploy Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/acknowledging-application-capabilities.html) di *Panduan Developer AWS Serverless Application Repository *.