

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

# Referensi file eksternal di Infrastructure Composer
<a name="using-composer-external-files"></a>

Anda dapat menggunakan file eksternal dengan templat AWS Serverless Application Model (AWS SAM) Anda untuk menggunakan kembali kode berulang dan mengatur proyek Anda. Misalnya, Anda mungkin memiliki beberapa sumber daya Amazon API Gateway REST API yang dijelaskan oleh OpenAPI spesifikasi. Alih-alih mereplikasi kode OpenAPI spesifikasi dalam template Anda, Anda dapat membuat satu file eksternal dan mereferensikannya untuk setiap sumber daya Anda.

AWS Infrastructure Composer mendukung kasus penggunaan file eksternal berikut:
+ REST APISumber daya API Gateway ditentukan oleh file OpenAPI spesifikasi eksternal.
+ AWS Step Functions sumber daya mesin negara yang ditentukan oleh file definisi mesin keadaan eksternal.

Untuk mempelajari lebih lanjut tentang mengonfigurasi file eksternal untuk sumber daya yang didukung, lihat berikut ini:
+ `[ DefinitionBody](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-definitionbody)`untuk`AWS::Serverless::Api`.
+ `[ DefinitionUri](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionuri)`untuk`AWS::Serverless::StateMachine`.

**catatan**  
Untuk mereferensikan file eksternal dengan Infrastructure Composer dari konsol Infrastructure Composer, Anda harus menggunakan Infrastructure Composer dalam mode sinkronisasi **lokal**. Untuk informasi selengkapnya, lihat [Sinkronkan dan simpan proyek Anda secara lokal di konsol Infrastructure Composer](using-composer-project-local-sync.md).

**Topics**
+ [Praktik terbaik untuk file referensi eksternal Infrastructure Composer](using-composer-external-files-best-practices.md)
+ [Buat referensi file eksternal di Infrastructure Composer](using-composer-external-files-new.md)
+ [Memuat proyek dengan referensi file eksternal di Infrastructure Composer](using-composer-external-files-load.md)
+ [Buat aplikasi yang mereferensikan file eksternal di Infrastructure Composer](using-composer-external-files-examples-example3.md)
+ [Referensi file eksternal OpenAPI spesifikasi dengan Infrastructure Composer](using-composer-external-files-examples-example1.md)

# Praktik terbaik untuk file referensi eksternal Infrastructure Composer
<a name="using-composer-external-files-best-practices"></a>

## Gunakan Infrastructure Composer dengan IDE lokal
<a name="using-composer-external-files-best-practices-ide"></a>

Bila Anda menggunakan Infrastructure Composer dengan IDE **lokal dalam mode sinkronisasi lokal**, Anda dapat menggunakan IDE lokal Anda untuk melihat dan memodifikasi file eksternal. Konten dari file eksternal yang didukung yang direferensikan pada template Anda akan secara otomatis diperbarui di kanvas Infrastructure Composer. Untuk mempelajari selengkapnya, lihat [Connect konsol Infrastructure Composer dengan IDE lokal](other-services-ide.md).

## Menyimpan file eksternal dalam direktori induk proyek Anda
<a name="using-composer-external-files-best-practices-directory"></a>

Anda dapat membuat subdirektori dalam direktori induk proyek Anda untuk mengatur file eksternal Anda. Infrastructure Composer tidak dapat mengakses file eksternal yang disimpan dalam direktori di luar direktori induk proyek Anda.

## Menerapkan aplikasi Anda menggunakan AWS SAMCLI
<a name="using-composer-external-files-best-practices-sam"></a>

Saat menerapkan aplikasi Anda ke AWS Cloud, file eksternal lokal harus terlebih dahulu diunggah ke lokasi yang dapat diakses, seperti Amazon Simple Storage Service (Amazon S3). Anda dapat menggunakan AWS SAM CLI untuk memfasilitasi proses ini secara otomatis. Untuk mempelajari selengkapnya, lihat [Mengunggah file lokal saat penerapan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/deploy-upload-local-files.html) di *Panduan AWS Serverless Application Model Pengembang*.

# Buat referensi file eksternal di Infrastructure Composer
<a name="using-composer-external-files-new"></a>

Anda dapat membuat referensi file eksternal dari panel **properti sumber daya** dari sumber daya yang didukung.

**Untuk membuat referensi file eksternal**

1. Dari kartu komponen yang disempurnakan **API Gateway** atau **Step Functions**, pilih **Detail** untuk memunculkan panel **properti sumber daya**.

1. Temukan dan pilih opsi **Gunakan file eksternal**.

