

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connectez les cartes sur le canevas visuel d'Infrastructure Composer
<a name="reference-navigation-gestures-connect"></a>

Utilisez cette rubrique pour comprendre comment connecter des cartes dans Infrastructure Composer. Cette section contient des informations sur la connexion de cartes de composants améliorées et de cartes de composants standard. Il fournit également quelques exemples illustrant les différentes manières dont les cartes peuvent être connectées.

## Connexion de cartes de composants améliorées
<a name="reference-navigation-gestures-connect-enhanced"></a>

Sur les cartes de composants améliorées, les ports identifient visuellement les endroits où les connexions peuvent être établies.
+ Un port situé sur le côté droit d'une carte indique que la carte a la possibilité d'invoquer une autre carte.
+ Un port situé sur le côté gauche d'une carte indique qu'il est possible que la carte soit invoquée par une autre carte.

Connectez les cartes entre elles en cliquant sur le port droit d'une carte et en le faisant glisser sur le port gauche d'une autre carte.

![\[Une carte API Gateway connectée à une fonction Lambda.\]](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_con_02.png)


Lorsque vous créez une connexion, un message s'affiche pour vous indiquer si la connexion a été établie avec succès. Sélectionnez le message pour voir ce qu'Infrastructure Composer a modifié pour configurer une connexion. Si la connexion a échoué, vous pouvez sélectionner la **vue Modèle** pour mettre à jour manuellement votre code d'infrastructure afin de configurer la connexion.
+ En cas de succès, cliquez sur le message pour afficher l'**inspecteur des modifications**. Vous pouvez voir ici ce qu'Infrastructure Composer a modifié pour configurer votre connexion.
+ En cas d'échec, un message s'affiche. Vous pouvez sélectionner la **vue Modèle** et mettre à jour manuellement le code de votre infrastructure pour configurer la connexion.

![\[Afficher le Change Inspector depuis le bas de l'écran.\]](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_ci_02.gif)


Lorsque vous connectez des cartes de composants améliorées, Infrastructure Composer crée automatiquement le code d'infrastructure dans votre modèle pour établir la relation événementielle entre vos ressources.

## Connexion de cartes de composants standard (cartes de ressources IaC standard)
<a name="reference-navigation-gestures-connect-standard"></a>

Les cartes de ressources IaC standard n'incluent pas de ports permettant de créer des connexions avec d'autres ressources. Lors de [la configuration des cartes](using-composer-standard-cards.md), vous spécifiez les relations basées sur les événements dans le modèle de votre application. Infrastructure Composer détectera automatiquement ces connexions et les visualisera avec une ligne en pointillés entre vos cartes. Voici un exemple de connexion entre une carte de composant standard et une carte de composant améliorée :

![\[Une carte de composants standard connectée à une carte de composants améliorée.\]](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_con_04.png)


L'exemple suivant montre comment une fonction Lambda peut être connectée à une API REST Amazon API Gateway :

```
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyApi:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Name: MyApi

  ApiGatewayMethod:
    Type: 'AWS::ApiGateway::Method'
    Properties:
      HttpMethod: POST  # Specify the HTTP method you want to use (e.g., GET, POST, PUT, DELETE)
      ResourceId: !GetAtt MyApi.RootResourceId
      RestApiId: !Ref MyApi
      AuthorizationType: NONE
      Integration:
        Type: AWS_PROXY
        IntegrationHttpMethod: POST
        Uri: !Sub
          - arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaFunctionArn}/invocations
          - { LambdaFunctionArn: !GetAtt MyLambdaFunction.Arn }
      MethodResponses:
        - StatusCode: 200

  MyLambdaFunction:
    Type: 'AWS::Lambda::Function'
    Properties:
      Handler: index.handler
      Role: !GetAtt LambdaExecutionRole.Arn
      Runtime: nodejs14.x
      Code:
        S3Bucket: your-bucket-name
        S3Key: your-lambda-zip-file.zip

  LambdaExecutionRole:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: 'sts:AssumeRole'
      Policies:
        - PolicyName: LambdaExecutionPolicy
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - 'logs:CreateLogGroup'
                  - 'logs:CreateLogStream'
                  - 'logs:PutLogEvents'
                Resource: 'arn:aws:logs:*:*:*'
              - Effect: Allow
                Action:
                  - 'lambda:InvokeFunction'
                Resource: !GetAtt MyLambdaFunction.Arn
```

Dans l'exemple ci-dessus, l'extrait de code répertorié ci-dessous `Integration:` indique la relation événementielle qui relie les deux cartes. `ApiGatewayMethod:`

# Exemples de connexion de cartes dans Infrastructure Composer
<a name="using-composer-connecting-examples"></a>

Utilisez les exemples de cette section pour comprendre comment les cartes peuvent être connectées dans Infrastructure Composer.

## Invoquer une AWS Lambda fonction lorsqu'un article est placé dans un compartiment Amazon Simple Storage Service (Amazon S3)
<a name="using-composer-connecting-examples-example1"></a>

Dans cet exemple, une carte de compartiment **Amazon S3** est connectée à une carte de **fonction Lambda**. Lorsqu'un élément est placé dans le compartiment Amazon S3, la fonction est invoquée. La fonction peut ensuite être utilisée pour traiter l'élément ou déclencher d'autres événements dans votre application.

![\[Connexion entre le port droit d'une ressource de compartiment Amazon S3 et le port gauche d'une ressource de fonction Lambda.\]](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_05.png)


Cette interaction nécessite la définition d'un événement pour la fonction. Voici ce que propose 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
```

## Invoquer un compartiment Amazon S3 à partir d'une fonction Lambda
<a name="using-composer-connecting-examples-example2"></a>

Dans cet exemple, une carte de **fonction Lambda** invoque une carte de compartiment **Amazon S3**. La fonction Lambda peut être utilisée pour effectuer des opérations CRUD sur des éléments du compartiment Amazon S3.

![\[Connexion entre le port droit d'une ressource de fonction Lambda et le port gauche d'une ressource de compartiment Amazon S3.\]](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_06.png)


Cette interaction nécessite les éléments suivants, fournis par Infrastructure Composer :
+ Politiques IAM qui permettent à la fonction Lambda d'interagir avec le compartiment Amazon S3.
+ Variables d'environnement qui influencent le comportement de la fonction 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
```