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, consulta Para obtener más información, consulta administración de los permisos de recursos con conectores de AWS SAM ..
Para obtener más información sobre los recursos AWS CloudFormation generados, consulta AWS CloudFormation recursos generados cuando se especifica AWS::Serverless::Connector.
Para hacer comentarios sobre los conectores, envíe un nuevo problema
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, consulta Recursos AWS CloudFormation de AWS SAM generados.
Sintaxis
Para declarar esta entidad en su plantilla de AWS Serverless Application Model (AWS SAM), usa 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: :Conector
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
oWrite
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: :Conector
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" } ] } }