

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

# AWS Lambda 배포 작업 참조
<a name="action-reference-LambdaDeploy"></a>

 AWS Lambda 배포 작업을 사용하여 서버리스 배포를 위한 애플리케이션 코드 배포를 관리합니다. 다음과 같이 함수를 배포하고 트래픽 배포에 배포 전략을 사용할 수 있습니다.
+ 트래픽 시프팅을 위한 카나리 및 선형 배포
+ 한 번에 모두 배포

**참고**  
이 작업은 V2 유형 파이프라인에서만 지원됩니다.

**Topics**
+ [작업 유형](#action-reference-LambdaDeploy-type)
+ [구성 파라미터](#action-reference-LambdaDeploy-parameters)
+ [입력 아티팩트](#action-reference-LambdaDeploy-input)
+ [출력 아티팩트](#action-reference-LambdaDeploy-output)
+ [출력 변수](#action-reference-LambdaDeploy-output-variables)
+ [Lambda 배포 작업에 대한 서비스 역할 정책 권한](#action-reference-LambdaDeploy-permissions-action)
+ [작업 선언](#action-reference-LambdaDeploy-example)
+ [다음 사항도 참조하세요.](#action-reference-LambdaDeploy-links)

## 작업 유형
<a name="action-reference-LambdaDeploy-type"></a>
+ 범주: `Deploy`
+ 소유자: `AWS`
+ 공급자: `Lambda`
+ 버전: `1`

## 구성 파라미터
<a name="action-reference-LambdaDeploy-parameters"></a>

**FunctionName**  
필수 항목 여부: 예  
`MyLambdaFunction`과 같이 Lambda에서 생성한 함수의 이름입니다.  
이미 버전이 생성되어 있어야 합니다.

**FunctionAlias**  
필수 여부: 아니요  
Lambda에서 생성한 함수의 별칭이며 `live`와 같이 배포할 함수입니다. 별칭이 있어야 하며 작업 실행이 시작될 때 별칭 뒤에 하나의 버전이 있어야 합니다. (롤백 대상 버전이 됩니다.)  
제공되지 않은 경우 작업은 소스 아티팩트를 `$LATEST`에 배포하고 새 버전을 생성합니다. 이 사용 사례에서는 배포 전략 및 대상 버전 옵션을 사용할 수 없습니다.

**PublishedTargetVersion**  
필수 여부: 아니요  
FunctionAlias에 배포할 원하는 Lambda 함수 버전입니다. `#{variables.lambdaTargetVersion}`과 같은 파이프라인 또는 작업 수준 변수일 수 있습니다. 작업 실행이 시작될 때 버전을 게시해야 합니다.  
입력 아티팩트가 제공되지 않은 경우 필요합니다.

**DeployStrategy**  
필수: 아니요(기본값은 `AllAtOnce`)  
  
Lambda 배포 작업이 Lambda 함수의 원래 버전에서 **FunctionAlias**의 새 버전으로 트래픽을 이동하기 위해 채택하는 속도를 결정합니다. 사용 가능한 배포 전략은 카나리 또는 선형입니다. 허용되는 형식:  
+ `AllAtOnce` - 

  업데이트된 Lambda 함수로 모든 트래픽을 한번에 전환합니다.

   지정하지 않은 경우 기본값은 `AllAtOnce`입니다.
+ `Canary10Percent5Minutes` - 첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 5분 이후 배포됩니다.

  백분율과 분 값을 모두 변경할 수 있습니다.
+ `Linear10PercentEvery1Minute` - 모든 트래픽이 전환될 때까지 트래픽의 10%가 매분마다 전환됩니다.

  백분율과 분 값을 모두 변경할 수 있습니다.
이 필드에는 다음 고려이 적용됩니다.  
+ 최대 총 대기 시간은 2일입니다.
+ **FunctionAlias**가 제공된 경우에만 사용할 수 있습니다.


**경보**  
필수 여부: 아니요  
Lambda 배포에 대해 구성된 경보 이름의 쉼표로 구분된 목록입니다. 최대 10개의 알람을 추가할 수 있습니다. 모니터링된 경보가 ALARM 상태가 되면 작업이 실패합니다.

다음 이미지는 해당 작업의 편집 페이지 예를 보여줍니다.

![\[Lamda 배포 작업이 있는 새 파이프라인에 대한 작업 편집 페이지\]](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)


## 입력 아티팩트
<a name="action-reference-LambdaDeploy-input"></a>
+ **아티팩트 수:** `1`
+ **설명:** 배포 중에 스크립트 작업을 지원하기 위해 제공된 파일입니다.

## 출력 아티팩트
<a name="action-reference-LambdaDeploy-output"></a>
+ **아티팩트 수:** `0` 
+ **설명:** 이 작업 유형에는 출력 아티팩트가 적용되지 않습니다.

## 출력 변수
<a name="action-reference-LambdaDeploy-output-variables"></a>

이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이 작업은 작업에 네임스페이스가 없는 경우에도 출력 변수로 볼 수 있는 변수를 생성합니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.

자세한 내용은 [변수 참조](reference-variables.md) 단원을 참조하십시오.

**FunctionVersion**  
배포된 새 Lambda 함수 버전입니다.

## Lambda 배포 작업에 대한 서비스 역할 정책 권한
<a name="action-reference-LambdaDeploy-permissions-action"></a>

CodePipeline이 작업을 실행할 때 CodePipeline 서비스 역할에는 최소 권한으로 액세스할 수 있도록 범위가 적절하게 축소된 다음 최소 권한이 필요합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementForLambda",
            "Effect": "Allow",
            "Action": [
                "lambda:GetAlias",
                "lambda:GetFunctionConfiguration",
                "lambda:GetProvisionedConcurrencyConfig",
                "lambda:PublishVersion",
                "lambda:UpdateAlias",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}",
                "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*"
            ]
        },
        {
            "Sid": "StatementForCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms"
            ],
            "Resource": [
                "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}"
            ]
        },
        {
            "Sid": "StatementForLogs1",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}",
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForLogs2",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*"
            ]
        }
    ]
}
```

------

## 작업 선언
<a name="action-reference-LambdaDeploy-example"></a>

------
#### [ YAML ]

```
name: Deploy
actionTypeId:
  category: Deploy
  owner: AWS
  provider: Lambda
  version: '1'
runOrder: 1
configuration:
  DeployStrategy: Canary10Percent5Minutes
  FunctionAlias: aliasV1
  FunctionName: MyLambdaFunction
outputArtifacts: []
inputArtifacts:
- name: SourceArtifact
region: us-east-1
namespace: DeployVariables
```

------
#### [ JSON ]

```
{
    "name": "Deploy",
    "actionTypeId": {
        "category": "Deploy",
        "owner": "AWS",
        "provider": "Lambda",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "DeployStrategy": "Canary10Percent5Minutes",
        "FunctionAlias": "aliasV1",
        "FunctionName": "MyLambdaFunction"
    },
    "outputArtifacts": [],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "region": "us-east-1",
    "namespace": "DeployVariables"
},
```

------

## 다음 사항도 참조하세요.
<a name="action-reference-LambdaDeploy-links"></a>

이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
+  [자습서: CodePipeline을 사용한 Lambda 함수 배포](tutorials-lambda-deploy.md) - 이 자습서에서는 별칭 및 버전을 생성하고, 소스 위치에 압축된 Lambda 함수를 추가하고, 파이프라인에서 Lambda 작업을 실행할 샘플 Lambda 함수를 생성하는 방법을 안내합니다.