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, vedere. Gestione delle autorizzazioni delle risorse con i connettori AWS SAM

Per ulteriori informazioni sulle AWS CloudFormation risorse generate, vedereAWS CloudFormationrisorse generate quando si specifica AWS::Serverless::Connector.

Per fornire feedback sui connettori, invia un nuovo problema al serverless-application-model AWS GitHub repository.

Nota

Quando lo distribuisci a AWS CloudFormation, AWS SAM trasforma le tue AWS SAM risorse in risorse. AWS CloudFormation Per ulteriori informazioni, consulta AWS CloudFormation Risorse generate.

Sintassi

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa una delle seguenti sintassi.

Nota

Consigliamo di utilizzare la sintassi dei connettori incorporati per la maggior parte dei casi d'uso. Essendo incorporato nella risorsa di origine ne semplifica la lettura e la manutenzione nel tempo. Quando devi fare riferimento a una risorsa di origine che non si trova all'interno dello stesso AWS SAM modello, ad esempio una risorsa in uno stack annidato o una risorsa condivisa, usa la AWS::Serverless::Connector sintassi.

Connettori incorporati

<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

Proprietà

Destination

La risorsa di destinazione.

Tipo: ResourceReference| Elenco di ResourceReference

Campo obbligatorio: sì

AWS CloudFormation compatibilità: Questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Permissions

Il tipo di autorizzazione che la risorsa di origine può eseguire sulla risorsa di destinazione.

Readinclude azioni AWS 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

Campo obbligatorio: sì

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Source

La risorsa di origine. Richiesto quando si utilizza la AWS::Serverless::Connector sintassi.

Tipo: ResourceReference

Required: Conditional

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

SourceReference

La risorsa di origine.

Nota

Da utilizzare con la sintassi dei connettori incorporati per definire proprietà aggiuntive per la risorsa di origine.

Tipo: SourceReference

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Esempi

Connettori integrati

L'esempio seguente utilizza connettori integrati per definire una connessione Write dati tra una AWS Lambda funzione e una tabella 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'esempio seguente utilizza connettori incorporati per definire Read e Write autorizzazioni:

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'esempio seguente utilizza connettori incorporati per definire una risorsa di origine con una proprietà diversa Id da:

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'esempio seguente utilizza la AWS::Serverless::Connector risorsa per leggere e scrivere una AWS Lambda funzione su una tabella Amazon DynamoDB:

MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write

L'esempio seguente utilizza la AWS::Serverless::Connector risorsa per scrivere una funzione Lambda su un argomento Amazon SNS, con entrambe le risorse nello stesso modello:

MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySNSTopic Permissions: - Write

L'esempio seguente utilizza la AWS::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:

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

Di seguito è riportato il AWS CloudFormation modello trasformato dell'esempio precedente:

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