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 recursos gerados, AWS CloudFormation consulte Os 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 no AWS CloudFormation, AWS SAM transforma seus recursos AWS SAM em recursos AWS CloudFormation. Para obter mais informações, consulte Recursos gerados da AWS CloudFormation.

Sintaxe

Para declarar esta entidade no modelo do AWS Serverless Application Model (AWS SAM), use qualquer uma das seguintes sintaxes:

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 modelo AWS SAM, como um recurso em uma pilha aninhada ou um recurso compartilhado, use a sintaxe AWS::Serverless::Connector.

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

Compatibilidade AWS CloudFormation: Essa propriedade é exclusiva do 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.

Read inclui ações (IAM) AWS Identity and Access Management 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

Compatibilidade AWS CloudFormation: Essa propriedade é exclusiva do 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

Compatibilidade AWS CloudFormation: Essa propriedade é exclusiva do 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

Compatibilidade AWS CloudFormation: Essa propriedade é exclusiva do 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 recurso AWS::Serverless::Connector para que uma função AWS Lambda seja lida e escrita 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 modelo AWS CloudFormation 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" } ] } }