CreateFunction - AWS Lambda

CreateFunction

Lambda 関数を作成します。関数を作成するには、デプロイパッケージ実行ロールが必要です。デプロイパッケージは、関数コードを含む .zip ファイルアーカイブまたはコンテナイメージです。実行ロールは、ログストリーミングのための Amazon CloudWatch Logs などの AWS のサービスと、リクエストトレーシングのための AWS X-Ray を使用する許可を関数に付与します。

デプロイパッケージがコンテナイメージの場合は、パッケージタイプを Image に設定します。コンテナイメージの場合、コードプロパティに Amazon ECR レジストリのコンテナイメージの URI を含める必要があります。ハンドラープロパティとランタイムプロパティを指定する必要はありません。

デプロイパッケージが.zip ファイルアーカイブの場合は、パッケージタイプを Zip に設定します。.zip ファイルアーカイブの場合、コードプロパティは .zip ファイルの場所を指定します。ハンドラープロパティとランタイムプロパティも指定する必要があります。デプロイパッケージのコードは、関数 (x86-64 または arm64) のターゲット命令セットアーキテクチャと互換性を持たせる必要があります。アーキテクチャを指定しない場合、デフォルト値は x86-64 になります。

関数を作成すると、Lambda はその関数のインスタンスとそのサポートリソースをプロビジョニングします。関数を VPC に接続する場合、このプロセスには 1 分ほどかかる場合があります。この間は、関数を呼び出したり変更したりすることはできません。GetFunctionConfiguration からのレスポンスの StateStateReasonStateReasonCode フィールドは、関数の呼び出し準備ができていることを示します。詳細については、「Lambda 関数の状態」を参照してください。

関数には未公開バージョンがあり、公開バージョンやエイリアスを持つことができます。関数のコードと設定を更新すると、未公開バージョンが変更されます。公開バージョンは、変更不可能な関数コードと設定のスナップショットです。エイリアスは、バージョンにマップする名前付きリソースです。このリソースは、別のバージョンにマップするために変更できます。Publish パラメータを使用して、初期設定から関数のバージョン 1 を作成します。

その他のパラメーターを使用すると、バージョン固有の関数レベルの設定を構成できます。バージョン固有の設定は、後で UpdateFunctionConfiguration により変更できます。関数レベルの設定は、関数の未公開バージョンと公開バージョンの両方に適用され、タグ (TagResource) と関数ごとの同時実行制限 (PutFunctionConcurrency) を含みます。

デプロイパッケージが .zip ファイルアーカイブの場合は、コード署名を使用できます。この関数のコード署名を有効にするには、コード署名構成の ARN を指定します。ユーザーが UpdateFunctionCode を使用してコードパッケージのデプロイを試みると、Lambda はそのコードパッケージに信頼できるパブリッシャーからの有効な署名があるかどうかをチェックします。code-signing 設定には、この関数の信頼できる発行元を定義する一連の署名プロファイルが含まれています。

別の AWS アカウントまたは AWS のサービスが関数を呼び出す場合は、AddPermission を使用して、リソースベースの AWS Identity and Access Management (IAM) ポリシーを作成することで許可を付与します。関数レベル、バージョン、エイリアスでアクセス許可を付与できます。

関数を直接呼び出すには、Invoke を使用します。他の AWS のサービスのイベントに応答して関数を呼び出すには、イベントソースマッピング (CreateEventSourceMapping) を作成するか、他のサービスで関数トリガーを設定します。詳細については、「Lambda 関数の呼び出し」を参照してください。

リクエストの構文

