UpdateFunctionCode - AWS Lambda

UpdateFunctionCode

Lambda 함수의 코드를 업데이트합니다. 함수에 대해 코드 서명을 사용하도록 설정한 경우 신뢰할 수 있는 게시자가 코드 패키지에 서명해야 합니다. 자세한 내용은 Lambda의 코드 서명 구성을 참조하세요.

함수의 패키지 유형이 Image인 경우 ImageUri의 코드 패키지를 Amazon ECR 레지스트리에 있는 컨테이너 이미지의 URI로 지정해야 합니다.

함수의 패키지 유형이 Zip인 경우 배포 패키지를 .zip 파일 아카이브로 지정해야 합니다. Amazon S3 버킷과 코드 .zip 파일 위치의 키를 입력합니다. ZipFile 필드를 사용하여 함수 코드를 인라인으로 제공할 수도 있습니다.

배포 패키지의 코드는 함수의 대상 명령 세트 아키텍처(x86-64 또는 arm64)와 호환되어야 합니다.

버전을 게시하면 함수의 코드가 잠깁니다. 게시된 버전의 코드는 수정할 수 없으며 게시되지 않은 버전만 수정할 수 있습니다.

참고

컨테이너 이미지로 정의된 함수의 경우 Lambda는 이미지 태그를 이미지 다이제스트로 귀결(resolve)합니다. Amazon ECR에서는 이미지 태그를 새 이미지로 업데이트해도 Lambda는 함수를 자동으로 업데이트하지 않습니다.

요청 구문

PUT /2015-03-31/functions/FunctionName/code HTTP/1.1 Content-type: application/json { "Architectures": [ "string" ], "DryRun": boolean, "ImageUri": "string", "Publish": boolean, "RevisionId": "string", "S3Bucket": "string", "S3Key": "string", "S3ObjectVersion": "string", "ZipFile": blob }

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입니다.

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-_]+))?

필수 항목 여부: 예

요청 본문

요청은 JSON 형식으로 다음 데이터를 받습니다.

Architectures

함수가 지원하는 명령 세트 아키텍처입니다. 유효한 값(arm64 또는 x86_64) 중 하나를 사용하여 문자열 배열을 입력합니다. 기본 값은 x86_64입니다.

유형: 문자열 어레이

배열 멤버: 고정된 항목 수는 1개입니다.

유효 값: x86_64 | arm64

필수 항목 여부: 아니요

DryRun

함수 코드를 수정하지 않고 요청 파라미터 및 액세스 권한의 유효성을 검사하려면 true로 설정합니다.

Type: 부울

필수 항목 여부: 아니요

ImageUri

Amazon ECR 레지스트리에 있는 컨테이너 이미지의 URI입니다. .zip 파일 아카이브로 정의된 함수에는 사용하지 마세요.

유형: 문자열

필수 항목 여부: 아니요

Publish

코드를 업데이트한 후 함수의 새 버전을 게시하려면 true로 설정합니다. 이는 PublishVersion을 별도로 호출하는 것과 동일한 효과가 있습니다.

Type: 부울

필수 항목 여부: 아니요

RevisionId

개정 ID가 지정된 ID와 일치하는 경우에만 정책을 함수를 업데이트합니다. 마지막으로 읽은 후 변경된 함수를 수정하지 않으려면 이 옵션을 사용합니다.

유형: 문자열

필수 항목 여부: 아니요

S3Bucket

함수와 동일한 AWS 리전에 있는 Amazon S3 버킷입니다. 버킷은 다른 AWS 계정에 있을 수 있습니다. .zip 파일 아카이브 배포 패키지로 정의된 함수에서만 사용합니다.

유형: 문자열

길이 제약: 최소 길이 3. 최대 길이 63.

패턴: ^[0-9A-Za-z\.\-_]*(?<!\.)$

필수 항목 여부: 아니요

S3Key

배포 패키지의 Amazon S3 키입니다. .zip 파일 아카이브 배포 패키지로 정의된 함수에서만 사용합니다.

유형: 문자열

길이 제약: 최소 길이 1. 최대 길이 1024.

필수 항목 여부: 아니요

S3ObjectVersion

버전이 지정된 객체의 경우 사용할 배포 패키지 객체의 버전입니다.

유형: String

