本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
UpdateFunctionConfiguration
修改 Lambda 函數的版本特定設定。
當您更新函數時,Lambda 會佈建函數執行個體及其支援的資源。如果您的函數連線到 VPC,則此過程可能需要一分鐘。在此期間,您無法修改函數,但是仍可調用它。來自 GetFunctionConfiguration 的回應中的 LastUpdateStatus
、LastUpdateStatusReason
以及 LastUpdateStatusReasonCode
欄位指示更新何時完成,以及函數正在使用新組態處理事件。如需詳細資訊,請參閱 Lambda 函數狀態。
這些設定可能會因函數的版本而有所不同,並在您發佈版本時鎖定。您無法修改已發佈版本的組態,只能修改未發佈版本。
若要設定函數並行,請使用 PutFunctionConcurrency。若要為 AWS 帳戶或 AWS 服務授與調用許可,請使用 AddPermission。
請求語法
PUT /2015-03-31/functions/FunctionName
/configuration HTTP/1.1
Content-type: application/json
{
"DeadLetterConfig": {
"TargetArn": "string
"
},
"Description": "string
",
"Environment": {
"Variables": {
"string
" : "string
"
}
},
"EphemeralStorage": {
"Size": number
},
"FileSystemConfigs": [
{
"Arn": "string
",
"LocalMountPath": "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
,
"RevisionId": "string
",
"Role": "string
",
"Runtime": "string
",
"SnapStart": {
"ApplyOn": "string
"
},
"Timeout": number
,
"TracingConfig": {
"Mode": "string
"
},
"VpcConfig": {
"Ipv6AllowedForDualStack": boolean
,
"SecurityGroupIds": [ "string
" ],
"SubnetIds": [ "string
" ]
}
}
URI 請求參數
請求會使用下列 URI 參數。
- FunctionName
-
Lambda 函數的名稱。
名稱格式
-
函數名稱 -
my-function
。 -
函數 ARN -
arn:aws:lambda:us-west-2:123456789012:function:my-function
。 -
部分 ARN -
123456789012:function:my-function
。
長度限制條件僅會套用到完整的 ARN。若您僅指定函數名稱,則其長度限制為 64 個字元。
長度限制:長度下限為 1。長度上限為 140。
模式:
(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-_]+))?
必要:是
-
請求主體
請求接受採用 JSON 格式的下列資料。
- DeadLetterConfig
-
無效字母佇列組態,可指定在處理失敗時,Lambda 傳送的非同步事件的佇列或主題。如需詳細資訊,請參閱無效字母佇列。
類型:DeadLetterConfig 物件
必要:否
- Description
-
函數的敘述。
類型:字串
長度限制:長度下限為 0。長度上限為 256。
必要:否
- Environment
-
環境變數,可在執行期間透過函數程式碼取得。
類型:Environment 物件
必要:否
- EphemeralStorage
-
函數的
/tmp
目錄大小,以 MB 為單位。預設值為 512,但可以是介於 512 和 10,240 MB 之間的任何非負整數。如需詳細資訊,請參閱設定暫時性儲存 (主控台)。類型:EphemeralStorage 物件
必要:否
- FileSystemConfigs
-
Amazon EFS 檔案系統的連線設定。
類型:FileSystemConfig 物件陣列
陣列成員:最多 1 個項目。
必要:否
- Handler
-
程式碼中的方法名稱,Lambda 會呼叫此程式碼來執行您的函數。如果部署套件是 .zip 檔案封存,則需要處理常式。格式包含檔案名稱。它也可以包含命名空間和其他限定詞,取決於執行時間。如需詳細資訊,請參閱 Lambda 程式設計模型。
類型:字串
長度限制:長度上限為 128。
模式:
[^\s]+
必要:否
- ImageConfig
-
容器映像組態值,它們會覆寫容器映像 Docker 檔案中的值。
類型:ImageConfig 物件
必要:否
- KMSKeyArn
-
AWS Key Management Service (AWS KMS) 客戶受管金鑰的 ARN,用於加密函數的環境變數。啟動 Lambda SnapStart 時,Lambda 也會使用此金鑰來加密函數的快照集。如果您使用容器映像部署函數,Lambda 也會在部署函數時使用此金鑰來加密函數。請注意,這與在 Amazon Elastic Container Registry (Amazon ECR) 中用於保護容器映像的金鑰不同。若沒有提供客戶受管金鑰,Lambda 會使用預設服務金鑰。
類型:String
模式:
(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()
必要:否
- Layers
-
要新增到函數執行環境的函數 Layer。依 ARN 指定每個 layer (包括版本)。
類型:字串陣列
長度限制:長度下限為 1。長度上限為 140。
模式:
arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+
必要:否
- LoggingConfig
-
該功能的 Amazon CloudWatch 日誌配置設置。
類型:LoggingConfig 物件
必要:否
- MemorySize
-
可供函數在執行階段使用的記憶體量。增加函數記憶體也會增加它的 CPU 配置。預設值為 128 MB。該值可以是 1 MB 的任何倍數。
類型:整數
有效範圍:最小值為 128。最大值為 10240。
必要:否
- RevisionId
-
只有在修訂版本 ID 符合指定的 ID 時才更新函數。使用此選項來避免修改自您最近一次讀取之後產生變更的函數。
類型:字串
必要:否
- Role
-
函數執行角色的 Amazon Resource Name (ARN)。
類型:String
模式:
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 物件
必要:否
- Timeout
-
Lambda 在停止函數前允許函數執行的時間 (以秒為單位)。預設為 3 秒。允許的最大值為 900 秒。如需詳細資訊,請參閱 Lambda 執行環境。
類型:整數
有效範圍:最小值為 1。
必要:否
- TracingConfig
-
將
Mode
設為Active
,使用 X-Ray 取樣及追蹤一部分的傳入請求。類型:TracingConfig 物件
必要:否
- VpcConfig
-
對於 VPC 中 AWS 資源的網路連線,指定 VPC 中安全群組和子網路的清單。將函數連接到 VPC 時,只能透過該 VPC 存取資源和網際網路。如需詳細資訊,請參閱設定 Lambda 函數以存取 VPC 中的資源。
類型:VpcConfig 物件
必要:否
回應語法
HTTP/1.1 200
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 200 回應。
服務會傳回下列 JSON 格式的資料。
- Architectures
-
函數支援的指令集架構。架構是具有其中一個有效值的字串陣列。預設架構值為
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 Resource Name (ARN)。
類型:String
模式:
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 時,也會使用此金鑰來加密函數的快照集。只有在您已設定客戶受管金鑰的情況下,才會傳回此金鑰。
類型:String
模式:
(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 日誌配置設置。
類型:LoggingConfig 物件
- MasterArn
-
若是 Lambda@Edge 函數,則為主函數的 ARN。
類型:String
模式:
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。最大值為 10240。
- PackageType
-
部署套件的類型。針對容器影像設定為
Image
,並針對 .zip 檔案封存設定Zip
。類型:字串
有效值:
Zip | Image
- RevisionId
-
函數或別名的最新更新修訂版。
類型:字串
- Role
-
函數的執行角色。
類型:String
模式:
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。
類型:String
模式:
arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
- SigningProfileVersionArn
-
簽署描述檔版本的 ARN。
類型:String
模式:
arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
- SnapStart
-
將
ApplyOn
設為PublishedVersions
,即可在您發佈函數版本時建立初始化執行環境的快照。如需詳細資訊,請參閱使用 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。長度上限為 1024。
模式:
(\$LATEST|[0-9]+)
- VpcConfig
-
函數的聯網設定。
類型:VpcConfigResponse 物件
錯誤
如需所有動作常見錯誤的資訊,請參閱常見錯誤。
- CodeSigningConfigNotFoundException
-
指定的程式碼簽署組態不存在。
HTTP 狀態碼:404
- CodeVerificationFailedException
-
程式碼簽章無法進行一個或多個驗證檢查,因為簽章不符或到期,程式碼簽署政策設定為 ENFORCE。Lambda 會阻止部署。
HTTP 狀態碼:400
- InvalidCodeSignatureException
-
程式碼簽章無法進行完整性檢查。如果完整性檢查失敗,即使程式碼簽署政策設定為 WARN,Lambda 仍會阻止部署。
HTTP 狀態碼:400
- InvalidParameterValueException
-
請求中的其中一個參數無效。
HTTP 狀態碼:400
- PreconditionFailedException
-
RevisionId 提供的與 Lambda 函數或別名 RevisionId 的最新版本不相符。呼叫
GetFunction
或GetAlias
API 作業以擷取資源 RevisionId 的最新資源。HTTP 狀態碼:412
- ResourceConflictException
-
資源已存在,或另一個操作正在進行中。
HTTP 狀態碼:409
- ResourceNotFoundException
-
請求中指定的資源不存在。
HTTP 狀態碼:404
- ServiceException
-
AWS Lambda 服務發生內部錯誤。
HTTP 狀態碼:500
- TooManyRequestsException
-
超出請求輸送量限制。如需詳細資訊,請參閱 Lambda 配額。
HTTP 狀態碼:429
另請參閱
如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊,請參閱下列說明: