Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS::Serverless::Connector
Configura le autorizzazioni tra due risorse. Per un'introduzione ai connettori, vedereGestione delle autorizzazioni delle risorse conAWS SAM connettori.
Per ulteriori informazioni sulleAWS CloudFormation risorse generate, consultaAWS CloudFormationrisorse generate quando si specificaAWS::Serverless::Connector.
Per fornire feedback sui connettori, invia un nuovo problema
Sintassi
Per dichiarare questa entità nel modelloAWS Serverless Application Model (AWS SAM), utilizzare la sintassi seguente.
YAML
Type: AWS::Serverless::Connector Properties: Destination:
ResourceReference
Permissions:List
Source:ResourceReference
Proprietà
-
Destination
-
La risorsa di destinazione.
Tipo: ResourceReference
Required: Yes
AWS CloudFormationcompatibilità: questa proprietà è unicaAWS SAM e non ha unAWS CloudFormation equivalente.
-
Permissions
-
Il tipo di autorizzazione che la risorsa di origine può eseguire sulla risorsa di destinazione.
Read
include azioniAWS Identity and Access Management (IAM) che consentono la lettura dei dati dalla risorsa.Write
include azioni IAM che consentono l'avvio e la scrittura di dati su una risorsa.Valori validi:
Read
oWrite
Tipo: Elenco
Required: Yes
AWS CloudFormationcompatibilità: questa proprietà è unicaAWS SAM e non ha unAWS CloudFormation equivalente.
-
Source
-
La risorsa di origine.
Tipo: ResourceReference
Required: Yes
AWS CloudFormationcompatibilità: questa proprietà è unicaAWS SAM e non ha unAWS CloudFormation equivalente.
Esempi
Esemdi base 1 1 di base
Il seguente esempio di base utilizza laAWS::Serverless::Connector risorsa per far leggere e scrivere unaAWS Lambda funzione su una tabella Amazon DynamoDB.
PerSource
eDestination
, è necessario fornire laId
risorsa o una combinazione di altre proprietà. Per ulteriori informazioni, consulta AWS SAMriferimento del connettore.
YAML
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
Esemdi base 2 2 di base
L'esempio seguente utilizza laAWS::Serverless::Connector risorsa per far scrivere una funzione Lambda su un argomento Amazon SNS, con entrambe le risorse nello stesso modello.
YAML
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySNSTopic Permissions: - Write
Esemdi base 3 3 di base
L'esempio seguente utilizza laAWS::Serverless::Connector risorsa per far scrivere una funzione Lambda su un argomento Amazon SQS, con entrambe le risorse nello stesso modello.
YAML
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySQSQueue Permissions: - Write
Esemutilizzare un esempio di funzione
L'esempio seguente utilizza laAWS::Serverless::Connector risorsa per scrivere un argomento Amazon SNS su una funzione Lambda, che quindi scrive su una tabella Amazon DynamoDB, con tutte le risorse nello stesso modello.
YAML
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
AWS CloudFormationModello trasformato
Quello che segue è ilAWS CloudFormation modello trasformato dell'esempio precedente.
JSON
"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" } ] } }