AWS::Serverless::Connector - AWS Serverless Application Model

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 al serverless-application-model AWS GitHubrepository.

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.

Readinclude azioniAWS Identity and Access Management (IAM) che consentono la lettura dei dati dalla risorsa.

Writeinclude azioni IAM che consentono l'avvio e la scrittura di dati su una risorsa.

Valori validi: Read o Write

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" } ] } }