POST /2015-03-31/functions HTTP/1.1 Content-type: application/json { "Architectures": [ "string" ], "Code": { "ImageUri": "string", "S3Bucket": "string", "S3Key": "string", "S3ObjectVersion": "string", "ZipFile": blob }, "CodeSigningConfigArn": "string", "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Variables": { "string" : "string" } }, "EphemeralStorage": { "Size": number }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "FunctionName": "string", "Handler": "string", "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" }, "KMSKeyArn": "string", "Layers": [ "string" ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MemorySize": number, "PackageType": "string", "Publish": boolean, "Role": "string", "Runtime": "string", "SnapStart": { "ApplyOn": "string" }, "Tags": { "string" : "string" }, "Timeout": number, "TracingConfig": { "Mode": "string" }, "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ] } }

URI リクエストパラメータ

リクエストでは URI パラメータを使用しません。

リクエストボディ

リクエストは以下の JSON 形式のデータを受け入れます。

Architectures

関数がサポートする命令セットアーキテクチャです。有効な値 (arm64 または x86_64) の 1 つを含む文字列配列を入力します。デフォルト値は x86_64 です。

型: 文字列の配列

配列メンバー: 定数は 1 項目です。

有効な値: x86_64 | arm64

必須:いいえ

Code

関数のコード

型: FunctionCode オブジェクト

必須: はい

CodeSigningConfigArn

この関数のコード署名を有効にするには、コード署名設定の ARN を指定します。コード署名の設定には、一連の署名プロファイルが含まれており、このプロファイルにより、関数の信頼された発行元が定義されます。

型: 文字列

長さの制限: 最大長は 200 です。

パターン: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1}:\d{12}:code-signing-config:csc-[a-z0-9]{17}

必須: いいえ

DeadLetterConfig

処理に失敗したときに Lambda が非同期イベントを送信するキューまたはトピックを指定する、デッドレターキュー設定です。詳細については、「デッドレターキュー」を参照してください。

型: DeadLetterConfig オブジェクト

必須: いいえ

Description

関数の説明

型: 文字列

長さの制限: 最小長は 0 です。最大長は 256 です。

必須: いいえ

Environment

実行中に関数コードからアクセス可能な環境変数

型: Environment オブジェクト

必須: いいえ

EphemeralStorage

関数の /tmp ディレクトリのサイズ (MB 単位) です。デフォルト値は 512 ですが、512 から 10,240 MB の範囲内で任意の整数を指定できます。詳細については、「エフェメラルストレージの設定 (コンソール)」を参照してください。

型: EphemeralStorage オブジェクト

必須: いいえ

FileSystemConfigs

Amazon EFS ファイルシステムの接続設定

型: FileSystemConfig オブジェクトの配列

配列メンバー: 最大数は 1 項目です。

必須: いいえ

FunctionName

Lambda 関数の名前

名前の形式
  • 関数名my-function

  • 関数 ARNarn:aws:lambda:us-west-2:123456789012:function:my-function

  • 部分的な ARN123456789012:function:my-function

完全な ARN にのみ適用される長さの制限 関数名のみを指定する場合、64 文字の長さに制限されます。

型: 文字列

長さの制限: 最小長は 1 です。最大長は 140 です。

Pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

必須: はい

Handler

関数を実行するために Lambda が呼び出すコード内のメソッドの名前です。デプロイパッケージが .zip ファイルアーカイブの場合は、ハンドラーが必要です。形式にはファイル名を含めます。ランタイムに応じて、名前空間や他の修飾子を含めることもできます。詳細については、「Lambda プログラミングモデル」を参照してください。

型: 文字列

長さの制限:最大長は 128 です。

パターン: [^\s]+

必須: いいえ

ImageConfig

コンテナイメージ Dockerfile の値を上書きするコンテナイメージの設定値です。

型: ImageConfig オブジェクト

必須: いいえ

KMSKeyArn

関数の環境変数を暗号化するために使用される、AWS Key Management Service (AWS KMS) カスタマーマネージドキーの ARN です。Lambda SnapStart を有効にすると、Lambda はこのキーを関数のスナップショットの暗号化にも使用します。コンテナイメージを使用して関数をデプロイする場合、Lambda はデプロイ時にこのキーを使用して関数を暗号化します。これは、Amazon Elastic Container Registry (Amazon ECR) でコンテナイメージを保護するために使用されるキーと同じキーではないことに注意してください。カスタマーマネージドキーを提供しない場合、Lambda はデフォルトのサービスキーを使用します。

