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
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.
Read
termasuk tindakan AWS Identity and Access Management (IAM) yang memungkinkan membaca data dari sumber daya.Write
termasuk tindakan IAM yang memungkinkan memulai dan menulis data ke sumber daya.Nilai yang valid:
Read
atauWrite
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" } ] } }