Gerenciando permissões de recursos com conectores AWS SAM - 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á.

Gerenciando permissões de recursos com conectores AWS SAM

Os conectores são um tipo de recurso AWS Serverless Application Model (AWS SAM) abstrato, identificado comoAWS::Serverless::Connector, que fornece permissões simples e bem definidas entre seus recursos de aplicativos sem servidor.

Benefícios dos AWS SAM conectores

Ao compor automaticamente as políticas de acesso apropriadas entre os recursos, os conectores permitem que você crie seus aplicativos sem servidor e se concentre na arquitetura do aplicativo sem precisar de experiência em recursos de AWS autorização, linguagem de políticas e configurações de segurança específicas do serviço. Portanto, os conectores são um grande benefício para desenvolvedores que podem ser novos no desenvolvimento de tecnologia sem servidor ou desenvolvedores experientes que desejam aumentar sua velocidade de desenvolvimento.

Usando AWS SAM conectores

Use o atributo de recurso Connectors incorporando-o em um recurso de origem. Em seguida, defina seu recurso de destino e descreva como os dados ou eventos devem fluir entre esses recursos. AWS SAM em seguida, compõe as políticas de acesso necessárias para facilitar as interações necessárias.

A seguir é descrito como esse atributo de recurso é gravado:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: <source-resource-logical-id>: Type: <resource-type> ... Connectors: <connector-name>: Properties: Destination: <properties-that-identify-destination-resource> Permissions: <permission-types-to-provision> ...

Como funcionam os conectores

nota

Esta seção explica como os conectores provisionam os recursos necessários nos bastidores. Isso acontece automaticamente ao usar conectores.

Primeiro, o atributo de recurso Connectors incorporado é transformado em um tipo de recurso AWS::Serverless::Connector. Seu ID lógico é criado automaticamente como <source-resource-logical-id><embedded-connector-logical-id>.

Por exemplo, aqui está um conector incorporado:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Lambda::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table

Isso gerará o seguinte recurso AWS::Serverless::Connector:

Transform: AWS::Serverless-2016-10-31 Resources: ... MyFunctionMyConn: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
nota

Você também pode definir conectores em seu AWS SAM modelo usando essa sintaxe. Isso é recomendado quando seu recurso de origem é definido em um modelo separado do seu conector.

Em seguida, as políticas de acesso necessárias para essa conexão são compostas automaticamente. Para obter mais informações sobre os recursos gerados por conectores, consulte Os recursos AWS CloudFormation gerados quando você especifica AWS::Serverless::Connector.

Exemplo de conectores

O exemplo a seguir mostra como você pode usar conectores para gravar dados de uma AWS Lambda função em uma tabela do Amazon DynamoDB.

Uma função do Lambda gravando dados em uma tabela do DynamoDB usando conectores do AWS SAM .
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 Properties: Runtime: nodejs16.x Handler: index.handler InlineCode: | const AWS = require("aws-sdk"); const docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = async (event, context) => { await docClient.put({ TableName: process.env.TABLE_NAME, Item: { id: context.awsRequestId, event: JSON.stringify(event) } }).promise(); } Environment: Variables: TABLE_NAME: !Ref MyTable

O recurso do atributo Connectors está incorporado ao recurso de origem da função do Lambda. A tabela do DynamoDB é definida como o recurso de destino usando a propriedade Id. Os conectores provisionarão permissões Write entre esses dois recursos.

Quando você implanta seu AWS SAM modelo no AWS CloudFormation, AWS SAM ele compõe automaticamente as políticas de acesso necessárias para que essa conexão funcione.

Conexões suportadas entre recursos de origem e destino

Suporte a conectores Read e tipos de permissão de dados e eventos Write entre uma combinação selecionada de conexões de recursos de origem e destino. Por exemplo, os conectores oferecem suporte a uma conexão Write entre um recurso de origem AWS::ApiGateway::RestApi e um recurso de destino AWS::Lambda::Function.

Os recursos de origem e destino podem ser definidos usando uma combinação de propriedades compatíveis. Os requisitos de propriedade dependerão da conexão que você está fazendo e de onde os recursos estão definidos.

nota

Os conectores podem provisionar permissões entre os tipos de recursos com tecnologia sem servidor e sem tecnologia sem servidor compatíveis.

Para obter uma lista de conexões de recursos compatíveis e seus requisitos de propriedade, consulte Tipos de recursos de origem e destino suportados para conectores.

Saiba mais

Para obter mais informações sobre o uso de AWS SAM conectores, consulte os tópicos a seguir:

Envie seu feedback

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