型: 文字列

パターン: (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

必須: いいえ

Layers

関数の実行環境に追加する関数レイヤーのリストです。その ARN ごとに各レイヤーを指定します (バージョンも含めます)。

型: 文字列の配列

長さの制限: 最小長は 1 です。最大長は 140 です。

パターン: arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+

必須: いいえ

LoggingConfig

関数の Amazon CloudWatch Logs 構成の設定。

型: LoggingConfig オブジェクト

必須: いいえ

MemorySize

ランタイム時に関数で使用できるメモリの量です。関数のメモリを増やすと、関数の CPU 割り当ても増えます。デフォルト値は 128 MB です。値には、1 MB の任意の倍数を指定できます。

型: 整数

値の範囲: 最小値 は 128 です。最大値は 10,240 です。

必須: いいえ

PackageType

デプロイパッケージのタイプ コンテナイメージでは Image に設定し、.zip ファイルアーカイブでは Zip に設定します。

型: 文字列

有効な値: Zip | Image

必須:いいえ

Publish

true に設定すると、作成中に関数の最初のバージョンが公開されます。

型: ブール値

必須: いいえ

Role

関数の実行ロールの Amazon リソースネーム (ARN)

型: 文字列

Pattern: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

必須: はい

Runtime

関数のランタイムの識別子 デプロイパッケージが .zip ファイルアーカイブの場合は、ランタイムが必要です。

以下のリストには、廃止されたランタイムが含まれています。詳細については、「廃止されたランタイムでのポリシー」を参照してください。

型: 文字列

有効な値: nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

必須:いいえ

SnapStart

関数の SnapStart 設定です。

型: SnapStart オブジェクト

必須: いいえ

Tags

関数に適用するタグのリスト

型: 文字列から文字列へのマッピング

必須: いいえ

Timeout

Lambda が関数を停止するまでに関数に許可する実行時間 (秒)。デフォルト値は 3 秒です。最大許容値は 900 秒です。詳細については、「Lambda 実行環境」を参照してください。

型: 整数

有効な範囲: 最小値 は 1 です。

必須: いいえ

TracingConfig

ModeActive に設定し、X-Ray で着信リクエストのサブセットをサンプリングおよびトレースします。

型: TracingConfig オブジェクト

必須: いいえ

VpcConfig

VPC の AWS リソースへのネットワーク接続の場合は、VPC のセキュリティグループとサブネットのリストを指定します。関数を VPC に接続すると、関数はその VPC 経由でしかリソースとインターネットにアクセスできません。詳細については、「VPC 内のリソースにアクセスするように Lambda 関数を設定する」を参照してください。

型: VpcConfig オブジェクト

必須: いいえ

レスポンスの構文

HTTP/1.1 201 Content-type: application/json { "Architectures": [ "string" ], "CodeSha256": "string", "CodeSize": number, "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Error": { "ErrorCode": "string", "Message": "string" }, "Variables": { "string" : "string" } }, "EphemeralStorage": { "Size": number }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "FunctionArn": "string", "FunctionName": "string", "Handler": "string", "ImageConfigResponse": { "Error": { "ErrorCode": "string", "Message": "string" }, "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" } }, "KMSKeyArn": "string", "LastModified": "string", "LastUpdateStatus": "string", "LastUpdateStatusReason": "string", "LastUpdateStatusReasonCode": "string", "Layers": [ { "Arn": "string", "CodeSize": number, "SigningJobArn": "string", "SigningProfileVersionArn": "string" } ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MasterArn": "string", "MemorySize": number, "PackageType": "string", "RevisionId": "string", "Role": "string", "Runtime": "string", "RuntimeVersionConfig": { "Error": { "ErrorCode": "string", "Message": "string" }, "RuntimeVersionArn": "string" }, "SigningJobArn": "string", "SigningProfileVersionArn": "string", "SnapStart": { "ApplyOn": "string", "OptimizationStatus": "string" }, "State": "string", "StateReason": "string", "StateReasonCode": "string", "Timeout": number, "TracingConfig": { "Mode": "string" }, "Version": "string", "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ], "VpcId": "string" } }

