AWS::Serverless::Connector - AWS Serverless Application Model

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

AWS::Serverless::Connector

Mengkonfigurasi izin antara dua sumber daya. Untuk pengenalan konektor, lihatMengelola izin sumber daya dengan konektor AWS SAM.

Untuk informasi selengkapnya tentang AWS CloudFormation sumber daya yang dihasilkan, lihatAWS CloudFormationsumber daya yang dihasilkan saat Anda menentukan AWS::Serverless::Connector.

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

catatan

Ketika Anda menyebarkan keAWS CloudFormation, AWS SAM mengubah AWS SAM sumber daya Anda menjadi AWS CloudFormation sumber daya. Untuk informasi selengkapnya, lihat Sumber daya AWS CloudFormation yang dibuat.

Sintaks

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan salah satu sintaks berikut.

catatan

Sebaiknya gunakan sintaks konektor tertanam untuk sebagian besar kasus penggunaan. Tertanam dalam sumber daya membuatnya lebih mudah untuk membaca dan memelihara dari waktu ke waktu. Bila Anda perlu mereferensikan sumber daya sumber yang tidak berada dalam AWS SAM template yang sama, seperti sumber daya dalam tumpukan bersarang atau sumber daya bersama, gunakan AWS::Serverless::Connector sintaks.

Konektor tertanam

<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

Properti

Destination

Sumber daya tujuan.

Jenis: ResourceReference| Daftar ResourceReference

Wajib: Ya

Kompatibilitas AWS CloudFormation: Properti ini unik bagi AWS SAM dan tidak memiliki padanan AWS CloudFormation.

Permissions

Jenis izin yang diizinkan untuk dilakukan sumber daya sumber daya pada sumber daya tujuan.

Readtermasuk tindakan AWS Identity and Access Management (IAM) yang memungkinkan membaca data dari sumber daya.

Writetermasuk tindakan IAM yang memungkinkan memulai dan menulis data ke sumber daya.

Nilai yang valid: Read atau Write

Tipe: Daftar

Wajib: Ya

Kompatibilitas AWS CloudFormation: Properti ini unik bagi AWS SAM dan tidak memiliki padanan AWS CloudFormation.

Source

Sumber sumber daya. Diperlukan saat menggunakan AWS::Serverless::Connector sintaks.

Jenis: ResourceReference

Wajib: Bersyarat

Kompatibilitas AWS CloudFormation: Properti ini unik bagi AWS SAM dan tidak memiliki padanan AWS CloudFormation.

SourceReference

Sumber sumber daya.

catatan

Gunakan dengan sintaks konektor tertanam saat mendefinisikan properti tambahan untuk sumber daya sumber.

Jenis: SourceReference

Wajib: Tidak

Kompatibilitas AWS CloudFormation: Properti ini unik bagi AWS SAM dan tidak memiliki padanan AWS CloudFormation.

Contoh-contoh

Konektor tertanam

Contoh berikut menggunakan konektor tertanam untuk menentukan koneksi Write data antara AWS Lambda fungsi dan tabel 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 ...

Contoh berikut menggunakan konektor tertanam untuk menentukan Read dan Write izin:

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

Contoh berikut menggunakan konektor tertanam untuk menentukan sumber daya sumber dengan properti selainId:

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

Contoh berikut menggunakan AWS::Serverless::Connector resource untuk memiliki AWS Lambda fungsi read from, dan write ke tabel Amazon DynamoDB:

MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write

Contoh berikut menggunakan AWS::Serverless::Connector sumber daya agar fungsi Lambda menulis ke topik Amazon SNS, dengan kedua sumber daya dalam templat yang sama:

MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySNSTopic Permissions: - Write

Contoh berikut menggunakan AWS::Serverless::Connector sumber daya agar topik Amazon SNS menulis ke fungsi Lambda, yang kemudian menulis ke tabel Amazon DynamoDB, dengan semua sumber daya dalam templat yang sama:

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

Berikut ini adalah AWS CloudFormation template yang diubah dari contoh di atas:

"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" } ] } }