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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS::Serverless::Connector

Configura as permissões entre dois recursos. Para obter uma introdução aos conectores, consulte Gerenciando permissões de recursos com conectores AWS SAM.

Para obter mais informações sobre AWS CloudFormation os recursos gerados, consulteOs recursos AWS CloudFormation gerados quando você especifica AWS::Serverless::Connector.

Para fornecer feedback sobre conectores, envie um novo problema no serverless-application-model AWS GitHub repositório.

nota

Quando você implanta AWS CloudFormation, AWS SAM transforma seus AWS SAM recursos em AWS CloudFormation recursos. Para ter mais informações, consulte AWS CloudFormation Recursos gerados para AWS SAM.

Sintaxe

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use qualquer uma das sintaxes a seguir.

nota

Recomendamos usar a sintaxe de conectores incorporados para a maioria dos casos de uso. Estar incorporado ao recurso de origem facilita a leitura e a manutenção ao longo do tempo. Quando precisar referenciar um recurso de origem que não esteja no mesmo AWS SAM modelo, como um recurso em uma pilha aninhada ou um recurso compartilhado, use a AWS::Serverless::Connector sintaxe.

Conectores embutidos

<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

Propriedades

Destination

O recurso de destino.

Tipo: ResourceReference| Lista de ResourceReference

Obrigatório: Sim

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Permissions

O tipo de permissão que o recurso de origem tem permissão para executar no recurso de destino.

Readinclui ações AWS Identity and Access Management (IAM) que permitem a leitura de dados do recurso.

Write inclui ações do IAM que permitem iniciar e escrever dados em um recurso.

Valores válidos: Read ou Write

Tipo: lista

Obrigatório: Sim

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Source

O recurso de origem. Obrigatório ao usar a sintaxe AWS::Serverless::Connector.

Tipo: ResourceReference

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

SourceReference

O recurso de origem.

nota

Use com a sintaxe de conectores incorporados ao definir propriedades adicionais para o recurso de origem.

Tipo: SourceReference

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Exemplos

Conectores embutidos

O exemplo a seguir usa conectores incorporados para definir uma conexão de dados Write entre uma função AWS Lambda e a tabela do 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 ...

O exemplo a seguir usa conectores incorporados para definir permissões Read e 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 ...

O exemplo a seguir usa conectores incorporados para definir um recurso de origem com uma propriedade diferente 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

O exemplo a seguir usa o AWS::Serverless::Connector recurso para que uma AWS Lambda função seja lida e gravada em uma tabela do Amazon DynamoDB:

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

O exemplo a seguir usa o recurso AWS::Serverless::Connector para que uma função do Lambda seja escrita em um tópico do Amazon SNS, com os dois recursos no mesmo modelo:

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

O exemplo a seguir usa o AWS::Serverless::Connector recurso para que um tópico do Amazon SNS grave em uma função do Lambda, que então grava em uma tabela do Amazon DynamoDB, com todos os recursos no mesmo modelo:

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

Veja a seguir o AWS CloudFormation modelo transformado do exemplo acima:

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