배포에 함수 연결
배포에 함수를 사용하려면 함수를 배포의 하나 이상의 캐시 동작과 연결합니다. 여러 배포에서 여러 캐시 동작과 함수를 연결할 수 있습니다.
함수는 다음 중 무엇과도 연결할 수 있습니다.
         
         
         
    - 
            기존 캐시 동작 
- 
            기존 배포의 새로운 캐시 동작 
- 
            새 배포의 새로운 캐시 동작 
 함수를 캐시 동작과 연결할 때는 이벤트 유형(event type)을 선택해야 합니다. 이벤트 유형에 따라 CloudFront가 함수를 실행하는 시기가 결정됩니다.
다음과 같은 이벤트 유형을 선택할 수 있습니다.
CloudFront Functions와 함께 오리진 관련 이벤트 유형(오리진 요청 및 오리진 응답)을 사용할 수 없습니다. 대신 Lambda@Edge를 사용할 수 있습니다. 자세한 내용은 Lambda@Edge 함수를 트리거할 수 있는 CloudFront 이벤트 단원을 참조하십시오.
CloudFront 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 배포에 함수를 연결할 수 있습니다. 다음 절차에서는 함수를 기존 캐시 동작에 연결하는 방법을 보여 줍니다.
        - Console
- 
                
                CloudFront가 배포를 함수와 연결합니다. 연결된 배포가 배포될 때까지 몇 분 정도 기다립니다. 함수 세부 정보 페이지에서 배포 보기를 선택하여 진행 상황을 확인할 수 있습니다. 
- CLI
- 
                
                기존 캐시 동작에 함수를 연결하려면- 
                        명령줄 창을 엽니다. 
- 
                        함수에 연결할 캐시 동작을 가진 배포에 대한 배포 구성을 저장하려면 다음 명령을 입력합니다. 이 명령은 배포 구성을 dist-config.yaml이라는 이름의 파일에 저장합니다. 이 명령을 사용하려면 다음을 수행합니다.
 aws cloudfront get-distribution-config \
    --id DistributionID\
    --output yaml > dist-config.yaml
 명령이 성공하면 AWS CLI는 출력을 반환하지 않습니다. 
- 
                        생성한 dist-config.yaml이라는 파일을 엽니다. 파일을 편집하여 다음과 같이 변경합니다.
 - 
                                ETag필드의 이름을IfMatch로 바꾸지만 필드 값은 변경하지 마세요.
 
- 
                                캐시 동작에서 FunctionAssociations(이)라는 이름의 객체를 찾습니다. 함수 연결을 추가하려면 이 객체를 업데이트합니다. 함수 연결에 대한 YAML 구문은 다음 예제와 같습니다.
 
                                     
                                     
                                - 
                                        다음 예제에서는 최종 사용자 요청 이벤트 객체를 보여줍니다. 최종 사용자 응답 이벤트 유형을 사용하려면 viewer-request을(를)viewer-response(으)로 바꿉니다.
 
- 
                                        arn:aws:cloudfront::111122223333:function/ExampleFunction
 
 
 FunctionAssociations:
  Items:
    - EventType: viewer-request
      FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
  Quantity: 1
 
- 
                                이러한 변경을 수행한 후 파일을 저장합니다. 
 
- 
                        다음 명령을 사용하여 배포를 업데이트하고 함수 연결을 추가합니다. 이 명령을 사용하려면 다음을 수행합니다. aws cloudfront update-distribution \
    --id DistributionID\
    --cli-input-yaml file://dist-config.yaml
 명령이 성공하면 함수 연결로 방금 업데이트된 배포를 설명하는 다음과 같은 출력이 표시됩니다. 다음 예제 출력은 가독성을 위해 잘립니다. Distribution:
  ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW
  ... truncated ...
  DistributionConfig:
    ... truncated ...
    DefaultCacheBehavior:
      ... truncated ...
      FunctionAssociations:
        Items:
        - EventType: viewer-request
          FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
        Quantity: 1
      ... truncated ...
  DomainName: d111111abcdef8.cloudfront.net
  Id: EDFDVBD6EXAMPLE
  LastModifiedTime: '2021-04-19T22:39:09.158000+00:00'
  Status: InProgress
ETag: E2VJGGQEG1JT8S
 
 
배포가 재배포되는 동안 배포의 Status가 InProgress로 변경됩니다. 새 배포 구성이 CloudFront 엣지 로케이션에 도달하면 해당 엣지 로케이션에 연결된 함수를 사용하기 시작합니다. 배포가 완전히 완료되면 Status가 다시 Deployed로 바뀝니다. 이는 연결된 CloudFront 함수가 전 세계의 모든 CloudFront 엣지 로케이션에서 작동함을 나타냅니다. 이 작업은 일반적으로 몇 분 정도 걸립니다.