

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在基础设施编排器中连接卡片的示例
<a name="using-composer-connecting-examples"></a>

使用本节中的示例来了解如何在基础设施编排器中连接卡片。

## 将商品放入亚马逊简单存储服务 (Amazon S3) 存储桶时调用 AWS Lambda 函数
<a name="using-composer-connecting-examples-example1"></a>

在此示例中，A **mazon S3 存储桶**卡连接到 **Lambda 功能**卡。将项目放入 Amazon S3 存储桶后，将调用该函数。然后，该函数可用于处理该项目或触发应用程序中的其他事件。

![从 Amazon S3 存储桶资源的右侧端口到 Lambda 函数资源左侧端口的连接。](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_use_05.png)


这种交互需要为函数定义一个事件。以下是基础架构编排器规定的内容：

```
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_cn/infrastructure-composer/latest/dg/images/aac_use_06.png)


此交互需要以下内容，这些内容由基础架构编排器配置：
+ 允许 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
```