

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

# Menerapkan aplikasi tanpa server Infrastructure Composer Anda ke Cloud AWS
<a name="other-services-cfn"></a>

Gunakan AWS Infrastructure Composer untuk merancang aplikasi tanpa server yang siap digunakan. Untuk menyebarkan, gunakan layanan apa pun yang AWS CloudFormation kompatibel. Kami merekomendasikan menggunakan [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html).

AWS SAM adalah kerangka kerja sumber terbuka yang menyediakan alat pengembang untuk membangun dan menjalankan aplikasi tanpa server. AWS Dengan AWS SAM sintaks singkatan, pengembang mendeklarasikan CloudFormation sumber daya dan sumber daya tanpa server khusus yang diubah menjadi infrastruktur selama penerapan.

## AWS SAM Konsep penting
<a name="w2aac23b7"></a>

Sebelum Anda menggunakannya AWS SAM, penting bagi Anda untuk membiasakan diri dengan beberapa konsep fundementalnya.
+ **[Cara AWS SAM kerja](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam-overview)**: Topik ini, yang ada di *Panduan AWS Serverless Application Model Pengembang*, memberikan informasi penting tentang komponen utama yang Anda gunakan untuk membuat aplikasi tanpa serveless Anda: The AWS SAMCLI, AWS SAM project, dan template. AWS SAM 
+ **[Cara menggunakan AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/chapter-using-sam.html)**: Topik ini, yang ada di *Panduan AWS Serverless Application Model Pengembang*, memberikan ikhtisar tingkat tinggi tentang langkah-langkah yang perlu Anda selesaikan untuk digunakan AWS SAM untuk menyebarkan aplikasi Anda ke Cloud. AWS 

Saat Anda mendesain aplikasi Anda di Infrastructure Composer, Anda dapat menggunakan **sam sync** perintah untuk mendeteksi perubahan lokal AWS SAMCLI secara otomatis dan menerapkan perubahan tersebut. CloudFormation Untuk mempelajari selengkapnya, lihat [Menggunakan sinkronisasi sam](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/using-sam-cli-sync.html) di *Panduan AWS Serverless Application Model Pengembang*.

## Langkah selanjutnya
<a name="w2aac23b9"></a>

Lihat [Siapkan untuk digunakan dengan AWS SAMCLI dan Infrastructure Composer](other-services-cfn-sam-using.md) untuk mempersiapkan penerapan aplikasi Anda.

# Siapkan untuk digunakan dengan AWS SAMCLI dan Infrastructure Composer
<a name="other-services-cfn-sam-using"></a>

Untuk menyebarkan aplikasi Anda dengan AWS SAM, Anda harus terlebih dahulu menginstal dan mengakses AWSCLI dan. AWS SAMCLI Topik di bagian ini memberikan rincian tentang melakukan hal ini.

## Instal AWSCLI
<a name="other-services-cfn-sam-prerequisites-aws"></a>

