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, lihatCloudFormation sumber daya yang dihasilkan saat Anda menentukan AWS::Serverless::Connector.
Untuk memberikan umpan balik tentang konektor, kirimkan masalah baru
catatan
Ketika Anda menyebarkan ke AWS CloudFormation, AWS SAM mengubah AWS SAM sumber daya Anda menjadi CloudFormation sumber daya. Untuk informasi selengkapnya, lihat CloudFormation Sumber daya yang dihasilkan untuk AWS SAM.
Sintaksis
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 ResourceReferencePermissions:ListSourceReference:SourceReference
AWS::Serverless::Connector
Type: AWS::Serverless::Connector Properties: Destination:ResourceReference|List of ResourceReferencePermissions:ListSource:ResourceReference
Properti
-
Destination -
Sumber daya tujuan.
Jenis: ResourceReference| Daftar ResourceReference
Wajib: Ya
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
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:
ReadatauWriteTipe: Daftar
Wajib: Ya
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
Source -
Sumber sumber daya. Diperlukan saat menggunakan
AWS::Serverless::Connectorsintaks.Jenis: ResourceReference
Wajib: Bersyarat
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
SourceReference -
Sumber sumber daya.
catatan
Gunakan dengan sintaks konektor tertanam saat mendefinisikan properti tambahan untuk sumber daya sumber.
Jenis: SourceReference
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
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" } ] } }