翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS::Serverless::Connector
2 つのリソース間のアクセス許可を設定します。コネクタの概要については、「AWS SAM コネクタによるリソースに対するアクセス許可の管理」を参照してください。
生成された AWS CloudFormation リソースの詳細については、「」を参照してくださいAWS CloudFormation を指定したときに生成される リソース AWS::Serverless::Connector。
コネクタに関するフィードバックを提供するには、serverless-application-model AWS GitHub GitHubリポジトリで新しい問題を送信します
注記
にデプロイすると AWS CloudFormation、 は AWS SAM リソースを AWS CloudFormation リソース AWS SAM に変換します。詳細については、「用に生成された AWS CloudFormation リソース AWS SAM」を参照してください。
構文
AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次のいずれかの構文を使用します。
注記
ほとんどのユースケースでは、埋め込みコネクタ構文を使用することをお勧めします。ソースリソースに埋め込まれているため、読み取りと長期にわたる維持がより容易になっています。ネストされたスタックのリソースや共有リソースなど、同じ AWS SAM テンプレート内にないソースリソースを参照する必要がある場合は、 AWS::Serverless::Connector
構文を使用します。
埋め込みコネクタ
<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
プロパティ
-
Destination
-
送信先リソースです。
タイプ: ResourceReference | ResourceReference のリスト
必須: はい
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
-
Permissions
-
送信元リソースが送信先リソースで実行できるアクセス許可タイプです。
Read
には、リソースからのデータの読み取りを許可する AWS Identity and Access Management (IAM) アクションが含まれています。Write
には、リソースへのデータの開始と書き込みが可能な IAM アクションが含まれます。有効な値:
Read
またはWrite
タイプ: リスト
必須: はい
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
-
Source
-
送信元リソースです。
AWS::Serverless::Connector
構文を使用する場合に必要です。タイプ: ResourceReference
必須: 条件に応じて異なります
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
-
SourceReference
-
送信元リソースです。
注記
ソースリソース用に追加のプロパティを定義するときに、埋め込みコネクタ構文とともに使用します。
タイプ: SourceReference
必須: いいえ
AWS CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 AWS CloudFormation 同等のものはありません。
例
埋め込みコネクタ
次の例では、埋め込みコネクタを使用して、 AWS Lambda 関数と Amazon DynamoDB テーブルの間の Write
データ接続を定義しています。
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 ...
次の例では、埋め込みコネクタを使用して Read
および Write
許可を定義しています。
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 ...
次の例では、埋め込みコネクタを使用して、Id
以外のプロパティを持つソースリソースを定義しています。
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
次の例では、 AWS::Serverless::Connectorリソースを使用して、 AWS Lambda 関数に Amazon DynamoDB テーブルの読み取りと書き込みを行います。
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
次の例では、AWS::Serverless::Connector リソースを使用して Lambda 関数に Amazon SNS トピックへの書き込みをさせ、両方のリソースを同じテンプレートに配置します。
MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: MyLambda Destination: Id: MySNSTopic Permissions: - Write
次の例では、AWS::Serverless::Connector リソースを使用して Amazon SNS トピックに Lambda 関数への書き込みをさせ、次に Amazon DynamoDB テーブルへの書き込みをさせ、すべてのリソースを同じテンプレートに配置します。
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
以下は、上記の例から変換された AWS CloudFormation テンプレートです。
"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" } ] } }