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 os conectores, envie um novo problema
nota
Quando você implanta o AWS CloudFormation, AWS SAM transforma seus recursos AWS SAM em recursos AWS CloudFormation. Para obter mais informações, consulte Recursos gerados do AWS CloudFormation para o AWS SAM.
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
ouWrite
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" } ] } }