Mengelola izin sumber daya dengan konektor AWS SAM - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola izin sumber daya dengan konektor AWS SAM

Konektor adalah tipe sumber daya abstrak AWS Serverless Application Model (AWS SAM), diidentifikasi sebagaiAWS::Serverless::Connector, yang menyediakan izin sederhana dan tercakup dengan baik antara sumber daya aplikasi tanpa server Anda.

Manfaat AWS SAM konektor

Dengan secara otomatis menyusun kebijakan akses yang sesuai antar sumber daya, konektor memberi Anda kemampuan untuk membuat aplikasi tanpa server Anda dan fokus pada arsitektur aplikasi Anda tanpa memerlukan keahlian dalam kemampuan AWS otorisasi, bahasa kebijakan, dan pengaturan keamanan khusus layanan. Oleh karena itu, konektor adalah manfaat besar bagi pengembang yang mungkin baru dalam pengembangan tanpa server, atau pengembang berpengalaman yang ingin meningkatkan kecepatan pengembangan mereka.

Menggunakan AWS SAM konektor

Gunakan atribut Connectors sumber daya dengan menyematkannya dalam sumber daya sumber. Kemudian, tentukan sumber daya tujuan Anda dan jelaskan bagaimana data atau peristiwa harus mengalir di antara sumber daya tersebut. AWS SAM kemudian menyusun kebijakan akses yang diperlukan untuk memfasilitasi interaksi yang diperlukan.

Berikut ini menguraikan bagaimana atribut resource ini ditulis:

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

Cara kerja konektor

catatan

Bagian ini menjelaskan bagaimana konektor menyediakan sumber daya yang diperlukan di balik layar. Ini terjadi untuk Anda secara otomatis saat menggunakan konektor.

Pertama, atribut Connectors sumber daya tertanam diubah menjadi tipe AWS::Serverless::Connector sumber daya. ID logisnya secara otomatis dibuat sebagai <source-resource-logical-id><embedded-connector-logical-id>.

Misalnya, berikut adalah konektor tertanam:

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

Ini akan menghasilkan AWS::Serverless::Connector sumber daya berikut:

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

Anda juga dapat menentukan konektor dalam AWS SAM template Anda dengan menggunakan sintaks ini. Ini disarankan ketika sumber daya Anda ditentukan pada templat terpisah dari konektor Anda.

Selanjutnya, kebijakan akses yang diperlukan untuk koneksi ini disusun secara otomatis. Untuk informasi selengkapnya tentang sumber daya yang dihasilkan oleh konektor, lihatAWS CloudFormationsumber daya yang dihasilkan saat Anda menentukan AWS::Serverless::Connector.

Contoh konektor

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan konektor untuk menulis data dari AWS Lambda fungsi ke tabel Amazon DynamoDB.

Fungsi Lambda menulis data ke tabel DynamoDB menggunakan konektor. 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

Atribut Connectors resource disematkan dalam sumber daya fungsi Lambda. Tabel DynamoDB didefinisikan sebagai sumber daya tujuan menggunakan properti. Id Konektor akan memberikan Write izin antara dua sumber daya ini.

Saat Anda menerapkan AWS SAM template Anda AWS CloudFormation, secara otomatis AWS SAM akan menyusun kebijakan akses yang diperlukan yang diperlukan agar koneksi ini berfungsi.

Koneksi yang didukung antara sumber dan sumber daya tujuan

Dukungan konektor Read dan jenis izin Write data dan acara antara kombinasi pilihan koneksi sumber dan sumber daya tujuan. Misalnya, konektor mendukung Write koneksi antara AWS::ApiGateway::RestApi sumber daya sumber dan sumber daya AWS::Lambda::Function tujuan.

Sumber dan sumber daya tujuan dapat didefinisikan dengan menggunakan kombinasi properti yang didukung. Persyaratan properti akan tergantung pada koneksi yang Anda buat dan di mana sumber daya ditentukan.

catatan

Konektor dapat menyediakan izin antara jenis sumber daya tanpa server dan non-server yang didukung.

Untuk daftar koneksi sumber daya yang didukung dan persyaratan propertinya, lihatJenis sumber daya dan tujuan yang didukung untuk konektor.

Pelajari selengkapnya

Untuk informasi selengkapnya tentang penggunaan AWS SAM konektor, lihat topik berikut:

Berikan umpan balik

Untuk memberikan umpan balik tentang konektor, kirimkan masalah baru di serverless-application-model AWS GitHubrepositori.