Gestione delle autorizzazioni delle risorse con i connettori AWS SAM - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle autorizzazioni delle risorse con i connettori AWS SAM

I connettori sono un tipo di risorsa astratto AWS Serverless Application Model (AWS SAM), identificato comeAWS::Serverless::Connector, che fornisce autorizzazioni semplici e ben definite tra le risorse delle applicazioni serverless.

Vantaggi dei connettori AWS SAM

Componendo automaticamente le politiche di accesso appropriate tra le risorse, Connectors vi offre la possibilità di creare applicazioni serverless e concentrarvi sull'architettura dell'applicazione senza bisogno di competenze in termini di funzionalità di AWS autorizzazione, linguaggio delle policy e impostazioni di sicurezza specifiche del servizio. Pertanto, i connettori rappresentano un grande vantaggio per gli sviluppatori che potrebbero essere alle prime armi nello sviluppo serverless o per gli sviluppatori esperti che desiderano aumentare la velocità di sviluppo.

Utilizzo dei connettori AWS SAM

Usa l'attributo Connectors resource incorporandolo in una risorsa di origine. Quindi, definisci la risorsa di destinazione e descrivi come i dati o gli eventi devono fluire tra tali risorse. AWS SAM compone quindi le politiche di accesso necessarie per facilitare le interazioni richieste.

Di seguito viene descritto come viene scritto questo attributo di risorsa:

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> ...

Come funzionano i connettori

Nota

Questa sezione spiega come i connettori forniscono le risorse necessarie dietro le quinte. Ciò avviene automaticamente quando si utilizzano i connettori.

Innanzitutto, l'attributo di Connectors risorsa incorporato viene trasformato in un tipo di AWS::Serverless::Connector risorsa. Il relativo ID logico viene creato automaticamente come <source-resource-logical-id><embedded-connector-logical-id>.

Ad esempio, ecco un connettore incorporato:

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

Questo genererà la seguente AWS::Serverless::Connector risorsa:

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

È inoltre possibile definire i connettori nel AWS SAM modello utilizzando questa sintassi. Questa operazione è consigliata quando la risorsa di origine è definita su un modello separato dal connettore.

Successivamente, le politiche di accesso necessarie per questa connessione vengono composte automaticamente. Per ulteriori informazioni sulle risorse generate dai connettori, vedereAWS CloudFormationrisorse generate quando si specifica AWS::Serverless::Connector.

Esempio di connettori

L'esempio seguente mostra come utilizzare i connettori per scrivere dati da una AWS Lambda funzione a una tabella Amazon DynamoDB.

Una funzione Lambda che scrive dati su una tabella DynamoDB utilizzando connettori. 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

L'attributo Connectors resource è incorporato nella risorsa sorgente della funzione Lambda. La tabella DynamoDB è definita come risorsa di destinazione utilizzando la proprietà. Id I connettori forniranno le Write autorizzazioni tra queste due risorse.

Quando distribuisci il AWS SAM modello su AWS CloudFormation, AWS SAM comporrà automaticamente le politiche di accesso necessarie per il funzionamento di questa connessione.

Connessioni supportate tra risorse di origine e destinazione

Supportano i connettori Read e Write i tipi di autorizzazione per dati ed eventi tra una combinazione selezionata di connessioni alle risorse di origine e destinazione. Ad esempio, i connettori supportano una Write connessione tra una AWS::ApiGateway::RestApi risorsa di origine e una risorsa di AWS::Lambda::Function destinazione.

Le risorse di origine e di destinazione possono essere definite utilizzando una combinazione di proprietà supportate. I requisiti delle proprietà dipenderanno dalla connessione che si sta effettuando e da dove vengono definite le risorse.

Nota

I connettori possono fornire le autorizzazioni tra i tipi di risorse serverless e non serverless supportati.

Per un elenco delle connessioni di risorse supportate e dei relativi requisiti di proprietà, vedere. Tipi di risorse di origine e destinazione supportati per i connettori

Ulteriori informazioni

Per ulteriori informazioni sull'uso dei AWS SAM connettori, consulta i seguenti argomenti:

Fornire feedback

Per fornire feedback sui connettori, invia un nuovo problema al serverless-application-model AWS GitHubrepository.