기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Lambda
Lambda 함수를 파이프라인의 작업으로 실행할 수 있습니다. 이 함수에 대한 입력인 이벤트 객체를 사용하면 함수가 작업 구성, 입력 아티팩트 위치, 출력 아티팩트 위치, 및 아티팩트에 액세스하는 데 필요한 기타 정보에 액세스할 수 있습니다. Lambda 간접 호출 함수에 전달되는 예제 이벤트는 예제 JSON 이벤트 단원을 참조하세요. Lambda 함수 구현의 일환으로 PutJobSuccessResult
API
또는 PutJobFailureResult API
에 대한 호출이 있어야 합니다. 그렇지 않으면 작업이 시간 초과될 때까지 이 작업의 실행이 중단됩니다. 작업에 대한 출력 아티팩트를 지정하면 함수 구현의 일환으로 해당 아티팩트를 S3 버킷에 업로드해야 합니다.
중요
Lambda로 CodePipeline 보내는 JSON 이벤트를 기록하지 마십시오. 로그에 사용자 자격 증명이 로그인될 수 있기 때문입니다. CloudWatch 이 CodePipeline 역할은 JSON 이벤트를 사용하여 현장의 Lambda에 임시 자격 증명을 전달합니다. artifactCredentials
예제 이벤트는 예제 JSON 이벤트을 참조하세요.
작업 유형
-
범주:
Invoke
-
소유자:
AWS
-
공급자:
Lambda
-
버전:
1
구성 파라미터
- FunctionName
-
필수 여부: 예
FunctionName
은 Lambda에서 생성된 함수의 이름입니다. - UserParameters
-
필수 여부: 아니요
Lambda 함수에서 입력으로 처리할 수 있는 문자열입니다.
입력 아티팩트
-
아티팩트 수:
0 to 5
-
설명: Lambda 함수에서 사용할 수 있도록 할 아티팩트 세트입니다.
출력 아티팩트
-
아티팩트 수:
0 to 5
-
설명: Lambda 함수에서 출력으로 생성한 아티팩트 세트입니다.
출력 변수
이 작업은 API 요청 outputVariables
섹션에 포함된 모든 키-값 쌍을 변수로 생성합니다. PutJobSuccessResult
의 변수에 대한 자세한 내용은 CodePipeline 을 참조하십시오. Variables
예제 작업 구성
예제 JSON 이벤트
Lambda 작업은 작업 ID, 파이프라인 작업 구성, 입력 및 출력 아티팩트 위치, 아티팩트에 대한 모든 암호화 정보가 포함된 JSON 이벤트를 전송합니다. 작업자가 이 세부 정보에 액세스하여 Lambda 작업을 완료합니다. 자세한 내용은 작업 세부 정보를 참조하십시오. 다음은 이벤트 예제입니다.
{ "CodePipeline.job": { "id": "
11111111-abcd-1111-abcd-111111abcdef
", "accountId": "111111111111
", "data": { "actionConfiguration": { "configuration": { "FunctionName": "MyLambdaFunction
", "UserParameters": "input_parameter
" } }, "inputArtifacts": [ { "location": { "s3Location": { "bucketName": "bucket_name
", "objectKey": "filename
" }, "type": "S3" }, "revision": null, "name": "ArtifactName
" } ], "outputArtifacts": [], "artifactCredentials": { "secretAccessKey": "secret_key
", "sessionToken": "session_token
", "accessKeyId": "access_key_ID
" }, "continuationToken": "token_ID
", "encryptionKey": { "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "type": "KMS" } } } }
JSON 이벤트는 Lambda 작업에 대한 다음 작업 세부 정보를 제공합니다. CodePipeline
-
id
: 작업의 고유한 시스템 생성 ID입니다. -
accountId
: 작업과 관련된 AWS 계정 ID. -
data
: 작업자가 작업을 완료하는 데 필요한 기타 정보입니다.-
actionConfiguration
: Lambda 작업에 대한 작업 파라미터입니다. 정의는 구성 파라미터 단원을 참조하십시오. -
inputArtifacts
: 작업에 제공된 아티팩트입니다.-
location
: 아티팩트 스토어 위치입니다.-
s3Location
: 작업에 대한 입력 아티팩트 위치 정보입니다.-
bucketName
: 작업에 대한 파이프라인 아티팩트 스토어의 이름 (예: codepipeline-us-east -2-1234567890이라는 Amazon S3 버킷). -
objectKey
: 애플리케이션 이름입니다(예:CodePipelineDemoApplication.zip
).
-
-
type
: 위치에서 아티팩트의 유형입니다. 현재 유효한 아티팩트 유형은S3
뿐입니다.
-
-
revision
: 아티팩트의 개정 ID입니다. 객체 유형에 따라 커밋 ID (GitHub) 또는 수정 ID (Amazon 심플 스토리지 서비스) 가 될 수 있습니다. 자세한 내용은 을 참조하십시오 ArtifactRevision. -
name
: 작업할 아티팩트의 이름입니다(예:MyApp
).
-
-
outputArtifacts
: 작업의 출력입니다.-
location
: 아티팩트 스토어 위치입니다.-
s3Location
: 작업에 대한 출력 아티팩트 위치 정보입니다.-
bucketName
: 작업에 대한 파이프라인 아티팩트 스토어의 이름 (예: codepipeline-us-east -2-1234567890이라는 Amazon S3 버킷). -
objectKey
: 애플리케이션 이름입니다(예:CodePipelineDemoApplication.zip
).
-
-
type
: 위치에서 아티팩트의 유형입니다. 현재 유효한 아티팩트 유형은S3
뿐입니다.
-
-
revision
: 아티팩트의 개정 ID입니다. 객체 유형에 따라 커밋 ID (GitHub) 또는 수정 ID (Amazon 심플 스토리지 서비스) 가 될 수 있습니다. 자세한 내용은 을 참조하십시오 ArtifactRevision. -
name
: 아티팩트의 출력 이름입니다(예:MyApp
).
-
-
artifactCredentials
: Amazon S3 버킷의 입력 및 출력 아티팩트에 액세스하는 데 사용되는 AWS 세션 자격 증명입니다. 이러한 자격 증명은 AWS Security Token Service (AWS STS)에서 발급한 임시 자격 증명입니다.-
secretAccessKey
: 세션에 대한 보안 액세스 키입니다. -
sessionToken
: 세션에 대한 토큰입니다. -
accessKeyId
: 세션에 대한 보안 액세스 키입니다.
-
-
continuationToken
: 작업에서 생성하는 토큰입니다. 향후 작업에서는 이 토큰을 사용하여 실행 중인 작업 인스턴스를 식별합니다. 작업이 완료되면 구성 토큰이 제공되지 않아야 합니다. -
encryptionKey
: 아티팩트 스토어의 데이터를 암호화하는 데 사용되는 암호화 키 (예: 키). AWS KMS 정의하지 않으면 Amazon Simple Storage Service의 기본 키가 사용됩니다.-
id
: 키를 식별하는 데 사용되는 ID입니다. AWS KMS 키의 경우 키 ID, 키 ARN 또는 별칭 ARN을 사용할 수 있습니다. -
type
: 암호화 키의 유형입니다(예: AWS KMS 키).
-
-
다음 사항도 참조하십시오.
이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
-
AWS CloudFormation 사용 설명서 — 파이프라인의 Lambda 작업 AWS CloudFormation 및 아티팩트에 대한 자세한 내용은 파이프라인과 CodePipeline 함께 파라미터 재정의 함수 사용, Lambda 기반 애플리케이션 배포 자동화, 아티팩트를 참조하십시오.AWS CloudFormation
-
의 파이프라인에서 AWS Lambda 함수 호출 CodePipeline - 이 절차에서는 샘플 Lambda 함수를 제공하며 콘솔을 사용하여 Lambda 간접 호출 작업이 있는 파이프라인을 생성하는 방법을 보여줍니다.