Kami merekomendasikan menginstal dan mengatur AWSCLI sebelum menginstal AWS SAMCLI. Untuk petunjuk, lihat [Menginstal atau memperbarui ke versi terbaru](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dari *Panduan AWS Command Line Interface Pengguna*. AWS CLI

**catatan**  
Setelah menginstal AWSCLI, Anda harus mengkonfigurasi AWS kredensi. Untuk mempelajari selengkapnya, lihat [Penyiapan cepat](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) di *Panduan AWS Command Line Interface Pengguna*.

## Instal AWS SAMCLI
<a name="other-services-cfn-sam-prerequisites-sam"></a>

Untuk menginstal AWS SAMCLI, lihat [Menginstal AWS SAMCLI di](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) *Panduan AWS Serverless Application Model Pengembang*.

## Akses AWS SAMCLI
<a name="w2aac23c13c13"></a>

Jika Anda menggunakan Infrastructure Composer dari Konsol Manajemen AWS, Anda memiliki opsi berikut untuk menggunakan. AWS SAMCLI

**Aktifkan mode sinkronisasi lokal**  
Dengan mode sinkronisasi lokal, folder proyek Anda, termasuk AWS SAM template, secara otomatis disimpan ke mesin lokal Anda. Infrastructure Composer menyusun direktori proyek Anda dengan cara yang AWS SAM mengenali. Anda dapat menjalankan AWS SAMCLI dari direktori root proyek Anda.  
Untuk informasi selengkapnya tentang mode **sinkronisasi lokal**, lihat[Sinkronkan dan simpan proyek Anda secara lokal di konsol Infrastructure Composer](using-composer-project-local-sync.md).

**Ekspor template Anda**  
Anda dapat mengekspor template Anda ke mesin lokal Anda. Kemudian, jalankan folder AWS SAMCLI dari induk yang berisi template. Anda juga dapat menggunakan `--template-file` opsi dengan AWS SAMCLI perintah apa pun dan memberikan jalur ke template Anda.

**Gunakan Infrastructure Composer dari AWS Toolkit for Visual Studio Code**  
Anda dapat menggunakan Infrastructure Composer dari Toolkit for VS Code untuk membawa Infrastructure Composer ke mesin lokal Anda. Kemudian, gunakan Infrastructure Composer dan AWS SAMCLI dari VS Code.

## Langkah selanjutnya
<a name="w2aac23c13c15"></a>

Untuk menerapkan aplikasi Anda, lihat. [Gunakan Infrastructure Composer AWS SAM untuk membangun dan menyebarkan](other-services-cfn-sam-examples-example1.md)

# Gunakan Infrastructure Composer AWS SAM untuk membangun dan menyebarkan
<a name="other-services-cfn-sam-examples-example1"></a>

Sekarang setelah Anda selesai[Siapkan untuk digunakan dengan AWS SAMCLI dan Infrastructure Composer](other-services-cfn-sam-using.md), Anda dapat menerapkan aplikasi Anda dengan AWS SAM dan Infrastructure Composer. Bagian ini memberikan contoh yang merinci bagaimana Anda dapat melakukan ini. Anda juga dapat merujuk ke [Menerapkan aplikasi dan sumber daya Anda AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-deploying.html) di *Panduan AWS Serverless Application Model Pengembang* untuk petunjuk tentang penerapan aplikasi Anda. AWS SAM

Contoh ini menunjukkan cara membangun dan menyebarkan aplikasi demo Infrastructure Composer. Aplikasi demo memiliki sumber daya berikut:

![\[Demo Infrastructure Composer, menunjukkan aplikasi tanpa server CRUD dasar.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_t1_04.png)


**catatan**  
Untuk mempelajari lebih lanjut tentang aplikasi demo, lihat[Memuat dan memodifikasi proyek demo Infrastructure Composer](getting-started-demo.md).
Untuk contoh ini, kami menggunakan Infrastructure Composer dengan **sinkronisasi lokal** diaktifkan.

1. Gunakan **sam build** perintah untuk membangun aplikasi.

   ```
   $ sam build
   ...
   Build Succeeded
   
   Built Artifacts  : .aws-sam/build
   Built Template   : .aws-sam/build/template.yaml
   
   Commands you can use next
   =========================
   [*] Validate SAM template: sam validate
   [*] Invoke Function: sam local invoke
   [*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
   [*] Deploy: sam deploy --guided
   ```

    AWS SAMCLIMembuat `./aws-sam` direktori di folder proyek. Direktori ini berisi artefak build untuk fungsi Lambda aplikasi. Berikut adalah output dari direktori proyek:

   ```
   .
   ├── README.md
   ├── samconfig.toml
   ├── src
   │   ├── CreateItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── DeleteItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── GetItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── ListItems
   │   │   ├── index.js
   │   │   └── package.json
   │   └── UpdateItem
   │       ├── index.js
   │       └── package.json
   └── template.yaml
   ```

1. Sekarang, aplikasi siap untuk digunakan. Kami akan menggunakan**sam deploy --guided**. Ini mempersiapkan aplikasi Anda untuk penyebaran melalui serangkaian petunjuk.

   ```
   $ sam deploy --guided
   ...
   Configuring SAM deploy
   ======================
   
       Looking for config file [samconfig.toml] :  Found
       Reading default arguments  :  Success
   
       Setting default arguments for 'sam deploy'
       =========================================
       Stack Name [aws-app-composer-basic-api]: AWS Region [us-west-2]:
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [y/N]:
       #SAM needs permission to be able to create roles to connect to the resources in your template
       Allow SAM CLI IAM role creation [Y/n]:
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]:
       ListItems may not have authorization defined, Is this okay? [y/N]: y
       CreateItem may not have authorization defined, Is this okay? [y/N]: y
       GetItem may not have authorization defined, Is this okay? [y/N]: y
       UpdateItem may not have authorization defined, Is this okay? [y/N]: y
       DeleteItem may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]:
       SAM configuration file [samconfig.toml]:
       SAM configuration environment [default]:
   ```

    AWS SAMCLIMenampilkan ringkasan dari apa yang akan digunakan:

   ```
   Deploying with following values
       ===============================
       Stack name                   : aws-app-composer-basic-api
       Region                       : us-west-2
       Confirm changeset            : False
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-1b3x26zbcdkqr
       Capabilities                 : ["CAPABILITY_IAM"]
       Parameter overrides          : {}
       Signing Profiles             : {}
   ```

    AWS SAMCLIMenyebarkan aplikasi, pertama dengan membuat CloudFormation changeset:

   ```
   Initiating deployment
   =====================
   Uploading to aws-app-composer-basic-api/4181c909ee2440a728a7a129dafb83d4.template  7087 / 7087  (100.00%)
   
   Waiting for changeset to be created..
   CloudFormation stack changeset
   ---------------------------------------------------------------------------------------------------------------------------------------------
   Operation                           LogicalResourceId                   ResourceType                        Replacement
   ---------------------------------------------------------------------------------------------------------------------------------------------
   + Add                               ApiDeploymentcc153d135b             AWS::ApiGateway::Deployment         N/A
   + Add                               ApiProdStage                        AWS::ApiGateway::Stage              N/A
   + Add                               Api                                 AWS::ApiGateway::RestApi            N/A
   + Add                               CreateItemApiPOSTitemsPermissionP   AWS::Lambda::Permission             N/A
                                       rod
   + Add                               CreateItemRole                      AWS::IAM::Role                      N/A
   + Add                               CreateItem                          AWS::Lambda::Function               N/A
   + Add                               DeleteItemApiDELETEitemsidPermiss   AWS::Lambda::Permission             N/A
                                       ionProd
   + Add                               DeleteItemRole                      AWS::IAM::Role                      N/A
   + Add                               DeleteItem                          AWS::Lambda::Function               N/A
   + Add                               GetItemApiGETitemsidPermissionPro   AWS::Lambda::Permission             N/A
                                       d
   + Add                               GetItemRole                         AWS::IAM::Role                      N/A
   + Add                               GetItem                             AWS::Lambda::Function               N/A
   + Add                               Items                               AWS::DynamoDB::Table                N/A
   + Add                               ListItemsApiGETitemsPermissionPro   AWS::Lambda::Permission             N/A
                                       d
   + Add                               ListItemsRole                       AWS::IAM::Role                      N/A
   + Add                               ListItems                           AWS::Lambda::Function               N/A
   + Add                               UpdateItemApiPUTitemsidPermission   AWS::Lambda::Permission             N/A
                                       Prod
   + Add                               UpdateItemRole                      AWS::IAM::Role                      N/A
   + Add                               UpdateItem                          AWS::Lambda::Function               N/A
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   Changeset created successfully. arn:aws:cloudformation:us-west-2:513423067560:changeSet/samcli-deploy1677472539/967ab543-f916-4170-b97d-c11a6f9308ea
   ```

   Kemudian, AWS SAMCLI menyebarkan aplikasi:

   ```
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   CREATE_IN_PROGRESS                  AWS::DynamoDB::Table                Items                               -
   CREATE_IN_PROGRESS                  AWS::DynamoDB::Table                Items                               Resource creation Initiated
   CREATE_COMPLETE                     AWS::DynamoDB::Table                Items                               -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      DeleteItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      ListItemsRole                       -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      UpdateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      GetItemRole                         -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      CreateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      DeleteItemRole                      Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      ListItemsRole                       Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      GetItemRole                         Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      UpdateItemRole                      Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      CreateItemRole                      Resource creation Initiated
   CREATE_COMPLETE                     AWS::IAM::Role                      DeleteItemRole                      -
   CREATE_COMPLETE                     AWS::IAM::Role                      ListItemsRole                       -
   CREATE_COMPLETE                     AWS::IAM::Role                      GetItemRole                         -
   CREATE_COMPLETE                     AWS::IAM::Role                      UpdateItemRole                      -
   CREATE_COMPLETE                     AWS::IAM::Role                      CreateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               DeleteItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               CreateItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               ListItems                           -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               UpdateItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               DeleteItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               GetItem                             -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               ListItems                           Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               CreateItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               UpdateItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               GetItem                             Resource creation Initiated
   CREATE_COMPLETE                     AWS::Lambda::Function               DeleteItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               ListItems                           -
   CREATE_COMPLETE                     AWS::Lambda::Function               CreateItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               UpdateItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               GetItem                             -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::RestApi            Api                                 -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::RestApi            Api                                 Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::RestApi            Api                                 -
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   -
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   -
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   -
                                                                           ionProd
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             -
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   -
                                                                           Prod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   -
                                                                           rod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   Resource creation Initiated
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   Resource creation Initiated
                                                                           Prod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   Resource creation Initiated
                                                                           rod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   Resource creation Initiated
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   Resource creation Initiated
                                                                           ionProd
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Stage              ApiProdStage                        -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Stage              ApiProdStage                        Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::Stage              ApiProdStage                        -
   CREATE_COMPLETE                     AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   -
                                                                           rod
   CREATE_COMPLETE                     AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   -
                                                                           Prod
   CREATE_COMPLETE                     AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   -
                                                                           d
   CREATE_COMPLETE                     AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   -
                                                                           ionProd
   CREATE_COMPLETE                     AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   -
                                                                           d
   CREATE_COMPLETE                     AWS::CloudFormation::Stack          aws-app-composer-basic-api          -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ```

   Akhirnya, sebuah pesan ditampilkan, memberi tahu Anda bahwa penerapan berhasil:

   ```
   Successfully created/updated stack - aws-app-composer-basic-api in us-west-2
   ```

# Gunakan Infrastructure Composer AWS SAM untuk menghapus tumpukan
<a name="other-services-cfn-sam-examples-example2"></a>

Contoh ini menunjukkan cara menghapus CloudFormation tumpukan menggunakan **sam delete** perintah.

Masukkan perintah **sam delete** di AWS SAMCLI dan konfirmasikan apakah Anda ingin menghapus tumpukan dan template:

```
$ sam delete
	Are you sure you want to delete the stack aws-app-composer-basic-api in the region us-west-2 ? [y/N]: y
	Do you want to delete the template file 30439348c0be6e1b85043b7a935b34ab.template in S3? [y/N]: y
	- Deleting S3 object with key eb226ca86d1bc4e9914ad85eb485fed8
	- Deleting S3 object with key 875e4bcf4b10a6a1144ad83158d84b6d
	- Deleting S3 object with key 20b869d98d61746dedd9aa33aa08a6fb
	- Deleting S3 object with key c513cedc4db6bc184ce30e94602741d6
	- Deleting S3 object with key c7a15d7d8d1c24b77a1eddf8caebc665
	- Deleting S3 object with key e8b8984f881c3732bfb34257cdd58f1e
	- Deleting S3 object with key 3185c59b550594ee7fca7f8c36686119.template
	- Deleting S3 object with key 30439348c0be6e1b85043b7a935b34ab.template
	- Deleting Cloudformation stack aws-app-composer-basic-api

Deleted successfully
```