1. Tentukan jalur relatif ke file eksternal. Ini adalah jalur dari `template.yaml` file Anda ke file eksternal.

   Misalnya, untuk mereferensikan file `api-spec.yaml` eksternal dari struktur proyek berikut, tentukan `./api-spec.yaml` sebagai jalur relatif Anda.

   ```
   demo
   ├── api-spec.yaml
   ├── src
   │ └── Function
   │ ├── index.js
   │ └── package.json
   └── template.yaml
   ```
**catatan**  
Jika file eksternal dan jalur yang ditentukan tidak ada, Infrastructure Composer akan membuatnya.

1. **Simpan** perubahan Anda.

# Memuat proyek dengan referensi file eksternal di Infrastructure Composer
<a name="using-composer-external-files-load"></a>

Ikuti langkah-langkah yang tercantum di halaman ini untuk memuat proyek Infrastructure Composer dengan referensi file eksternal.

**Dari konsol Infrastructure Composer**

1. Selesaikan langkah-langkah yang tercantum di[Impor template proyek yang ada di konsol Infrastructure Composer](using-composer-project-import-template.md).

1. Konfirmasi Infrastructure Composer meminta Anda untuk terhubung ke folder root proyek Anda 

Jika browser Anda mendukung File System Access API, Infrastructure Composer akan meminta Anda untuk terhubung ke folder root proyek Anda. Infrastructure Composer akan membuka proyek Anda dalam mode **sinkronisasi lokal** untuk mendukung file eksternal Anda. Jika file eksternal yang direferensikan tidak didukung, Anda akan menerima pesan kesalahan. Untuk informasi selengkapnya tentang pesan galat, lihat[Pemecahan masalah](ref-troubleshooting.md). 

**Dari Toolkit for VS Code**

1. Selesaikan langkah-langkah yang tercantum di[Akses Komposer Infrastruktur dari AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md).

1. Buka template yang ingin Anda lihat di Infrastructure Composer.

Ketika Anda mengakses Infrastructure Composer dari template, Infrastructure Composer akan secara otomatis mendeteksi file eksternal Anda. Jika file eksternal yang direferensikan tidak didukung, Anda akan menerima pesan kesalahan. Untuk informasi selengkapnya tentang pesan galat, lihat[Pemecahan masalah](ref-troubleshooting.md).

# Buat aplikasi yang mereferensikan file eksternal di Infrastructure Composer
<a name="using-composer-external-files-examples-example3"></a>

Contoh ini menggunakan AWS SAMCLI untuk membuat aplikasi yang mereferensikan file eksternal untuk definisi mesin statusnya. Anda kemudian memuat proyek Anda di Infrastructure Composer dengan file eksternal Anda direferensikan dengan benar.

**Contoh**

1. Pertama, gunakan **sam init** perintah AWS SAM CLI untuk menginisialisasi aplikasi baru bernama. `demo` Selama alur interaktif, pilih template mulai cepat **alur kerja multi-langkah**.

   ```
   $ sam init
   
   ...
   
   Which template source would you like to use?
           1 - AWS Quick Start Templates
           2 - Custom Template Location
   Choice: 1
   
   Choose an AWS Quick Start application template
           1 - Hello World Example
           2 - Multi-step workflow
           3 - Serverless API
           4 - Scheduled task
           ...
   Template: 2
   
   Which runtime would you like to use?
           1 - dotnet6
           2 - dotnetcore3.1
           ...
           15 - python3.7
           16 - python3.10
           17 - ruby2.7
   Runtime: 16
   
   Based on your selections, the only Package type available is Zip.
   We will proceed to selecting the Package type as Zip.
   
   Based on your selections, the only dependency manager available is pip.
   We will proceed copying the template using pip.
   
   Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
   
   Would you like to enable monitoring using CloudWatch Application Insights?
   For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]: ENTER
   
   Project name [sam-app]: demo
   
       -----------------------
       Generating application:
       -----------------------
       Name: demo
       Runtime: python3.10
       Architectures: x86_64
       Dependency Manager: pip
       Application Template: step-functions-sample-app
       Output Directory: .
       Configuration file: demo/samconfig.toml
       
       Next steps can be found in the README file at demo/README.md
   
   ...
   ```

   Aplikasi ini mereferensikan file eksternal untuk definisi mesin negara.

   ```
   ...
   Resources:
     StockTradingStateMachine:
       Type: AWS::Serverless::StateMachine
       Properties:
         DefinitionUri: statemachine/stock_trader.asl.json
   ...
   ```

   File eksternal terletak di `statemachine` subdirektori aplikasi kami.

   ```
   demo
   ├── README.md
   ├── __init__.py
   ├── functions
   │   ├── __init__.py
   │   ├── stock_buyer
   │   ├── stock_checker
   │   └── stock_seller
   ├── samconfig.toml
   ├── statemachine
   │   └── stock_trader.asl.json
   ├── template.yaml
   └── tests
   ```

