

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudFormation AWS::Serverless::Functionが指定されているときに生成される リソース
<a name="sam-specification-generated-resources-function"></a>

`AWS::Serverless::Function` を指定すると、 AWS Serverless Application Model (AWS SAM) は常に `AWS::Lambda::Function` ベース CloudFormation リソースを作成します。

**`AWS::Lambda::Function`**  
*`LogicalId`: *`<function‑LogicalId>`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

この CloudFormation リソースに加えて、 を指定すると、 `AWS::Serverless::Function`は次のシナリオの CloudFormation リソース AWS SAM も生成します。

**Topics**
+ [コア関数のプロパティ](#sam-specification-generated-resources-function-core-properties)
+ [イベントソース](#sam-specification-generated-resources-function-event-sources)
+ [イベント設定](#sam-specification-generated-resources-function-event-configuration)

## コア関数のプロパティ
<a name="sam-specification-generated-resources-function-core-properties"></a>

次のシナリオでは、コア関数のプロパティに基づいて CloudFormation リソースを生成します。

### Role プロパティが指定されていない
<a name="sam-specification-generated-resources-function-not-role"></a>

の `Role`プロパティが指定され*ていない場合*、 `AWS::Serverless::Function`は `AWS::IAM::Role` CloudFormation リソース AWS SAM を生成します。

**`AWS::IAM::Role`**  
*`LogicalId`: *`<function‑LogicalId>Role`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### AutoPublishAlias プロパティが指定されている
<a name="sam-specification-generated-resources-function-autopublishalias"></a>

の `AutoPublishAlias`プロパティ`AWS::Serverless::Function`を指定すると、 は `AWS::Lambda::Alias`および の CloudFormation リソース AWS SAM を生成します`AWS::Lambda::Version`。

**`AWS::Lambda::Alias`**  
*`LogicalId`: *`<function‑LogicalId>Alias<alias‑name>`  
`<alias‑name>` は、`AutoPublishAlias` が設定されている文字列です。例えば、`AutoPublishAlias` を `live` に設定すると、`LogicalId` は *MyFunction*Alias*live* になります。  
*参照可能なプロパティ: *`<function‑LogicalId>.Alias`

**`AWS::Lambda::Version`**  
*`LogicalId`: *`<function‑LogicalId>Version<sha>`  
`<sha>` は、スタックが作成されるときに生成される一意のハッシュ値です。例えば、*MyFunction*Version*926eeb5ff1* などです。  
*参照可能なプロパティ: *`<function‑LogicalId>.Version`

`AutoPublishAlias` プロパティの詳細については、[AWS::Serverless::Function のプロパティセクション](sam-resource-function.md#sam-resource-function-properties)を参照してください。

### DeploymentPreference プロパティが指定されている
<a name="sam-specification-generated-resources-function-deploymentpreference"></a>

の `DeploymentPreference`プロパティを指定する`AWS::CodeDeploy::Application`と、 `AWS::Serverless::Function`は および の CloudFormation リソース AWS SAM リソースを生成します`AWS::CodeDeploy::DeploymentGroup`。さらに、 `DeploymentPreference` オブジェクトの `Role`プロパティが指定され*ていない場合*、 は `AWS::IAM::Role` CloudFormation リソース AWS SAM も生成します。

**`AWS::CodeDeploy::Application`**  
*`LogicalId`: *`ServerlessDeploymentApplication`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::CodeDeploy::DeploymentGroup`**  
*`LogicalId`: *`<function‑LogicalId>DeploymentGroup`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::IAM::Role`**  
*`LogicalId`: *`CodeDeployServiceRole`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### FunctionUrlConfig プロパティが指定されている
<a name="sam-specification-generated-resources-function-functionurlconfig"></a>

`FunctionUrlConfig` プロパティを指定すると、 は に基づいて異なる CloudFormation リソース AWS SAM を生成します`AuthType`。

を指定する`AuthType: NONE`と、 は次の CloudFormation リソース AWS SAM を生成します。

**`AWS::Lambda::Permission` (アクセスを呼び出す)**  
*`LogicalId`: *`<function‑LogicalId>URLInvokeAllowPublicAccess`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::Lambda::Permission` (パブリックアクセス)**  
*`LogicalId`: *`<function‑LogicalId>UrlPublicPermissions`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::Lambda::Url`**  
*`LogicalId`: *`<function‑LogicalId>Url`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

を指定する`AuthType: AWS_IAM`と、 は以下のみ AWS SAM を生成します。

**`AWS::Lambda::Url`**  
*`LogicalId`: *`<function‑LogicalId>Url`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

`FunctionUrlConfig` プロパティの詳細については、「[FunctionUrlConfig](sam-property-function-functionurlconfig.md)」を参照してください。

## イベントソース
<a name="sam-specification-generated-resources-function-event-sources"></a>

次のシナリオでは、イベントソースに基づいて CloudFormation リソースを生成します。

### Api イベントソースが指定されている
<a name="sam-specification-generated-resources-function-api"></a>

の `Event`プロパティ`AWS::Serverless::Function`が に設定されているが`Api`、 `RestApiId`プロパティが指定され*ていない場合*、 は`AWS::ApiGateway::RestApi` CloudFormation リソース AWS SAM を生成します。

**`AWS::ApiGateway::RestApi`**  
*`LogicalId`: *`ServerlessRestApi`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### HttpApi イベントソースが指定されている
<a name="sam-specification-generated-resources-function-httpapi"></a>

の `Event`プロパティ`AWS::Serverless::Function`が に設定されているが`HttpApi`、 `ApiId`プロパティが指定され*ていない場合*、 は`AWS::ApiGatewayV2::Api` CloudFormation リソース AWS SAM を生成します。

**`AWS::ApiGatewayV2::Api`**  
*`LogicalId`: *`ServerlessHttpApi`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### ストリーミングイベントソースが指定されている
<a name="sam-specification-generated-resources-function-streaming"></a>

の `Event`プロパティ`AWS::Serverless::Function`がストリーミングタイプの 1 つに設定されている場合、 は`AWS::Lambda::EventSourceMapping` CloudFormation リソース AWS SAM を生成します。これは、`DynamoDB`、`Kinesis`、`MQ`、`MSK`、および `SQS` の各タイプに適用されます。

**`AWS::Lambda::EventSourceMapping`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### イベントブリッジ (またはイベントバス) イベントソースが指定されている
<a name="sam-specification-generated-resources-function-eventbridge"></a>

の `Event`プロパティ`AWS::Serverless::Function`がイベントブリッジ (またはイベントバス) タイプの 1 つに設定されている場合、 は`AWS::Events::Rule` CloudFormation リソース AWS SAM を生成します。これは、`EventBridgeRule`、`Schedule`、および `CloudWatchEvents` の各タイプに適用されます。

**`AWS::Events::Rule`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

### IotRule イベントソースが指定されている
<a name="sam-specification-generated-resources-function-iotrule"></a>

の `Event`プロパティ`AWS::Serverless::Function`が IoTRule に設定されている場合、 は`AWS::IoT::TopicRule` CloudFormation リソース AWS SAM を生成します。

**`AWS::IoT::TopicRule`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

## イベント設定
<a name="sam-specification-generated-resources-function-event-configuration"></a>

次のシナリオでは、イベント設定に基づいて CloudFormation リソースを生成します。

### Amazon SNS イベントに対して OnSuccess (または OnFailure) プロパティが指定されている
<a name="sam-specification-generated-resources-function-sns-onsuccess"></a>

の プロパティの `DestinationConfig`プロパティの `OnSuccess` (または `OnFailure`) `EventInvokeConfig`プロパティ`AWS::Serverless::Function`が指定され、送信先タイプが `SNS`であっても送信先 ARN が指定され*ていない場合*、 は `AWS::Lambda::EventInvokeConfig`および の CloudFormation リソース AWS SAM を生成します`AWS::SNS::Topic`。

**`AWS::Lambda::EventInvokeConfig`**  
*`LogicalId`: *`<function‑LogicalId>EventInvokeConfig`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::SNS::Topic`**  
*`LogicalId`: *`<function‑LogicalId>OnSuccessTopic` (または `<function‑LogicalId>OnFailureTopic`)  
*参照可能なプロパティ: *`<function‑LogicalId>.DestinationTopic`  
`OnSuccess` と `OnFailure` の両方が Amazon SNS イベントに指定されている場合、生成されたリソースを区別するには `LogicalId` を使用する必要があります。

### Amazon SQS イベントに対して OnSuccess (または OnFailure) プロパティが指定されている
<a name="sam-specification-generated-resources-function-sqs-onsuccess"></a>

の プロパティの `DestinationConfig`プロパティの `OnSuccess` (または `OnFailure`) `EventInvokeConfig`プロパティ`AWS::Serverless::Function`が指定され、送信先タイプが `SQS`であっても送信先 ARN が指定され*ていない場合*、 は `AWS::Lambda::EventInvokeConfig`および の CloudFormation リソース AWS SAM を生成します`AWS::SQS::Queue`。

**`AWS::Lambda::EventInvokeConfig`**  
*`LogicalId`: *`<function‑LogicalId>EventInvokeConfig`  
*参照可能なプロパティ: *該当なし (この CloudFormation リソースを参照`LogicalId`するには を使用する必要があります)

**`AWS::SQS::Queue`**  
*`LogicalId`: *`<function‑LogicalId>OnSuccessQueue` (または `<function‑LogicalId>OnFailureQueue`)  
*参照可能なプロパティ: *`<function‑LogicalId>.DestinationQueue`  
`OnSuccess` と `OnFailure` の両方が Amazon SQS イベントに指定されている場合、生成されたリソースを区別するには `LogicalId` を使用する必要があります。