

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

# Integrasikan Komposer Infrastruktur dengan Amazon Virtual Private Cloud (Amazon VPC)
<a name="using-composer-services-vpc"></a>

AWS Infrastructure Composer fitur integrasi dengan layanan Amazon Virtual Private Cloud (Amazon VPC). Menggunakan Infrastructure Composer, Anda dapat melakukan hal berikut:
+ **Identifikasi sumber daya di kanvas Anda yang ada di VPC melalui tag VPC visual.**
+ Konfigurasikan AWS Lambda fungsi dengan VPCs dari templat eksternal.

Gambar berikut menunjukkan adalah contoh aplikasi dengan fungsi Lambda yang dikonfigurasi dengan VPC.

![\[Aplikasi dengan tag VPC memvisualisasikan fungsi Lambda di Infrastructure Composer yang dikonfigurasi dengan VPC.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_06.png)


Untuk mempelajari lebih lanjut tentang Amazon VPC, lihat [Apa itu Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)? di *Panduan Pengguna Amazon VPC*.

**Topics**
+ [Identifikasi sumber daya Komposer Infrastruktur dan informasi terkait dalam VPC](using-composer-services-vpc-tag.md)
+ [Konfigurasikan fungsi Lambda dengan eksternal VPCs di Infrastructure Composer](using-composer-services-vpc-configure.md)
+ [Parameter dalam template yang diimpor untuk VPC eksternal dengan Infrastructure Composer](using-composer-services-vpc-import.md)
+ [Menambahkan parameter baru ke template yang diimpor dengan Infrastructure Composer](using-composer-services-vpc-import-add.md)
+ [Konfigurasikan fungsi Lambda dan VPC yang ditentukan dalam template lain dengan Infrastructure Composer](using-composer-services-vpc-examples.md)

# Identifikasi sumber daya Komposer Infrastruktur dan informasi terkait dalam VPC
<a name="using-composer-services-vpc-tag"></a>

Untuk mengintegrasikan Infrastructure Composer dengan Amazon VPC, Anda harus terlebih dahulu mengidentifikasi sumber daya dalam VPC dan informasi yang diperlukan untuk menyelesaikan integrasi. Ini juga termasuk informasi konfigurasi yang terkait dengan grup keamanan, pengidentifikasi subnet, tipe parameter, tipe SSM, tipe nilai statis.

**Infrastructure Composer memvisualisasikan sumber daya dalam VPC menggunakan tag VPC.** Tag ini diterapkan pada kartu di kanvas. Berikut ini adalah contoh fungsi Lambda dengan tag VPC:

![\[Tag VPC memvisualisasikan fungsi Lambda di Infrastructure Composer yang dikonfigurasi dengan VPC.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_01.png)


Tag VPC diterapkan ke kartu di kanvas ketika Anda melakukan hal berikut:
+ Konfigurasikan fungsi Lambda dengan VPC di Infrastructure Composer.
+ Impor template yang berisi sumber daya yang dikonfigurasi dengan VPC.

## Grup keamanan dan pengidentifikasi subnet
<a name="using-composer-services-vpc-configure-ids"></a>

Fungsi Lambda dapat dikonfigurasi dengan beberapa grup keamanan dan subnet. Untuk mengonfigurasi grup keamanan atau subnet untuk fungsi Lambda, berikan nilai dan tipe.
+ **Nilai** — Pengidentifikasi untuk grup keamanan atau subnet. Nilai yang diterima akan bervariasi berdasarkan **jenisnya**.
+ **Jenis** - Jenis nilai berikut diperbolehkan:
  + Nama parameter
  + AWS Systems Manager (SSM) Toko Parameter
  + Nilai statis

## Jenis parameter
<a name="using-composer-services-vpc-configure-parameter"></a>

`Parameters`Bagian AWS CloudFormation template dapat digunakan untuk menyimpan informasi sumber daya di beberapa templat. Untuk informasi selengkapnya tentang parameter, lihat [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) di *Panduan AWS CloudFormation Pengguna*.

Untuk tipe **Parameter**, Anda dapat memberikan nama parameter. Dalam contoh berikut, kami memberikan nilai nama `PrivateSubnet1` parameter:

![\[Nilai PrivateSubnet 1 yang disediakan untuk tipe Parameter dari bidang ID subnet.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_07.png)


Ketika Anda memberikan nama parameter, Infrastructure Composer mendefinisikannya di `Parameters` bagian template Anda. Kemudian, Infrastructure Composer mereferensikan parameter di sumber daya fungsi Lambda Anda. Berikut ini adalah contohnya:

```
...
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SubnetIds:
          - !Ref PrivateSubnet1
Parameters:
  PrivateSubnet1:
    Type: AWS::EC2::Subnet::Id
    Description: Parameter is generated by Infrastructure Composer
```

## Jenis SSM
<a name="using-composer-services-vpc-configure-ssm"></a>

SSM Parameter Store menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia. Untuk informasi selengkapnya, lihat [Penyimpanan Parameter AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dalam *Panduan Pengguna AWS Systems Manager *.

Untuk tipe **SSM**, Anda dapat memberikan nilai berikut:
+ Referensi dinamis ke nilai dari SSM Parameter Store.
+ ID logis dari `AWS::SSM::Parameter` sumber daya yang ditentukan dalam template Anda.

### Referensi dinamis
<a name="using-composer-services-vpc-configure-ssm-dynamic"></a>

Anda dapat mereferensikan nilai dari Penyimpanan Parameter SSM menggunakan referensi dinamis dalam format berikut: `{{resolve:ssm:reference-key}}` Untuk informasi selengkapnya, lihat [parameter SSM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm) di *Panduan AWS CloudFormation Pengguna*.

Infrastructure Composer membuat kode infrastruktur untuk mengkonfigurasi fungsi Lambda Anda dengan nilai dari SSM Parameter Store. Berikut ini adalah contohnya:

```
...
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds:
          - '{{resolve:ssm:demo-app/sg-0b61d5c742dc2c773}}'
  ...
```

### ID Logis
<a name="using-composer-services-vpc-configure-ssm-logical"></a>

Anda dapat mereferensikan `AWS::SSM::Parameter` sumber daya dalam template yang sama dengan ID logis.

Berikut ini adalah contoh `AWS::SSM::Parameter` sumber daya bernama `PrivateSubnet1Parameter` yang menyimpan ID subnet untuk`PrivateSubnet1`:

```
...
Resources:
  PrivateSubnet1Parameter:
    Type: AWS::SSM::Parameter
    Properties:
      Name: /MyApp/VPC/SubnetIds
      Description: Subnet ID for PrivateSubnet1
      Type: String
      Value: subnet-04df123445678a036
```

Berikut ini adalah contoh dari nilai sumber daya ini yang disediakan oleh ID logis untuk fungsi Lambda:

![\[Nilai PrivateSubnet 1Parameter disediakan untuk tipe SSM dari bidang subnet ID.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_08.png)


Infrastructure Composer membuat kode infrastruktur untuk mengonfigurasi fungsi Lambda Anda dengan parameter SSM:

```
...
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SubnetIds:
          - !Ref PrivateSubnet1Parameter
  ...
  PrivateSubnet1Parameter:
    Type: AWS::SSM::Parameter
    Properties:
      ...
```

## Jenis nilai statis
<a name="using-composer-services-vpc-configure-static"></a>

Saat grup keamanan atau subnet digunakan CloudFormation, nilai ID akan dibuat. Anda dapat memberikan ID ini sebagai nilai statis.

Untuk tipe **nilai statis**, berikut ini adalah nilai yang valid:
+ Untuk kelompok keamanan, berikan`GroupId`. Untuk informasi selengkapnya, lihat [Mengembalikan nilai](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#aws-properties-ec2-security-group-return-values) di *Panduan AWS CloudFormation Pengguna*. Berikut ini adalah contohnya:`sg-0b61d5c742dc2c773`.
+ Untuk subnet, berikan. `SubnetId` Untuk informasi selengkapnya, lihat [Mengembalikan nilai](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#aws-resource-ec2-subnet-return-values) di *Panduan AWS CloudFormation Pengguna*. Berikut ini adalah contohnya:`subnet-01234567890abcdef`.

Infrastructure Composer membuat kode infrastruktur untuk mengkonfigurasi fungsi Lambda Anda dengan nilai statis. Berikut ini adalah contohnya:

```
...
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds:
          - subnet-01234567890abcdef
        SubnetIds:
          - sg-0b61d5c742dc2c773
  ...
```

## Menggunakan beberapa jenis
<a name="using-composer-services-vpc-configure-multiple"></a>

Untuk grup keamanan dan subnet, Anda dapat menggunakan beberapa jenis secara bersamaan. Berikut ini adalah contoh yang mengonfigurasi tiga grup keamanan untuk fungsi Lambda dengan memberikan nilai dari berbagai jenis:

![\[Tiga jenis nilai berbeda yang digunakan untuk menyediakan pengidentifikasi untuk bidang ID grup keamanan dari fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_09.png)


Infrastructure Composer mereferensikan ketiga nilai di bawah `SecurityGroupIds` properti:

```
...
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds:
          - !Ref MySecurityGroup
          - sg-0b61d5c742dc2c773
          - '{{resolve::ssm::demo/sg-0b61d5c742dc23}}'
      ...
Parameters:
  MySecurityGroup:
    Type: AWS::EC2::SecurityGroup::Id
    Description: Parameter is generated by Infrastructure Composer
```

# Konfigurasikan fungsi Lambda dengan eksternal VPCs di Infrastructure Composer
<a name="using-composer-services-vpc-configure"></a>

Untuk mulai mengonfigurasi fungsi Lambda dengan VPC yang ditentukan pada templat lain, gunakan kartu komponen yang disempurnakan Fungsi **Lambda**. Kartu ini mewakili fungsi Lambda menggunakan tipe `AWS::Serverless::Function` sumber daya AWS Serverless Application Model (AWS SAM).

**Untuk mengkonfigurasi fungsi Lambda dengan VPC dari template eksternal**

1. Dari panel properti sumber daya **Fungsi Lambda**, perluas bagian dropdown **pengaturan VPC (lanjutan)**.

1. Pilih **Tetapkan ke VPC eksternal**.

1. Berikan nilai untuk grup keamanan dan subnet untuk dikonfigurasi untuk fungsi Lambda. Lihat [Grup keamanan dan pengidentifikasi subnet](using-composer-services-vpc-tag.md#using-composer-services-vpc-configure-ids) untuk detail.

1. **Simpan** perubahan Anda.

# Parameter dalam template yang diimpor untuk VPC eksternal dengan Infrastructure Composer
<a name="using-composer-services-vpc-import"></a>

Saat Anda mengimpor template yang ada dengan parameter yang ditentukan untuk grup keamanan dan subnet VPC eksternal, Infrastructure Composer menyediakan daftar dropdown untuk memilih parameter Anda.

Berikut ini adalah contoh `Parameters` bagian dari template yang diimpor:

```
...
Parameters:
  VPCSecurityGroups:
    Description: Security group IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::SecurityGroup::Id>
  VPCSubnets:
    Description: Subnet IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::Subnet::Id>
  VPCSubnet:
    Description: Subnet Id generated by Infrastructure Composer
    Type: AWS::EC2::Subnet::Id
...
```

Saat mengonfigurasi VPC eksternal untuk fungsi Lambda baru di kanvas, parameter ini akan tersedia dari daftar tarik-turun. Berikut ini adalah contohnya:

![\[Daftar dropdown nilai yang ditawarkan untuk tipe Parameter bidang Subnet ID untuk kartu fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_10.png)


## Keterbatasan saat mengimpor tipe parameter daftar
<a name="using-composer-services-vpc-import-list"></a>

Biasanya, Anda dapat menentukan beberapa grup keamanan dan pengidentifikasi subnet untuk setiap fungsi Lambda. Jika template yang ada berisi tipe parameter daftar, seperti `List<AWS::EC2::SecurityGroup::Id>` atau`List<AWS::EC2::Subnet::Id>`, Anda hanya dapat menentukan satu pengenal.

Untuk informasi selengkapnya tentang jenis daftar parameter, lihat [Jenis parameter AWS-spesifik yang didukung](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-specific-parameter-types) di *Panduan AWS CloudFormation Pengguna*.

Berikut ini adalah contoh template yang mendefinisikan `VPCSecurityGroups` sebagai tipe parameter daftar:

```
...
Parameters:
  VPCSecurityGroups:
    Description: Security group IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::SecurityGroup::Id>
...
```

Di Infrastructure Composer, jika Anda memilih `VPCSecurityGroups` nilai sebagai pengidentifikasi grup keamanan untuk fungsi Lambda, Anda akan melihat pesan berikut:

![\[Jenis parameter daftar bernama VPCSecurityGroups disediakan untuk tipe Parameter bidang ID grup keamanan kartu fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_11.png)


Keterbatasan ini terjadi karena `SecurityGroupIds` dan `SubnetIds` properti `AWS::Lambda::Function VpcConfig` objek keduanya hanya menerima daftar nilai string. Karena tipe parameter daftar tunggal berisi daftar string, itu bisa menjadi satu-satunya objek yang disediakan ketika ditentukan.

Untuk jenis parameter daftar, berikut ini adalah contoh bagaimana mereka didefinisikan dalam template ketika dikonfigurasi dengan fungsi Lambda:

```
...
Parameters:
  VPCSecurityGroups:
    Description: Security group IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::SecurityGroup::Id>
  VPCSubnets:
    Description: Subnet IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::Subnet::Id>
Resources:
  ...
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds: !Ref VPCSecurityGroups
        SubnetIds: !Ref VPCSubnets
```

# Menambahkan parameter baru ke template yang diimpor dengan Infrastructure Composer
<a name="using-composer-services-vpc-import-add"></a>

Saat Anda mengimpor template yang ada dengan parameter yang ditentukan, Anda juga dapat membuat parameter baru. Alih-alih memilih parameter yang ada dari daftar dropdown, berikan tipe dan nilai baru. Berikut ini adalah contoh yang membuat parameter baru bernama`MySecurityGroup`:

![\[MySecurityGroupNilai yang disediakan untuk tipe Parameter bidang ID grup keamanan kartu fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_12.png)


Untuk semua nilai baru yang Anda berikan di panel **properti Resource** untuk fungsi Lambda, Infrastructure Composer mendefinisikannya dalam daftar di bawah `SecurityGroupIds` atau `SubnetIds` properti fungsi Lambda. Berikut ini adalah contohnya:

```
...
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds:
          - sg-94b3a1f6
        SubnetIds:
          - !Ref SubnetParameter
          - !Ref VPCSubnet
```

Jika Anda ingin mereferensikan ID logis dari jenis parameter daftar dari template eksternal, kami sarankan Anda menggunakan tampilan **Template** dan langsung memodifikasi template Anda. ID logis dari tipe parameter daftar harus selalu disediakan sebagai nilai tunggal dan sebagai satu-satunya nilai.

```
...
Parameters:
  VPCSecurityGroups:
    Description: Security group IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::SecurityGroup::Id>
  VPCSubnets:
    Description: Subnet IDs generated by Infrastructure Composer
    Type: List<AWS::EC2::Subnet::Id>
Resources:
  ...
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      VpcConfig:
        SecurityGroupIds: !Ref VPCSecurityGroups # Valid syntax
        SubnetIds: 
          - !Ref VPCSubnets # Not valid syntax
```

# Konfigurasikan fungsi Lambda dan VPC yang ditentukan dalam template lain dengan Infrastructure Composer
<a name="using-composer-services-vpc-examples"></a>

Dalam contoh ini, kita mengkonfigurasi fungsi Lambda di Infrastructure Composer dengan VPC didefinisikan pada template lain.

Kita mulai dengan menyeret kartu komponen yang disempurnakan Fungsi **Lambda** ke kanvas.

![\[Kartu komponen yang disempurnakan fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_03.png)


Selanjutnya, kami membuka panel **properti Sumber Daya** kartu dan memperluas bagian dropdown **pengaturan VPC (lanjutan)**.

![\[Gambar panel properti Resource dari kartu Fungsi Lambda dengan bagian dropdown pengaturan VPC (lanjutan) diperluas\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_04.png)


Selanjutnya, kami memilih **Tetapkan ke VPC eksternal** untuk mulai mengonfigurasi VPC dari template eksternal.

Dalam contoh ini, kami mereferensikan ID grup keamanan dan ID subnet. Nilai-nilai ini dibuat saat template yang mendefinisikan VPC diterapkan. Kami memilih tipe **nilai Statis** dan memasukkan nilai kami IDs. Kami memilih **Simpan** setelah selesai.

![\[Panel properti Resource dari kartu Fungsi Lambda dengan nilai statis yang disediakan di bidang ID grup Keamanan.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_05.png)


Sekarang fungsi Lambda kami dikonfigurasi dengan VPC kami, tag VPC ditampilkan di kartu kami.

![\[Tag VPC memvisualisasikan fungsi Lambda di Infrastructure Composer yang dikonfigurasi dengan VPC.\]](http://docs.aws.amazon.com/id_id/infrastructure-composer/latest/dg/images/aac_use_vpc_01.png)


Infrastructure Composer telah membuat kode infrastruktur untuk mengkonfigurasi fungsi Lambda kami dengan grup keamanan dan subnet dari VPC eksternal.

```
Transform: AWS::Serverless-2016-10-31
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      Description: !Sub
        - Stack ${AWS::StackName} Function ${ResourceName}
        - ResourceName: Function
      CodeUri: src/Function
      Handler: index.handler
      Runtime: nodejs18.x
      MemorySize: 3008
      Timeout: 30
      Tracing: Active
      VpcConfig:
        SecurityGroupIds:
          - sg-10f35d07e1be09e15
        SubnetIds:
          - subnet-0d80727ca90325716
  FunctionLogGroup:
    Type: AWS::Logs::LogGroup
    DeletionPolicy: Retain
    Properties:
      LogGroupName: !Sub /aws/lambda/${Function}
```