AWS Lambda - AWS CodePipeline

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

예제 작업 구성

YAML
Name: Lambda Actions: - Name: Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' RunOrder: 1 Configuration: FunctionName: myLambdaFunction UserParameters: 'http://192.0.2.4' OutputArtifacts: [] InputArtifacts: [] Region: us-west-2
JSON
{ "Name": "Lambda", "Actions": [ { "Name": "Lambda", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Provider": "Lambda", "Version": "1" }, "RunOrder": 1, "Configuration": { "FunctionName": "myLambdaFunction", "UserParameters": "http://192.0.2.4" }, "OutputArtifacts": [], "InputArtifacts": [], "Region": "us-west-2" } ] },

예제 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 키).

이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.