이 페이지에서는 Media CDN 에지 확장 프로그램(CdnEdgeExtension)을 구성하여 WebAssembly (Wasm) 플러그인을 Media CDN 에지 캐싱 서비스(EdgeCacheService)에 연결하는 방법을 설명합니다.
CdnEdgeExtension 리소스는 EdgeCacheService 배포에 직접 연결되고 하나 이상의 순서가 지정된 확장 프로그램 체인 (extensionChains)을 실행합니다. 각 확장 프로그램 체인은 Common Expression Language (CEL) 표현식을 사용하여 일치하며 최대 2개의 연결된 WasmPlugin 리소스를 포함할 수 있습니다.
자세한 내용은 Media CDN 확장 프로그램 개요를 참조하세요.
시작하기 전에
- Media CDN 원본 만들기
- Media CDN 서비스 만들기
CdnEdgeExtension리소스를 구성할 때 Media CDN 에지 확장 프로그램은 경로 일치 및 캐시 조회를 포함한 대부분의 Media CDN 기능 전에 실행된다는 점을 고려하세요. 이렇게 하면 플러그인이 헤더 또는 URL을 다시 작성하여 HTTP 라우팅에 영향을 줄 수 있습니다. 하지만 플러그인 코드는 Media CDN 라우팅 규칙이 추가하는 커스텀 헤더나 기본 제공 기능을 검사할 수 없습니다. 클라이언트 리전, IP 주소, TLS 매개변수와 같은 클라이언트 및 연결 속성에 액세스하려면 전달 속성을 구성합니다.
Media CDN 에지 확장 프로그램 설정
CdnEdgeExtension 리소스를 구성하고 플러그인을 EdgeCacheService 배포에 연결하려면 다음을 수행합니다.
YAML 파일에
CdnEdgeExtension리소스를 정의합니다.다음 예시에서는
media.example.com에 요청을 보낼 때WASM_PLUGIN를 호출하여 요청 및 응답 헤더를 모두 처리합니다.참고: 플러그인이 실패하거나 타임아웃되면
failOpen: false설정은 HTTP500오류 코드를 반환합니다.cat >cdn-edge-extension.yaml <<EOF edgeCacheServices: - projects/PROJECT_ID/locations/global/edgeCacheServices/SERVICE_NAME extensionChains: - name: "edge-plugin-chain" matchCondition: celExpression: 'request.host == "media.example.com"' extensions: - name: "auth-and-header-plugin" service: projects/PROJECT_ID/locations/global/wasmPlugins/WASM_PLUGIN failOpen: false supportedEvents: - REQUEST_HEADERS - RESPONSE_HEADERS forwardAttributes: - request.method - request.host - request.path - source.client_region EOF다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 IDSERVICE_NAME: 대상Media CDN서비스의 이름 (EdgeCacheService)WASM_PLUGIN: 플러그인 이름(예:my-wasm-plugin-resource)
YAML 파일의 필드에 대한 자세한 내용은 API 참고 리소스의 ExtensionChain을 참조하세요.
gcloud beta service-extensions cdn-edge-extensions import명령어를 사용하여CdnEdgeExtension리소스를 가져옵니다.gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \ --source=cdn-edge-extension.yaml \ --location=global
참고: 새 플러그인 구성이 모든 위치에 배포되는 데 다소 시간이 걸릴 수 있습니다.
제한사항
EdgeCacheService배포에는 에지 확장 프로그램을 하나만 연결할 수 있습니다.- 에지 확장 프로그램 체인에는 최대 2개의 플러그인이 포함될 수 있습니다.
- Media CDN 에지 확장 프로그램은
REQUEST_HEADERS및RESPONSE_HEADERS이벤트를 지원합니다. 이러한 확장 프로그램은 HTTP 본문 또는 트레일러 처리를 지원하지 않습니다. - Media CDN 에지 확장 프로그램을 사용하면 각 CEL 표현식에 정규 표현식을 하나만 사용할 수 있습니다.
- 확장 프로그램 체인 및 확장 프로그램의 이름은 RFC-1034를 준수해야 합니다. 이 사양에 따라 이름은 최대 63자의 소문자 영숫자 문자 또는 하이픈을 포함할 수 있으며 문자로 시작하고 문자나 숫자로 끝나야 합니다.
리소스 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.