

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

# 在 Infrastructure Composer 中連接卡片的範例
<a name="using-composer-connecting-examples"></a>

使用本節中的範例來了解如何在 Infrastructure Composer 中連接卡片。

## 當項目放置在 Amazon Simple Storage Service (Amazon S3) 儲存貯體時，叫用 AWS Lambda 函數
<a name="using-composer-connecting-examples-example1"></a>

在此範例中，**Amazon S3 儲存貯**體卡連接到 **Lambda 函數**卡。在 Amazon S3 儲存貯體中放置項目時，會叫用 函數。然後，該函數可用於處理項目或觸發應用程式中的其他事件。

![從 Amazon S3 儲存貯體資源右側連接埠到 Lambda 函數資源左側連接埠的連線。](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_05.png)


此互動需要為函數定義事件。以下是 Infrastructure Composer 佈建的內容：

```
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    ...
  MyBucketBucketPolicy:
    Type: AWS::S3::BucketPolicy
    ...
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Events:
        MyBucket:
          Type: S3
          Properties:
            Bucket: !Ref MyBucket
            Events:
              - s3:ObjectCreated:* # Event that triggers invocation of function
              - s3:ObjectRemoved:* # Event that triggers invocation of function
```

## 從 Lambda 函數叫用 Amazon S3 儲存貯體
<a name="using-composer-connecting-examples-example2"></a>

在此範例中，**Lambda 函數**卡會叫用 **Amazon S3 儲存貯**體卡。Lambda 函數可用於對 Amazon S3 儲存貯體中的項目執行 CRUD 操作。

![從 Lambda 函數資源右側連接埠到 Amazon S3 儲存貯體資源左側連接埠的連線。](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_06.png)


此互動需要下列項目，由 Infrastructure Composer 佈建：
+ 允許 Lambda 函數與 Amazon S3 儲存貯體互動的 IAM 政策。
+ 影響 Lambda 函數行為的環境變數。

```
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    ...
  MyBucketBucketPolicy:
    Type: AWS::S3::BucketPolicy
    ...
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Environment:
        Variables:
          BUCKET_NAME: !Ref MyBucket
          BUCKET_ARN: !GetAtt MyBucket.Arn
      Policies:
        - S3CrudPolicy:
          BucketName: !Ref MyBucket
```