レスポンス要素

アクションが成功すると、HTTP 201 レスポンスが返されます。

サービスから以下のデータが JSON 形式で返されます。

Architectures

関数がサポートする命令セットアーキテクチャです。アーキテクチャは、有効な値の 1 つを含む文字列配列です。デフォルトアーキテクチャ値はx86_64です。

型: 文字列の配列

配列メンバー: 定数は 1 項目です。

有効な値: x86_64 | arm64

CodeSha256

関数のデプロイパッケージの SHA256 ハッシュ

型: 文字列

CodeSize

関数のデプロイパッケージのサイズ (バイト単位)

型: Long

DeadLetterConfig

関数のデッドレターキュー

型: DeadLetterConfig オブジェクト

Description

関数の説明

型: 文字列

長さの制限: 最小長は 0 です。最大長は 256 です。

Environment

関数の環境変数 AWS CloudTrail ログから除外。

型: EnvironmentResponse オブジェクト

EphemeralStorage

関数の /tmp ディレクトリのサイズ (MB 単位) です。デフォルト値は 512 ですが、512 から 10,240 MB の範囲内で任意の整数を指定できます。詳細については、「エフェメラルストレージの設定 (コンソール)」を参照してください。

型: EphemeralStorage オブジェクト

FileSystemConfigs

Amazon EFS ファイルシステムの接続設定

型: FileSystemConfig オブジェクトの配列

配列メンバー: 最大数は 1 項目です。

FunctionArn

関数の Amazon リソースネーム (ARN)

型: 文字列

パターン: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_\.]+(:(\$LATEST|[a-zA-Z0-9-_]+))?

FunctionName

関数の名前

型: 文字列

長さの制限: 最小長は 1 です。最大長は 170 です。

パターン: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Handler

Lambda が関数の実行を開始するために呼び出す関数です。

型: 文字列

長さの制限:最大長は 128 です。

パターン: [^\s]+

ImageConfigResponse

関数のイメージ設定値

型: ImageConfigResponse オブジェクト

KMSKeyArn

関数の環境変数を暗号化するために使用される AWS KMS key。Lambda SnapStart を有効にすると、このキーは関数のスナップショットの暗号化にも使用されます。このキーが返されるのは、カスタマーマネージドキーを設定している場合のみです。

型: 文字列

パターン: (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

LastModified

関数が最後に更新された日付と時刻 (ISO-8601 形式 (YYYY-MM-DDThh:mm:ss.sTZD))

型: 文字列

LastUpdateStatus

関数で最後に実行された更新のステータス これは、関数の作成完了後、最初に Successful に設定されます。

型: 文字列

有効な値: Successful | Failed | InProgress

LastUpdateStatusReason

関数で最後に実行された更新の理由

型: 文字列

LastUpdateStatusReasonCode

関数で最後に実行された更新の理由コード

型: 文字列

有効な値: EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Layers

関数のレイヤー

タイプ: Layer オブジェクトの配列

LoggingConfig

関数の Amazon CloudWatch Logs 構成の設定。

型: LoggingConfig オブジェクト

MasterArn

Lambda@Edge 関数の場合、メイン関数の ARN。

型: 文字列

パターン: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_]+(:(\$LATEST|[a-zA-Z0-9-_]+))?

MemorySize

ランタイム時に関数で使用できるメモリの量

型: 整数

値の範囲: 最小値 は 128 です。最大値は 10,240 です。

