翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS::Serverless::WebFunction
マネージドエンドポイントを介して HTTP リクエストを処理する AWS Lambda Web 関数を作成します。呼び出しとイベントに応答して実行される Lambda イベント関数とは異なり、ウェブ関数はウェブサーバーを実行し、HTTP リクエストを直接受信します。単一の からAWS::Serverless::WebFunction、 は Web Function、コードと設定を含むイミュータブルなリビジョン、およびトラフィックを 1 つ以上のリビジョンにルーティングするエンドポイント AWS SAM を生成します。
注記
にデプロイすると AWS CloudFormation、 は AWS SAM リソースを CloudFormation リソース AWS SAM に変換します。詳細については、「の生成済み CloudFormation リソース AWS SAM」を参照してください。
重要
関数コードは、 AWS_LAMBDA_HTTP_ENDPOINT環境変数のホストとポートをリッスンする HTTP サーバーを実行する必要があります。ランタイムは を設定しませんPORT。デフォルトでは、ランタイムはデプロイパッケージのルートindex.jsで実行されます。EntryPoint を使用して別のファイルを実行します。
重要
デプロイパッケージを保持する Amazon S3 バケットは、次の要件を満たしている必要があります。
-
バージョニングが有効になっています。
-
バケットポリシーは、
s3:GetObjectおよび のs3:GetObjectVersionアクセス許可を付与lambda.amazonaws.comします。ポリシーの範囲は、 など、関数のリビジョンaws:SourceArnに一致するArnLike条件を使用することをお勧めしますarn:aws:lambda:。us-east-1:111122223333:web-function/my-function/revision/* -
オブジェクトが SSE-KMS で暗号化されている場合、キーポリシーで
lambda.amazonaws.comの呼び出しが許可されているカスタマーマネージドキーを使用しますkms:Decrypt。Amazon S3 (aws/s3) の AWS マネージドキーは、キーポリシーを変更できないため、サポートされていません。
バケットポリシーの例については、 AWS Lambda デベロッパーガイドの「Lambda のバケットポリシー」を参照してください。
CodeUri は Amazon S3 のオブジェクトを参照する必要があります。sam build および sam package コマンドは、このリソースのローカルパスをサポートしていません。
構文
AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。
YAML
Type: AWS::Serverless::WebFunction Properties: AuthType:StringAutoDeploymentMode:StringCodeUri:String | CodeUriEgressNetworkConnectorArn:StringEndpointDescription:StringEndpointName:StringEndpointType:StringEntryPoint:StringEnvironmentVariables:MapExecutionRoleArn:StringFunctionName:StringInlineCode:StringKmsKeyArn:StringLoggingConfig:MapMaxConcurrencyPerEnvironment:IntegerReplicaRegions:List | ReplicaRegionsRevisionDescription:StringRevisionWeights:RevisionWeightsRuntime:StringScalingConfig:MapTags:MapThrottleConfig:MapTimeout:Integer
プロパティ
-
AuthType -
エンドポイントがリクエストを承認する方法。
-
IamAuth: Lambda は、署名バージョン 4 と IAM を使用してリクエストを承認します。呼び出し元には、 関数のリソースベースのポリシーを通じて付与された アクセスlambda:InvokeWebFunctionEndpoint許可が必要です。 -
ApplicationManaged: エンドポイントはパブリックです。関数は、すべてのリクエスト自体を承認する必要があります。
有効な値:
IamAuth、ApplicationManaged|タイプ: 文字列
必須: はい
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのAuthTypeプロパティに直接渡されます。 -
-
AutoDeploymentMode -
エンドポイントがリビジョン間でトラフィックをルーティングする方法。
-
LatestRevision: このデプロイが作成するリビジョンにトラフィックの 100% を送信します。 -
Disabled: RevisionWeights に従ってトラフィックをルーティングします。
使用できる値と、
RevisionWeightsが必要かどうかは、EndpointType によって異なります。-
HomeRegion: いずれかの値を使用します。ではDisabled、RevisionWeightsが必要です。 -
MultiRegionまたはPerRegion: を使用しますDisabled。を省略するとRevisionWeights、エンドポイントはトラフィックの 100% を同じスタックで作成されたリビジョンにルーティングするため、エンドポイントを 1 回のデプロイで作成できます。トラフィックは、後のデプロイで作成されるリビジョンには移動しません。
がテンプレートを AWS SAM 変換するとき、値は解決する必要があります。パラメータ
Refへの がサポートされています。その他の組み込み関数はサポートされていません。有効な値:
LatestRevision、Disabled|タイプ: 文字列
必須: いいえ
デフォルト:
LatestRevisionCloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。
-
-
CodeUri -
デプロイパッケージの Amazon S3 の場所。
Bucket、、KeyおよびオプションのVersionキーを使用してs3://URI またはオブジェクトを指定します。バケットの要件については、このページの上部にある注記を参照してください。bucket/keyタイプ: 文字列 | CodeUri
必須: はい
CloudFormation 互換性: このプロパティは resource
AWS::Lambda::WebFunctionRevision. AWS SAM converts ans3://URI intoBucket、Key、および のBuildConfig.CodeConfig.S3Objectプロパティに似ていますVersionId。 -
EgressNetworkConnectorArn -
関数のアウトバウンドトラフィックを VPC 経由でルーティングするネットワークコネクタのバージョン修飾 ARN。ARN は、 などのバージョン番号で終わる必要があります
arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1。同じテンプレートで最新バージョンのコネクタを使用するには、 を指定します!GetAtt。コネクタの ComputeTypes は である必要がありますMyConnector.LatestVersionArnWebFunction。リテラル文字列を指定すると、 AWS SAM はそれがバージョン認定ネットワークコネクタ ARN であることを確認します。組み込み関数は、サービスによって渡され、検証されます。この値を変更すると、新しいリビジョンが作成されます。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.EgressNetworkConnectorArnプロパティに直接渡されます。 -
EndpointDescription -
エンドポイントの説明。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのDescriptionプロパティに直接渡されます。 -
EndpointName -
エンドポイントの名前。名前を変更すると、エンドポイントが置き換えられます。を変更するとエンドポイント
EndpointTypeも置き換えられるため、EndpointNameは同時に変更します。 CloudFormation は、新しい名前のないカスタム名前のリソースを置き換えることはできません。タイプ: 文字列
必須: いいえ
デフォルト:
prodCloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのEndpointNameプロパティに直接渡されます。 -
EndpointType -
エンドポイントがトラフィックを処理する場所。
-
HomeRegion: スタックのリージョンから を提供します。 -
MultiRegion: は、関数を ReplicaRegions のリージョンにレプリケートし、各リクエストを最も近いリージョンにルーティングします。 -
PerRegion: は、レプリカリージョンごとに個別のエンドポイントを公開します。
MultiRegionと にはPerRegionが必要ですAutoDeploymentMode: Disabled。有効な値:
HomeRegion、MultiRegion、PerRegionタイプ: 文字列
必須: いいえ
デフォルト:
HomeRegionCloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのEndpointTypeプロパティに直接渡されます。 -
-
EntryPoint -
デプロイパッケージのルートを基準にして、ランタイムが実行するファイル。 AWS SAM はそれをリザーブド
AWS_LAMBDA_NODEJS_ENTRYPOINT環境変数のランタイムに渡します。EnvironmentVariablesが組み込み関数である場合、このプロパティを使用することはできません。タイプ: 文字列
必須: いいえ
デフォルト:
index.jsCloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。
-
EnvironmentVariables -
リビジョンの環境変数として設定するキーと値のペア。
-
キーは文字で始まり、文字、数字、アンダースコアのみを含める必要があります。
-
値は空ではなく、最大 4,096 文字である必要があります。
-
AWS SAM は数値とブール値を文字列に変換します。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.EnvironmentVariablesプロパティに直接渡されます。 -
-
ExecutionRoleArn -
関数が実行時に引き受ける IAM ロールの ARN。ロールを指定しない場合、 は
AWSLambdaBasicExecutionRoleマネージドポリシーと論理 ID が のロール AWS SAM を作成します。<resource-logical-id>Roleタイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.ExecutionRoleArnプロパティに直接渡されます。 -
FunctionName -
関数の名前 関数名は、すべてのリージョンでアカウント内で一意である必要があります。名前を指定しない場合、 は論理 ID とスタック ID から 64 文字以内で AWS SAM 名前を生成します。名前を変更すると、関数、そのリビジョン、およびそのエンドポイントが置き換えられます。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunction、、AWS::Lambda::WebFunctionRevisionおよびAWS::Lambda::WebFunctionEndpointリソースのFunctionNameプロパティに直接渡されます。 -
InlineCode -
AWS::Serverless::WebFunctionをサポートしていません。CodeUri を使用します。タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。
-
KmsKeyArn -
リビジョンの環境変数の暗号化に使用される AWS KMS キーの ARN。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのKmsKeyArnプロパティに直接渡されます。 -
LoggingConfig -
ロググループやログレベルなど、リビジョンのログ記録設定。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.TelemetryConfig.LoggingConfigプロパティに直接渡されます。 -
MaxConcurrencyPerEnvironment -
各実行環境が処理する同時リクエストの最大数。
タイプ: 整数
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.MaxConcurrencyPerEnvironmentプロパティに直接渡されます。 -
ReplicaRegions -
関数をレプリケートするリージョン。このプロパティは、
MultiRegionおよびPerRegionエンドポイントで使用します。リージョンコードとリージョングループのリスト、またはIncludeRegionsとオプションの を持つオブジェクトを指定しますExcludeRegions。タイプ: List | ReplicaRegions
必須: いいえ
CloudFormation 互換性: このプロパティは resource
AWS::Lambda::WebFunctionEndpoint. AWS SAM expands リージョングループのRegionsプロパティに似ており、 を適用ExcludeRegionsしてリージョンリストを生成します。 -
RevisionDescription -
このデプロイが作成するリビジョンの説明。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのDescriptionプロパティに直接渡されます。 -
RevisionWeights -
リビジョン IDsトラフィックの重みのマップ。が の場合
AutoDeploymentMode、このプロパティを使用しますDisabled。最大 2 つのリビジョンを指定します。各重みは 1~100 の整数で、重みの合計は最大 100 である必要があります。タイプ: RevisionWeights
必須: 条件的。
AutoDeploymentModeがDisabledで、EndpointTypeが の場合に必要ですHomeRegion。CloudFormation 互換性: このプロパティは resource. AWS SAM converts の
RevisionWeightsプロパティに似ていますAWS::Lambda::WebFunctionEndpoint。マップを オブジェクトRevisionIdとWeightオブジェクトのリストに変換します。 -
Runtime -
関数のランタイム。例:
nodejs24.x。タイプ: 文字列
必須: はい
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのBuildConfig.RuntimeConfig.Runtimeプロパティに直接渡されます。 -
ScalingConfig -
実行環境の最大数など、エンドポイントのスケーリング設定。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのScalingConfigプロパティに直接渡されます。 -
関数と が AWS SAM 生成する実行ロールに追加されたタグを指定するキーと値のペアのマップ。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionリソースのTagsプロパティに似ています。の AWS SAMTagsプロパティはキーと値のペアで構成されます ( CloudFormation このプロパティはTagオブジェクトのリストで構成されます)。また、 は、 関数とそれに対して生成されるデフォルトのロールにlambda:createdBy:SAMタグ AWS SAM を自動的に追加します。 -
ThrottleConfig -
最大リクエストレートなど、エンドポイントのスロットリング設定。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionEndpointリソースのThrottleConfigプロパティに直接渡されます。 -
Timeout -
リクエストごとに関数が実行できる最大時間を秒単位で表します。有効な値は 3~900 です。
タイプ: 整数
必須: いいえ
デフォルト:
30CloudFormation 互換性: このプロパティは、
AWS::Lambda::WebFunctionRevisionリソースのServiceConfig.TimeoutSecondsプロパティに直接渡されます。
戻り値
参照番号
このリソースの論理 ID がRef組み込み関数に提供されると、ウェブ関数の ARN が返されます。関数名が必要な場合は、FunctionName代わりに の値を使用します。
Ref 関数の使用方法の詳細については、「AWS CloudFormation ユーザーガイド」の「Ref」を参照してください。
Fn::GetAtt
Fn::GetAtt は、このタイプの指定された属性の値を返します。利用可能な属性とサンプル戻り値は以下のとおりです。
Fn::GetAtt の使用の詳細については、「AWS CloudFormation ユーザーガイド」の「Fn::GetAtt」を参照してください。
FunctionArn-
ウェブ関数の Amazon リソースネーム (ARN)。
State-
ウェブ関数の現在の状態。
StateReason-
ウェブ関数の現在の状態の理由。
CreatedAt-
ウェブ関数が作成された時刻。
UpdatedAt-
Web 関数が最後に更新された時刻。
が AWS SAM 生成するリビジョンまたはエンドポイントを参照するには、論理 IDsおよび を使用します<resource-logical-id>Revision。たとえば、 は論理 ID を持つウェブ関数のエンドポイントのドメイン名<resource-logical-id>Endpoint!GetAtt MyWebFunctionEndpoint.DomainNameを返しますMyWebFunction。詳細については、「CloudFormation AWS::Serverless::WebFunctionが指定されているときに生成される リソース」を参照してください。
例
基本的なウェブ関数
次の例では、スタックの Region に IAM 認可エンドポイントを持つ Web 関数を作成します。 は実行ロール AWS SAM を生成し、エンドポイントはすべてのトラフィックをこのデプロイが作成するリビジョンにルーティングします。
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idTimeout: 30 Outputs: EndpointUrl: Value: !Sub https://${MyWebFunctionEndpoint.DomainName}
2 つのリビジョン間でトラフィックを分割する
次の例では、自動デプロイを無効にし、トラフィックの 90% を既存のリビジョンに送信し、10% を別のリビジョンに送信します。両方のリビジョンがすでに存在している必要があります。
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: s3://amzn-s3-demo-bucket/webfn-v2.zip AutoDeploymentMode: Disabled RevisionWeights: rev-abc123: 90 rev-def456: 10
マルチリージョンウェブ関数
次の例では、 関数を を除く米国リージョンにレプリケートus-west-1し、各リクエストを最も近いリージョンにルーティングします。RevisionWeights は省略されるため、エンドポイントはすべてのトラフィックをこのスタックで作成されたリビジョンにルーティングします。
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idEndpointName: prodmr EndpointType: MultiRegion AutoDeploymentMode: Disabled ReplicaRegions: IncludeRegions: - US ExcludeRegions: - us-west-1
VPC 出力を使用したウェブ関数
次の例では、Web Functions のネットワークコネクタを作成し、コネクタのサブネットとセキュリティグループを介して関数のアウトバウンドトラフィックをルーティングします。
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyConnector: Type: AWS::Serverless::NetworkConnector Properties: ComputeTypes: - WebFunction VpcConfig: SubnetIds: - subnet-0abc123def4567890 - subnet-0def456abc7890123 SecurityGroupIds: - sg-0abc1234abcde0001 NetworkProtocol: IPv4 MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idEgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn