

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.

# ResourceReference
<a name="sam-property-connector-resourcereference"></a>

Référence à une ressource utilisée par le type de ressource [AWS::Serverless::Connector](sam-resource-connector.md).

**Note**  
Pour les ressources du même modèle, fournissez l'`Id`. Pour les ressources qui ne se trouvent pas dans le même modèle, utilisez une combinaison d'autres propriétés. Pour de plus amples informations, veuillez consulter [AWS SAM référence du connecteur](reference-sam-connector.md).

## Syntaxe
<a name="sam-property-connector-resourcereference-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-connector-resourcereference-syntax.yaml"></a>

```
  [Arn](#sam-connector-resourcereference-arn): String
  [Id](#sam-connector-resourcereference-id): String
  [Name](#sam-connector-resourcereference-name): String
  [Qualifier](#sam-connector-resourcereference-qualifier): String
  [QueueUrl](#sam-connector-resourcereference-queueurl): String
  [ResourceId](#sam-connector-resourcereference-resourceid): String
  [RoleName](#sam-connector-resourcereference-rolename): String
  [Type](#sam-connector-resourcereference-type): String
```

## Propriétés
<a name="sam-property-connector-resourcereference-properties"></a>

 `Arn`   <a name="sam-connector-resourcereference-arn"></a>
ARN d'une ressource.  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Id`   <a name="sam-connector-resourcereference-id"></a>
[ID logique](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) d'une ressource dans le même modèle.  
Lorsque cela `Id` est spécifié, si le connecteur génère des politiques Gestion des identités et des accès AWS (IAM), le rôle IAM associé à ces politiques sera déduit de la ressource. `Id` Lorsque la propriété `Id` n'est pas spécifiée, renseignez la propriété `RoleName` de la ressource permettant aux connecteurs d'attacher les politiques IAM générées à un rôle IAM.
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Name`   <a name="sam-connector-resourcereference-name"></a>
Nom d'une ressource.  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Qualifier`   <a name="sam-connector-resourcereference-qualifier"></a>
Qualificateur d'une ressource qui réduit sa portée. `Qualifier` remplace la valeur `*` à la fin d'une contrainte de ressource ARN. Pour obtenir un exemple, consultez [Appel d'une fonction Lambda par API Gateway](#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function).  
La définition du qualificateur varie selon le type de ressource. Pour obtenir la liste des types de ressource source et de destination pris en charge, consultez [AWS SAM référence du connecteur](reference-sam-connector.md).
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `QueueUrl`   <a name="sam-connector-resourcereference-queueurl"></a>
URL de la file d'attente Amazon SQS. Cette propriété s'applique uniquement aux ressources Amazon SQS.  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ResourceId`   <a name="sam-connector-resourcereference-resourceid"></a>
ID d'une ressource. Par exemple, l'ID de l'API API Gateway.  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `RoleName`   <a name="sam-connector-resourcereference-rolename"></a>
Nom du rôle associé à une ressource.  
Quand la propriété `Id` est spécifiée, si le connecteur génère des politiques IAM, le rôle IAM associé à ces politiques est déduit de la ressource `Id`. Lorsque la propriété `Id` n'est pas spécifiée, renseignez la propriété `RoleName` de la ressource permettant aux connecteurs d'attacher les politiques IAM générées à un rôle IAM.
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Type`   <a name="sam-connector-resourcereference-type"></a>
 CloudFormation Type de ressource. Pour de plus amples informations, veuillez consulter la [Référence des types de propriété et de ressource AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html).  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-connector-resourcereference--examples"></a>

### Appel d'une fonction Lambda par API Gateway
<a name="sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function"></a>

L'exemple suivant utilise la [AWS::Serverless::Connector](sam-resource-connector.md) ressource pour autoriser Amazon API Gateway à appeler une AWS Lambda fonction.

#### YAML
<a name="sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function--yaml"></a>

```
Transform: AWS::Serverless-2016-10-31
Resources:
  MyRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Effect: Allow
            Action: sts:AssumeRole
            Principal:
              Service: lambda.amazonaws.com
      ManagedPolicyArns:
        - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      Role: !GetAtt MyRole.Arn
      Runtime: nodejs16.x
      Handler: index.handler
      Code:
        ZipFile: |
          exports.handler = async (event) => {
            return {
              statusCode: 200,
              body: JSON.stringify({
                "message": "It works!"
              }),
            };
          };

  MyApi:
    Type: AWS::ApiGatewayV2::Api
    Properties:
      Name: MyApi
      ProtocolType: HTTP

  MyStage:
    Type: AWS::ApiGatewayV2::Stage
    Properties:
      ApiId: !Ref MyApi
      StageName: prod
      AutoDeploy: True

  MyIntegration:
    Type: AWS::ApiGatewayV2::Integration
    Properties:
      ApiId: !Ref MyApi
      IntegrationType: AWS_PROXY
      IntegrationUri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations
      IntegrationMethod: POST
      PayloadFormatVersion: "2.0"

  MyRoute:
    Type: AWS::ApiGatewayV2::Route
    Properties:
      ApiId: !Ref MyApi
      RouteKey: GET /hello
      Target: !Sub integrations/${MyIntegration}

  MyConnector:
    Type: AWS::Serverless::Connector
    Properties:
      Source: # Use 'Id' when resource is in the same template
        Type: AWS::ApiGatewayV2::Api
        ResourceId: !Ref MyApi
        Qualifier: prod/GET/hello # Or "*" to allow all routes
      Destination: # Use 'Id' when resource is in the same template
        Type: AWS::Lambda::Function
        Arn: !GetAtt MyFunction.Arn
      Permissions:
        - Write

Outputs:
  Endpoint:
    Value: !Sub https://${MyApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/prod/hello
```