生成された AWS CloudFormation リソース - AWS Serverless Application Model

生成された AWS CloudFormation リソース

AWS Serverless Application Model (AWS SAM) は、AWS SAM テンプレートファイルを処理するときに 1 つ、または複数の AWS CloudFormation リソースを生成します。AWS SAM が生成する AWS CloudFormation リソースのセットは、ユーザーが指定するシナリオに応じて異なります。シナリオとは、テンプレートファイルで指定される AWS SAM リソースとプロパティの組み合わせのことです。テンプレートファイル内の他の部分で生成された AWS CloudFormation リソースは、テンプレートファイルで明示的に宣言するリファレンスの参照方法と同じように参照できます。

例えば、AWS SAM テンプレートファイルで AWS::Serverless::Function リソースを指定すると、AWS SAM は常に AWS::Lambda::Function ベースのリソースを生成します。オプションの AutoPublishAlias プロパティも指定すると、AWS SAM が追加で AWS::Lambda::Alias および AWS::Lambda::Version リソースを生成します。

このセクションでは、シナリオとそれらが生成する AWS CloudFormation リソースをリストして、AWS SAM テンプレートファイル内で生成された AWS CloudFormation リソースを参照する方法を説明します。

生成された AWS CloudFormation リソースの参照

AWS SAM テンプレートファイル内で生成された AWS CloudFormation リソースを参照するためのオプションには、LogicalId によるものと、参照可能なプロパティによるものの 2 つのオプションがあります。

生成された AWS CloudFormation リソースの LogicalId による参照

AWS SAM が生成する各 AWS CloudFormation リソースには LogicalId があります。これは、テンプレートファイル内で一意の英数字 (A~Z、a~z、0~9) 識別子です。AWS SAM は、テンプレートファイル内の AWS SAM リソースの LogicalIds を使用して、それが生成する AWS CloudFormation リソースの LogicalIds を構築します。明示的に宣言した AWS CloudFormation の場合と同様に、生成された AWS CloudFormation リソースの LogicalId を使用して、テンプレートファイル内のそのリソースのプロパティにアクセスすることができます。AWS CloudFormation および AWS SAM テンプレート内の LogicalIds の詳細については、AWS CloudFormation ユーザーガイドの「Resources」を参照してください。

注記

生成されたリソースの LogicalIds には、名前空間の衝突を避けるための一意のハッシュ値が含まれるものがあります。これらのリソースの LogicalIds は、スタックの作成時に導出されます。これらを取得できるのは、スタックが AWS Management Console、AWS CLI、または AWS の 1 つを使用して作成された後のみです。ハッシュ値が変更される可能性があるため、LogicalId によるこれらのリソースの参照は推奨されません。

生成された AWS CloudFormation リソースの参照可能なプロパティによる参照

AWS SAM は、生成された一部のリソースに、AWS SAM リソースの参照可能なプロパティを提供します。このプロパティを使用して、AWS SAM テンプレート内の生成された AWS CloudFormation リソースとそのプロパティを参照できます。

注記

生成された AWS CloudFormation リソースのすべてに参照可能なプロパティがあるわけではありません。これらのリソースには、LogicalId を使用する必要があります。

生成された AWS CloudFormation リソースのシナリオ

以下の表は、AWS CloudFormation リソースを生成するシナリオを構成する AWS SAM リソースとプロパティを要約したものです。シナリオ列のトピックには、そのシナリオに対して AWS SAM が生成する追加の AWS CloudFormation リソースの詳細が説明されています。

AWS SAM リソース ベース AWS CloudFormation リソース シナリオ
AWS::Serverless::Api AWS::ApiGateway::RestApi
AWS::Serverless::Application AWS::CloudFormation::Stack
  • このサーバーレスリソースには、ベース AWS CloudFormation リソースの生成以外の追加のシナリオはありません。

AWS::Serverless::Function AWS::Lambda::Function
AWS::Serverless::HttpApi AWS::ApiGatewayV2::Api
AWS::Serverless::LayerVersion AWS::Lambda::LayerVersion
  • このサーバーレスリソースには、ベース AWS CloudFormation リソースの生成以外の追加のシナリオはありません。

AWS::Serverless::SimpleTable AWS::DynamoDB::Table
  • このサーバーレスリソースには、ベース AWS CloudFormation リソースの生成以外の追加のシナリオはありません。

AWS::Serverless::StateMachine AWS::StepFunctions::StateMachine