

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 識別 VPC 中的 Infrastructure Composer 資源和相關資訊
<a name="using-composer-services-vpc-tag"></a>

若要將 Infrastructure Composer 與 Amazon VPC 整合，您必須先識別 VPC 中的資源，以及完成整合所需的資訊。這也包括與安全群組、子網路識別符、參數類型、SSM 類型、靜態值類型相關的組態資訊。

Infrastructure Composer 使用 VPC 標籤視覺化 **VPC** 中的資源。此標籤會套用至畫布上的卡片。以下是具有 VPC 標籤的 Lambda 函數範例：

![\[在使用 VPC 設定的 Infrastructure Composer 中視覺化 Lambda 函數的 VPC 標籤。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_vpc_01.png)


當您執行下列動作時，VPC 標籤會套用至畫布上的卡片：
+ 在 Infrastructure Composer 中使用 VPC 設定 Lambda 函數。
+ 匯入範本，其中包含使用 VPC 設定的資源。

## 安全群組和子網路識別符
<a name="using-composer-services-vpc-configure-ids"></a>

Lambda 函數可以設定多個安全群組和子網路。若要設定 Lambda 函數的安全群組或子網路，請提供值和類型。
+ **值** – 安全群組或子網路的識別符。接受的值會根據**類型**而有所不同。
+ **類型** – 允許下列類型的值：
  + 參數名稱
  + AWS Systems Manager (SSM) 參數存放區
  + 靜態值

## 參數類型
<a name="using-composer-services-vpc-configure-parameter"></a>

 AWS CloudFormation 範本的 `Parameters`區段可用來跨多個範本存放資源資訊。如需參數的詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)。

對於 **參數**類型，您可以提供參數名稱。在下列範例中，我們提供`PrivateSubnet1`參數名稱值：

![\[為子網路 ID 欄位的參數類型提供的 PrivateSubnet1 值。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_vpc_07.png)


當您提供參數名稱時， Infrastructure Composer 會在範本的 `Parameters`區段中定義它。然後， Infrastructure Composer 會參考 Lambda 函數資源中的 參數。以下是範例：

```
...
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
```

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

SSM 參數存放區為組態資料管理和秘密管理提供安全的階層式儲存。若要了解詳細資訊，請參閱 *AWS Systems Manager 使用者指南*中的 [AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)。

對於 **SSM** 類型，您可以提供下列值：
+ 來自 SSM 參數存放區的 值動態參考。
+ 範本中定義之`AWS::SSM::Parameter`資源的邏輯 ID。

### 動態參考
<a name="using-composer-services-vpc-configure-ssm-dynamic"></a>

您可以使用動態參考，以下列格式參考 SSM 參數存放區中的值：`{{resolve:ssm:reference-key}}`。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的 [SSM 參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm)。

Infrastructure Composer 會建立基礎設施程式碼，以使用來自 SSM 參數存放區的 值來設定 Lambda 函數。以下是範例：

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

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

您可以透過邏輯 ID 參考相同範本中的 `AWS::SSM::Parameter` 資源。

以下是名為 `AWS::SSM::Parameter`的資源範例`PrivateSubnet1Parameter`，存放 的子網路 ID`PrivateSubnet1`：

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

以下是由 Lambda 函數的邏輯 ID 提供此資源值的範例：

![\[為子網路 ID 欄位的 SSM 類型提供的 PrivateSubnet1Parameter 值。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_vpc_08.png)


Infrastructure Composer 會建立基礎設施程式碼，以使用 SSM 參數設定 Lambda 函數：

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

## 靜態值類型
<a name="using-composer-services-vpc-configure-static"></a>

部署安全群組或子網路時 CloudFormation，會建立 ID 值。您可以將此 ID 做為靜態值提供。

對於**靜態值**類型，下列是有效值：
+ 對於安全群組，請提供 `GroupId`。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[傳回值](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#aws-properties-ec2-security-group-return-values)。以下是範例：`sg-0b61d5c742dc2c773`
+ 對於子網路，請提供 `SubnetId`。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[傳回值](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#aws-resource-ec2-subnet-return-values)。以下是範例：`subnet-01234567890abcdef`

Infrastructure Composer 會建立基礎設施程式碼，以使用靜態值設定 Lambda 函數。以下是範例：

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

## 使用多種類型
<a name="using-composer-services-vpc-configure-multiple"></a>

對於安全群組和子網路，您可以同時使用多種類型。以下是透過提供不同類型值，為 Lambda 函數設定三個安全群組的範例：

![\[三種不同的值類型，用於為 Lambda 函數的安全群組 ID 欄位提供識別符。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_vpc_09.png)


Infrastructure Composer 參考 `SecurityGroupIds` 屬性下的所有三個值：

```
...
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
```