ResourceReference - AWS Serverless Application Model

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

ResourceReference

Referensi ke sumber daya yang digunakan jenisAWS::Serverless::Connector sumber daya.

catatan

Untuk sumber daya dalam template yang sama, berikanId. Untuk sumber daya yang tidak dalam template yang sama, gunakan kombinasi properti lainnya. Untuk informasi selengkapnya, lihat AWS SAMreferensi konektor.

Sintaks

Untuk mendeklarasikan entitas ini di templat AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

YAML

Arn: String Id: String Name: String Qualifier: String QueueUrl: String ResourceId: String RoleName: String Type: String

Properti

Arn

ARN sumber daya.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

Id

ID logis dari sumber daya dalam template yang sama.

catatan

KetikaId ditentukan, jika konektor menghasilkanAWS Identity and Access Management (IAM) kebijakan, peran IAM yang terkait dengan kebijakan tersebut akan disimpulkan dari sumber dayaId. Ketika tidakId ditentukan, menyediakanRoleName sumber daya untuk konektor untuk melampirkan kebijakan IAM yang dihasilkan untuk peran IAM.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

Name

Nama sumber daya.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

Qualifier

Kualifikasi untuk sumber daya yang mempersempit ruang lingkupnya. Qualifiermenggantikan* nilai pada akhir kendala sumber daya ARN. Sebagai contoh, lihat API Gateway memanggil fungsi Lambda.

catatan

Definisi kualifikasi bervariasi per jenis sumber daya. Untuk daftar jenis sumber daya dan tujuan yang didukung, lihatAWS SAMreferensi konektor.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

QueueUrl

URL Antrean Amazon SQS. Properti ini hanya berlaku untuk sumber daya Amazon SQS.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

ResourceId

ID sumber daya. Misalnya, API Gateway API ID.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

RoleName

Nama peran yang terkait dengan sumber daya.

catatan

KetikaId ditentukan, jika konektor menghasilkan kebijakan IAM, peran IAM yang terkait dengan kebijakan tersebut akan disimpulkan dari sumber dayaId. Ketika tidakId ditentukan, menyediakanRoleName sumber daya untuk konektor untuk melampirkan kebijakan IAM yang dihasilkan untuk peran IAM.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

Type

AWS CloudFormationJenis sumber daya. Untuk informasi selengkapnya, kunjungi referensi jenisAWS sumber daya dan properti.

Jenis: Tali

Diperlukan: Bersyarat

AWS CloudFormationkompatibilitas: Properti ini unik bagiAWS SAM dan tidak memilikiAWS CloudFormation padanan.

Contoh

API Gateway memanggil fungsi Lambda

Contoh berikut menggunakanAWS::Serverless::Connector sumber daya untuk memungkinkan Amazon API Gateway untuk memanggilAWS Lambda fungsi.

YAML

Transform: AWS::Serverless-2016-10-31 Resources: MyRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: lambda.amazonaws.com ManagedPolicyArns: - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole MyFunction: Type: AWS::Lambda::Function Properties: Role: !GetAtt MyRole.Arn Runtime: nodejs16.x Handler: index.handler Code: ZipFile: | exports.handler = async (event) => { return { statusCode: 200, body: JSON.stringify({ "message": "It works!" }), }; }; MyApi: Type: AWS::ApiGatewayV2::Api Properties: Name: MyApi ProtocolType: HTTP MyStage: Type: AWS::ApiGatewayV2::Stage Properties: ApiId: !Ref MyApi StageName: prod AutoDeploy: True MyIntegration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref MyApi IntegrationType: AWS_PROXY IntegrationUri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations IntegrationMethod: POST PayloadFormatVersion: "2.0" MyRoute: Type: AWS::ApiGatewayV2::Route Properties: ApiId: !Ref MyApi RouteKey: GET /hello Target: !Sub integrations/${MyIntegration} MyConnector: Type: AWS::Serverless::Connector Properties: Source: # Use 'Id' when resource is in the same template Type: AWS::ApiGatewayV2::Api ResourceId: !Ref MyApi Qualifier: prod/GET/hello # Or "*" to allow all routes Destination: # Use 'Id' when resource is in the same template Type: AWS::Lambda::Function Arn: !GetAtt MyFunction.Arn Permissions: - Write Outputs: Endpoint: Value: !Sub https://${MyApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/prod/hello