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.
AWS::Serverless::Connector
Configure les autorisations entre deux ressources. Pour obtenir une présentation des connecteurs, veuillez consulter Gestion des autorisations de ressource avec des connecteurs AWS SAM.
Pour plus d'informations sur les ressources AWS CloudFormation générées, veuillez consulter Ressources AWS CloudFormation générées lorsque vous spécifiez AWS::Serverless::Connector.
Pour fournir des commentaires sur les connecteurs, soumettez un nouveau problème
Note
Lorsque vous déployez vers AWS CloudFormation, AWS SAM transforme vos ressources AWS SAM en ressources AWS CloudFormation. Pour plus d’informations, consultez Ressources AWS CloudFormation générées.
Syntaxe
Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez l'une des syntaxes suivantes :
Note
Nous vous recommandons d'utiliser la syntaxe des connecteurs intégrés dans la plupart des cas d'utilisation. Le fait d'être intégré à la ressource source facilite sa lecture et sa maintenance au fil du temps. Lorsque vous devez référencer une ressource source qui ne se trouve pas dans le même modèle AWS SAM, telle qu'une ressource dans une pile imbriquée ou une ressource partagée, utilisez la syntaxe AWS::Serverless::Connector
.
Connecteurs intégrés
<source-resource-logical-id>
: Connectors:<connector-logical-id
: Properties: Destination:ResourceReference
|List of ResourceReference
Permissions:List
SourceReference:SourceReference
AWS::Serverless::Connector
Type: AWS::Serverless::Connector Properties: Destination:
ResourceReference
|List of ResourceReference
Permissions:List
Source:ResourceReference
Propriétés
-
Destination
-
Ressource de destination.
Type : ResourceReference| Liste des ResourceReference
Obligatoire : oui
Compatibilité AWS CloudFormation : cette propriété est unique pour AWS SAM et ne dispose pas d'équivalent AWS CloudFormation.
-
Permissions
-
Type d'autorisation que la ressource source est autorisée à exécuter sur la ressource de destination.
Read
inclut des actions AWS Identity and Access Management (IAM) qui permettent de lire les données à partir de la ressource.Write
inclut des actions IAM qui permettent de lancer et d'écrire des données dans une ressource.Valeurs valides :
Read
ouWrite
Type : liste
Obligatoire : oui
Compatibilité AWS CloudFormation : cette propriété est unique pour AWS SAM et ne dispose pas d'équivalent AWS CloudFormation.
-
Source
-
Ressource source. Obligatoire lors de l'utilisation de la syntaxe
AWS::Serverless::Connector
.Type : ResourceReference
Obligatoire : Conditionnelle
Compatibilité AWS CloudFormation : cette propriété est unique pour AWS SAM et ne dispose pas d'équivalent AWS CloudFormation.
-
SourceReference
-
Ressource source.
Note
À utiliser avec la syntaxe des connecteurs intégrés lors de la définition de propriétés supplémentaires pour la ressource source.
Type : SourceReference
Obligatoire : non
Compatibilité AWS CloudFormation : cette propriété est unique pour AWS SAM et ne dispose pas d'équivalent AWS CloudFormation.
Exemples
Connecteurs intégrés
L'exemple suivant utilise des connecteurs intégrés pour définir une connexion de données Write
entre une fonction AWS Lambda et un tableau Amazon DynamoDB :
Transform: AWS::Serverless-2016-10-31 ... Resources: MyTable: Type: AWS::Serverless::SimpleTable MyFunction: Type: AWS::Serverless::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Write ...
L'exemple suivant utilise des connecteurs intégrés pour définir les autorisations Read
et Write
:
Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table ...
L'exemple suivant utilise des connecteurs intégrés pour définir une ressource source avec une propriété autre que la propriété Id
:
Transform: AWS::Serverless-2016-10-31 Transform: AWS::Serverless-2016-10-31 ... Resources: MyApi: Type: AWS::Serverless::Api Connectors: ApitoLambdaConn: Properties: SourceReference: Qualifier: Prod/GET/foobar Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table ...
AWS::Serverless::Connector
L'exemple de base suivant utilise la ressource AWS::Serverless::Connector pour qu'une fonction AWS Lambda lise à partir d'un tableau Amazon DynamoDB :
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
L'exemple suivant utilise la ressource AWS::Serverless::Connector pour qu'une fonction Lambda écrive dans une rubrique Amazon SNS, avec les deux ressources dans le même modèle :
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySNSTopic Permissions: - Write
L'exemple suivant utilise la ressource AWS::Serverless::Connector pour qu'une rubrique Amazon SNS écrive dans une fonction Lambda, qui écrit à son tour dans un tableau Amazon DynamoDB, avec toutes les ressources dans le même modèle :
Transform: AWS::Serverless-2016-10-31 Resources: Topic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: !GetAtt Function.Arn Protocol: lambda Function: Type: AWS::Serverless::Function Properties: Runtime: nodejs16.x Handler: index.handler InlineCode: | const AWS = require('aws-sdk'); exports.handler = async (event, context) => { const docClient = new AWS.DynamoDB.DocumentClient(); await docClient.put({ TableName: process.env.TABLE_NAME, Item: { id: context.awsRequestId, event: JSON.stringify(event) } }).promise(); }; Environment: Variables: TABLE_NAME: !Ref Table Table: Type: AWS::Serverless::SimpleTable TopicToFunctionConnector: Type: AWS::Serverless::Connector Properties: Source: Id: Topic Destination: Id: Function Permissions: - Write FunctionToTableConnector: Type: AWS::Serverless::Connector Properties: Source: Id: Function Destination: Id: Table Permissions: - Write
Voici le modèle AWS CloudFormation transformé à partir de l'exemple ci-dessus :
"FunctionToTableConnectorPolicy": { "Type": "AWS::IAM::ManagedPolicy", "Metadata": { "aws:sam:connectors": { "FunctionToTableConnector": { "Source": { "Type": "AWS::Lambda::Function" }, "Destination": { "Type": "AWS::DynamoDB::Table" } } } }, "Properties": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:PartiQLDelete", "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate" ], "Resource": [ { "Fn::GetAtt": [ "MyTable", "Arn" ] }, { "Fn::Sub": [ "${DestinationArn}/index/*", { "DestinationArn": { "Fn::GetAtt": [ "MyTable", "Arn" ] } } ] } ] } ] }, "Roles": [ { "Ref": "MyFunctionRole" } ] } }