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
Topik
Apa itu AWS SAM konektor?
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. 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.
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>
...
Contoh konektor
Dalam contoh ini, kita menggunakan konektor untuk menulis data dari AWS Lambda fungsi ke tabel Amazon DynamoDB.
![Diagram fungsi Lambda menulis data ke tabel DynamoDB menggunakan konektor. AWS SAM](images/managing-connectors-example.png)
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.
Menggunakan konektor
Tentukan izin Baca dan Tulis
Read
dan Write
izin dapat disediakan dalam satu konektor:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Lambda::Function Connectors: MyTableConn: Properties: Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table
Tentukan sumber daya dengan menggunakan properti lain yang didukung
Untuk sumber daya sumber dan tujuan, ketika didefinisikan dalam template yang sama, gunakan Id
properti. Secara opsional, a Qualifier
dapat ditambahkan untuk mempersempit ruang lingkup sumber daya yang Anda tentukan. Ketika sumber daya tidak berada dalam template yang sama, gunakan kombinasi properti yang didukung.
-
Untuk daftar kombinasi properti yang didukung untuk sumber daya sumber dan tujuan, lihatJenis sumber daya dan tujuan yang didukung untuk konektor.
-
Untuk deskripsi properti yang dapat Anda gunakan dengan konektor, lihatAWS::Serverless::Connector.
Saat Anda menentukan sumber daya sumber dengan properti selainId
, gunakan SourceReference
properti tersebut.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources:
<source-resource-logical-id>
: Type:<resource-type>
... Connectors:<connector-name>
: Properties: SourceReference: Qualifier:<optional-qualifier>
<other-supported-properties>
Destination:<properties-that-identify-destination-resource>
Permissions:<permission-types-to-provision>
Berikut adalah contoh, menggunakan a Qualifier
untuk mempersempit cakupan sumber daya Amazon API Gateway:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApi: Type: AWS::Serverless::Api Connectors: ApiToLambdaConn: Properties: SourceReference: Qualifier: Prod/GET/foobar Destination: Id: MyFunction Permissions: - Write ...
Berikut adalah contoh, menggunakan kombinasi yang didukung dari Arn
dan Type
untuk menentukan sumber daya tujuan dari template lain:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Connectors: TableConn: Properties: Destination: Type: AWS::DynamoDB::Table Arn: !GetAtt MyTable.Arn ...
Buat beberapa konektor dari satu sumber
Dalam sumber daya sumber, Anda dapat menentukan beberapa konektor, masing-masing dengan sumber daya tujuan yang berbeda.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Connectors: BucketConn: Properties: Destination: Id: MyBucket Permissions: - Read - Write SQSConn: Properties: Destination: Id: MyQueue Permissions: - Read - Write TableConn: Properties: Destination: Id: MyTable Permissions: - Read - Write TableConnWithTableArn: Properties: Destination: Type: AWS::DynamoDB::Table Arn: !GetAtt MyTable.Arn Permissions: - Read - Write ...
Buat konektor multi-tujuan
Dalam sumber daya sumber, Anda dapat menentukan konektor tunggal dengan beberapa sumber daya tujuan. Berikut adalah contoh sumber daya fungsi Lambda yang terhubung ke bucket Amazon Simple Storage Service (Amazon S3) dan tabel DynamoDB:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Connectors: WriteAccessConn: Properties: Destination: - Id: OutputBucket - Id: CredentialTable Permissions: - Write ... OutputBucket: Type: AWS::S3::Bucket CredentialTable: Type: AWS::DynamoDB::Table
Tentukan atribut sumber daya dengan konektor
Atribut sumber daya dapat didefinisikan untuk sumber daya untuk menentukan perilaku dan hubungan tambahan. Untuk mempelajari lebih lanjut tentang atribut sumber daya, lihat Referensi atribut sumber daya di Panduan AWS CloudFormation Pengguna.
Anda dapat menambahkan atribut sumber daya ke konektor tertanam dengan mendefinisikannya pada level yang sama dengan properti konektor Anda. Saat AWS SAM template Anda diubah saat penerapan, atribut akan diteruskan ke sumber daya yang dihasilkan.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Connectors: MyConn: DeletionPolicy: Retain DependsOn: AnotherFunction Properties: ...
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.
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.
Pelajari selengkapnya
Untuk informasi selengkapnya tentang penggunaan AWS SAM konektor, lihatAWS::Serverless::Connector.
Berikan umpan balik
Untuk memberikan umpan balik tentang konektor, kirimkan masalah baru