1. Selanjutnya, muat aplikasi Anda di Infrastructure Composer dari konsol. Dari **halaman** beranda Infrastructure Composer, pilih **Load a CloudFormation template**.

1. Pilih folder `demo` proyek kami dan izinkan prompt untuk melihat file. Pilih `template.yaml` file kami dan pilih **Buat**. Saat diminta, pilih **Simpan perubahan**.  
![\[Jendela folder proyek Infrastructure Composer Open dengan folder proyek kami dipilih dan Buat siap untuk dipilih.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_15.png)

Infrastructure Composer secara otomatis mendeteksi file definisi mesin keadaan eksternal dan memuatnya. Pilih **StockTradingStateMachine**sumber daya kami dan pilih **Detail** untuk menampilkan panel **Resource properties**. Di sini, Anda dapat melihat bahwa Infrastructure Composer telah secara otomatis terhubung ke file definisi mesin keadaan eksternal kami.

![\[Tampilan kanvas Infrastructure Composer dengan panel properti sumber daya API Gateway ditampilkan, menampilkan konfigurasi file referensi eksternal.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_03.png)


Setiap perubahan yang dilakukan pada file definisi mesin status akan secara otomatis tercermin dalam Infrastructure Composer.

# Referensi file eksternal OpenAPI spesifikasi dengan Infrastructure Composer
<a name="using-composer-external-files-examples-example1"></a>

Contoh ini menggunakan Infrastructure Composer dari konsol untuk mereferensikan file OpenAPI spesifikasi eksternal yang mendefinisikan API Gateway. REST API

Pertama, buat proyek baru dari **halaman** beranda Infrastructure Composer.

Selanjutnya, aktifkan **sinkronisasi lokal** dengan memilih **Aktifkan sinkronisasi lokal** dari **Menu**. Buat folder baru bernama`demo`, izinkan prompt untuk melihat file, dan pilih **Aktifkan**. Saat diminta, pilih **Simpan perubahan**.

![\[Jendela Infrastructure Composer Activate local sync dengan folder proyek demo yang dipilih dan tombol Activate siap untuk dipilih.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_11.png)


Selanjutnya, seret kartu Amazon API Gateway ke kanvas. Pilih **Detail** untuk memunculkan panel **Resource properties**.

![\[Sumber daya API Gateway di kanvas dengan panel properti Resource terbuka.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_12.png)


Dari panel **Resource properties**, konfigurasikan berikut ini dan **simpan**.
+ Pilih opsi **Gunakan file eksternal untuk definisi api**.
+ Masukan `./api-spec.yaml` sebagai **jalur relatif ke file eksternal**

![\[Jendela yang menampilkan kotak centang yang ditandai di bawah Gunakan file eksternal untuk definisi api dan jalur relatif ke file eksternal yang ditentukan.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_13.png)


Ini membuat direktori berikut di mesin lokal kami:

```
demo
└── api-spec.yaml
```

Sekarang, Anda dapat mengkonfigurasi file eksternal pada mesin lokal kami. Menggunakan IDE kami, buka yang `api-spec.yaml` terletak di folder proyek Anda. Ganti isinya dengan yang berikut:

```
openapi: '3.0'
info: {}
paths:
  /:
    get:
      responses: {}
    post:
      x-amazon-apigateway-integration:
        credentials:
          Fn::GetAtt:
            - ApiQueuesendmessageRole
            - Arn
        httpMethod: POST
        type: aws
        uri:
          Fn::Sub: arn:${AWS::Partition}:apigateway:${AWS::Region}:sqs:path/${AWS::AccountId}/${Queue.QueueName}
        requestParameters:
          integration.request.header.Content-Type: '''application/x-www-form-urlencoded'''
        requestTemplates:
          application/json: Action=SendMessage&MessageBody={"data":$input.body}
        responses:
          default:
            statusCode: 200
      responses:
        '200':
          description: 200 response
```

Dalam tampilan **Template** Infrastructure Composer, Anda dapat melihat bahwa Infrastructure Composer telah secara otomatis memperbarui template Anda untuk mereferensikan file eksternal.

![\[Tampilan template Infrastructure Composer yang menunjukkan kode infrastruktur Anda yang dikonfigurasi untuk mereferensikan file eksternal.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_ex_07.png)