길이 제약: 최소 길이 1. 최대 길이 1024.

필수 항목 여부: 아니요

ZipFile

배포 패키지의 base64로 인코딩된 콘텐츠입니다. AWS SDK 및 AWS CLI 클라이언트에서 인코딩이 자동으로 처리됩니다. .zip 파일 아카이브 배포 패키지로 정의된 함수에서만 사용합니다.

유형: Base64로 인코딩된 이진 데이터 객체

Required: No

응답 구문

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

함수의 설명입니다.

유형: String

길이 제약: 최소 길이는 0. 최대 길이는 256입니다.

Environment

함수의 환경 변수입니다. AWS CloudTrail 로그에서 생략되었습니다.

유형: EnvironmentResponse객체

EphemeralStorage

함수의 /tmp 디렉터리 크기(MB)입니다. 기본값은 512MB이지만, 512~10,240MB 사이의 정수를 입력할 수 있습니다. 자세한 내용은 임시 스토리지(콘솔) 구성을 참조하세요.

유형: EphemeralStorage객체

FileSystemConfigs

Amazon EFS 파일 시스템에 대한 연결 설정입니다.

유형: FileSystemConfig 객체 배열

어레이 멤버: 최대 항목 수 1개.

FunctionArn

함수의 Amazon 리소스 이름(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

함수의 이름입니다.

유형: String

길이 제약: 최소 길이는 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 함수의 경우 main 함수의 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

런타임에 함수가 사용할 수 있는 메모리 양입니다.

유형: Integer

유효한 범위: 최소값은 128이고 최대값은 10,240입니다.

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

함수 버전을 게시할 때 초기화된 실행 환경의 스냅샷을 생성하려면 ApplyOnPublishedVersions로 설정합니다. 자세한 내용은 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가 함수를 중지하기 전에 실행을 허용하는 시간(초)입니다.

유형: Integer

유효 범위: 최소값 1.

TracingConfig

함수의 AWS X-Ray 추적 구성입니다.

유형: TracingConfigResponse 객체

Version

Lambda 함수의 버전입니다.

유형: String

길이 제약: 최소 길이 1. 최대 길이는 1024입니다.

Pattern: (\$LATEST|[0-9]+)

VpcConfig

함수의 네트워킹 구성입니다.

유형: VpcConfigResponse 객체

Errors

모든 작업에서 발생하는 일반적인 오류에 대한 자세한 내용은 일반적인 오류 섹션을 참조하세요.

CodeSigningConfigNotFoundException

지정된 코드 서명 구성이 존재하지 않습니다.

HTTP 상태 코드: 404

CodeStorageExceededException

AWS 계정이 최대 총 코드 크기를 초과했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP 상태 코드: 400

CodeVerificationFailedException

코드 서명이 서명 불일치 또는 만료에 대한 하나 이상의 유효성 검사에 실패했으며 코드 서명 정책이 ENFORCE로 설정되어 있습니다. Lambda가 배포를 차단합니다.

HTTP 상태 코드: 400

InvalidCodeSignatureException

코드 서명이 무결성 검사에 실패했습니다. Lambda는 코드 서명 정책이 WARN으로 설정되어 있더라도 무결성 검사에 실패할 경우 배포를 차단합니다.

HTTP 상태 코드: 400

InvalidParameterValueException

요청의 파라미터 중 하나가 유효하지 않습니다.

HTTP 상태 코드: 400

PreconditionFailedException

제공된 RevisionId가 Lambda 함수 또는 별칭에 대한 최신 RevisionId와 일치하지 않습니다. 리소스의 최신 RevisionId를 검색하려면 GetFunction 또는 GetAlias API 작업을 호출합니다.

HTTP 상태 코드: 412

ResourceConflictException

리소스가 이미 있거나 다른 작업이 진행 중입니다.

HTTP 상태 코드: 409

ResourceNotFoundException

요청에 지정된 리소스가 없습니다.

HTTP 상태 코드: 404

ServiceException

AWS Lambda 서비스에 내부 오류가 발생했습니다.

HTTP 상태 코드: 500

TooManyRequestsException

요청 처리량 제한을 초과했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP Status Code: 429

참고

이 API를 언어별 AWS SDK 중 하나로 사용하는 방법에 대한 자세한 설명은 다음을 참조하세요.