PackageType

デプロイパッケージのタイプ コンテナイメージでは Image に設定し、.zip ファイルアーカイブでは Zip を設定します。

型: 文字列

有効な値: Zip | Image

RevisionId

関数またはエイリアスの最後に更新されたリビジョン

型: 文字列

Role

関数の実行ロール

型: 文字列

パターン: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Runtime

関数のランタイムの識別子 デプロイパッケージが .zip ファイルアーカイブの場合は、ランタイムが必要です。

以下のリストには、廃止されたランタイムが含まれています。詳細については、「廃止されたランタイムでのポリシー」を参照してください。

型: 文字列

有効な値: nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

RuntimeVersionConfig

ランタイムの ARN と発生したエラー

型: RuntimeVersionConfig オブジェクト

SigningJobArn

署名ジョブの ARN

型: 文字列

パターン: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SigningProfileVersionArn

署名プロファイルバージョンの ARN

型: 文字列

パターン: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SnapStart

ApplyOnPublishedVersions に設定すると、関数バージョンを発行するときに、初期化された実行環境のスナップショットが作成されます。詳細については、「Improving startup performance with Lambda SnapStart」(Lambda SnapStart を使用した起動パフォーマンスの向上) を参照してください。

型: SnapStartResponse オブジェクト

State

関数の現在の状態 状態が Inactive の場合、関数を呼び出すことで再アクティブ化できます。

型: 文字列

有効な値: Pending | Active | Inactive | Failed

StateReason

関数の現在の状態の理由

型: 文字列

StateReasonCode

関数の現在の状態の理由コード コードが Creating のときは、関数を呼び出したり変更したりすることはできません。

型: 文字列

有効な値: Idle | Creating | Restoring | EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Timeout

Lambda が関数を停止するまでに関数に許可する実行時間 (秒) です。

型: 整数

有効範囲: 最小値 は 1

TracingConfig

関数の AWS X-Ray トレース設定

型: TracingConfigResponse オブジェクト

Version

Lambda 関数のバージョン

型: 文字列

長さの制限: 最小長は 1 です。最大長は 1,024 です。

パターン: (\$LATEST|[0-9]+)

VpcConfig

関数のネットワーク設定

型: VpcConfigResponse オブジェクト

エラー

すべてのアクションに共通のエラーについては、「共通エラー」を参照してください。

CodeSigningConfigNotFoundException

指定されたコード署名設定が存在しません。

HTTP ステータスコード: 404

CodeStorageExceededException

AWS アカウントが、最大合計コードサイズを超過しました。詳細については、「Lambda クォータ」を参照してください。

HTTP ステータスコード:400

CodeVerificationFailedException

コード署名が、署名の不一致または有効期限の検証チェックの 1 つ以上に失敗し、コード署名ポリシーが ENSORCE に設定されています。Lambda はデプロイをブロックします。

HTTP ステータスコード:400

InvalidCodeSignatureException

コード署名が整合性チェックに失敗しました。整合性チェックに失敗すると、Lambda は、コード署名ポリシーが WARN に設定されている場合でも、デプロイをブロックします。

HTTP ステータスコード:400

InvalidParameterValueException

リクエストに含まれているパラメータの 1 つが無効です。

HTTP ステータスコード:400

ResourceConflictException

リソースが既に存在しているか、別のオペレーションが進行中です。

HTTP ステータスコード: 409

ResourceNotFoundException

リクエストで指定されたリソースは存在しません。

HTTP ステータスコード: 404

ServiceException

AWS Lambda サービスで内部エラーが発生しました。

HTTP ステータスコード: 500

TooManyRequestsException

リクエストスループット制限を超えました。詳細については、「Lambda クォータ」を参照してください。

HTTP ステータスコード: 429

以下の資料も参照してください。

言語固有の AWS SDK のいずれかでこの API を使用する方法の詳細については、以下を参照してください。