ResourceReference - AWS Serverless Application Model

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

Référence à une ressource utilisée par le type de ressource AWS::Serverless::Connector.

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 plus d’informations, consultez AWS SAM référence du connecteur.

Syntaxe

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

YAML

Arn: String Id: String Name: String Qualifier: String QueueUrl: String ResourceId: String RoleName: String Type: String

Propriétés

Arn

ARN d'une ressource.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Id

ID logique d'une ressource dans le même modèle.

Note

Lorsque cela Id est spécifié, si le connecteur génère des politiques AWS Identity and Access Management (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

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Name

Nom d'une ressource.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Qualifier

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.

Note

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.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

QueueUrl

URL de la file d'attente Amazon SQS. Cette propriété s'applique uniquement aux ressources Amazon SQS.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

ResourceId

ID d'une ressource. Par exemple, l'ID de l'API API Gateway.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

RoleName

Nom du rôle associé à une ressource.

Note

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

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Type

AWS CloudFormation Type de ressource. Pour de plus amples informations, veuillez consulter la Référence des types de propriété et de ressource AWS.

Type : chaîne

Obligatoire : Conditionnelle

AWS CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' AWS CloudFormation équivalent.

Exemples

Appel d'une fonction Lambda par API Gateway

L'exemple suivant utilise la AWS::Serverless::Connector ressource pour autoriser Amazon API Gateway à appeler une AWS Lambda fonction.

YAML

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