

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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/ja_jp/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/ja_jp/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
```