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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS::Serverless::Connector

Configura permisos entre dos recursos. Para obtener una introducción a los conectores, consulte Para obtener más información, consulte administración de los permisos de recursos con conectores de AWS SAM..

Para obtener más información sobre los recursos AWS CloudFormation generados, consulte AWS CloudFormation recursos generados cuando se especifica AWS::Serverless::Connector.

Para enviar comentarios sobre los conectores, envía un nuevo número al serverless-application-model AWS GitHub repositorio.

nota

Al realizar la implementación en AWS CloudFormation, AWS SAM transforma sus recursos de AWS SAM en recursos de AWS CloudFormation. Para obtener más información, consulte Recursos de AWS CloudFormation generados.

Sintaxis

Para declarar esta entidad en su plantilla de AWS Serverless Application Model (AWS SAM), use la siguiente sintaxis:

nota

Recomendamos utilizar la sintaxis de los conectores integrados en la mayoría de los casos de uso. Al estar integrado en el recurso de origen, es más fácil de leer y mantener a lo largo del tiempo. Cuando necesite hacer referencia a un recurso de origen que no esté dentro de la misma plantilla de AWS SAM, como un recurso de una pila anidada o un recurso compartido, utilice la sintaxis AWS::Serverless::Connector.

Conectores integrados

<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

Propiedades

Destination

El recurso de destino.

Tipo: ResourceReference| Lista de ResourceReference

Obligatorio: sí

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Permissions

El tipo de permiso que el recurso de origen puede realizar en el recurso de destino.

Read incluye acciones de AWS Identity and Access Management (IAM) que permiten leer los datos del recurso.

Write incluye acciones de IAM que permiten iniciar y escribir datos en un recurso.

Valores válidos: Read o Write

Tipo: lista

Obligatorio: sí

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Source

El recurso fuente. Obligatorio cuando se utiliza la sintaxis AWS::Serverless::Connector.

Tipo: ResourceReference

Obligatorio: condicional

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

SourceReference

El recurso fuente.

nota

Utilícelo con la sintaxis de los conectores integrados al definir propiedades adicionales para el recurso de origen.

Tipo: SourceReference

Obligatorio: no

Compatibilidad con AWS CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente AWS CloudFormation.

Ejemplos

Conectores integrados

En el siguiente ejemplo, se utilizan conectores integrados para definir una conexión de datos Write entre una función de AWS Lambda y una tabla de 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 ...

En el siguiente ejemplo, se utilizan conectores integrados para definir los Read y los permisos 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 ...

En el siguiente ejemplo, se utilizan conectores integrados para definir un recurso fuente con una propiedad distinta de 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

En el siguiente ejemplo, se utiliza el recurso AWS::Serverless::Connector para que una función de AWS Lambda lea y escriba en una tabla de Amazon DynamoDB:

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

En el siguiente ejemplo, se utiliza el recurso AWS::Serverless::Connector para que una función de Lambda escriba en un tema de Amazon SNS, con ambos recursos en la misma plantilla:

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

En el siguiente ejemplo, se utiliza el recurso AWS::Serverless::Connector para que un tema de Amazon SNS se escriba en una función de Lambda y, a continuación, en una tabla de Amazon DynamoDB, con todos los recursos en la misma plantilla:

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

La siguiente es la plantilla AWS CloudFormation transformada del ejemplo anterior:

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