Edge 생성
    • PDF

    Edge 생성

    • PDF

    기사 요약

    개요

    새로운 CDN Edge를 생성합니다.

    • Edge는 계정당 최대 100개를 생성할 수 있습니다.

    요청

    요청 URL

    POST 
    https://edge.apigw.ntruss.com/api/v1/cdn-edge
    

    요청 바디

    EdgeConfig

    파라미터명필수 여부타입제약 사항설명
    profileIdYesLong프로필 아이디
    edgeNameYesString영어, 숫자 그리고 특수문자 '-', '_' 만 사용가능
    distributionConfigYesCdnDistributionConfig배포 설정
    originalCopyConfigYesCdnOriginalCopyConfig원본 설정
    cachingConfigYesCdnCachingConfig캐시 설정
    managedRuleYesManagedRule매니지드 룰 설정
    headerPoliciesYesList<HeaderPolicy>헤더 설정
    optimizationConfigYesOptimizationConfig최적화 설정
    accessControlYesAccessControl접근 제어 설정

    CdnDistributionConfig

    파라미터명필수 여부타입제약 사항설명
    protocolTypeYesStringHTTP, HTTPS, ALL서비스 프로토콜
    regionTypeYesStringKOREA, JAPAN, GLOBAL(성능 우선), GLOBAL(가용성 우선)서비스 지역
    serviceDomainYesServiceDomain서비스 도메인
    edgeLoggingYesEdgeLoggingEdge 로깅 설정

    ServiceDomain

    파라미터명필수 여부타입제약 사항설명
    domainTypeYesStringNCP_DOMAIN_AUTO, NCP_DOMAIN_CUSTOM, CUSTOM_DOMAIN도메인 사용 유형
    domainNameYesStringdomainType을 custom domain 사용시 도메인 형식 사용
    certificateNoCertificateHTTPS와 개인 도메인을 같이 사용시 필수

    Certificate

    파라미터명필수 여부타입제약 사항설명
    idYesLongCertificate Manager에 등록된 인증서의 certificateNo

    EdgeLogging

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    bucketPrefixNoString
    objectStorageNoObjectStorageenabled을 true로 설정시 필수

    ObjectStorage

    파라미터명필수 여부타입제약 사항설명
    regionYesStringKR, USWN, SGN, JPN, DEN한국(KR), 미국서부(USWN), 싱가포르(SGN), 일본(JPN), 독일(DEN)
    bucketNameYesStringObject Storage 버킷 이름

    CdnOriginalCopyConfig

    파라미터명필수 여부타입제약 사항설명
    originalCopyLocationYesOriginalCopyLocation원본 도메인 설정
    forwardHostHeaderYesForwardHostHeaderForward Host Header
    originalCopyProtocolYesOriginalCopyProtocol원본 프로토콜 설정
    originalCopyPathNoString원본 경로
    originShieldYesOriginShield오리진 쉴드 설정
    originFailoverConfigNoOriginFailoverConfig페일 오버 정책 설정

    OriginalCopyLocation

    파라미터명필수 여부타입제약 사항설명
    typeYesStringOBJECT_STORAGE, CUSTOM, NONE원본 타입
    regionNoStringKR, SGN, JPN, USWN, DEN한국(KR), 싱가포르(SGN), 일본(JPN), 미국서부(USWN), 독일(DEN), Object Storage 사용시 필수
    bucketNameNoStringtype이 Object Storage면 필수Object Storage 버킷 이름
    customLocationNoStringtype이 custom이면 필수bucketName, customLocation은 type에 따라 한개만 사용 가능

    ForwardHostHeader

    파라미터명필수 여부타입제약 사항설명
    typeYesStringINCOMING_HOST_HEADER, ORIGIN_HOSTNAME, CUSTOM
    customHostHeaderNoStringtype이 custom이면 필수

    OriginalCopyProtocol

    파라미터명필수 여부타입제약 사항설명
    typeYesStringHTTP, HTTPS원본 프로토콜
    portYesInteger원본 포트

    OriginShield

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    regionNoStringKR, SGN, JPN, USWN, DEN한국(KR), 싱가포르(SGN), 일본(JPN), 미국서부(USWN), 독일(DEN), enabled을 true로 설정시 필수

    OriginFailoverConfig

    파라미터명필수 여부타입제약 사항설명
    ruleNameYesString
    statusCodesYesList<Integer>404, 500, 502, 503, 504
    originalCopyLocationYesOriginalCopyLocation

    CdnCachingConfig

    파라미터명필수 여부타입제약 사항설명
    defaultCachingYesDefaultCaching기본 캐시 설정
    negativeTtlYesbooleantrue, false사용여부, 오류 응답 캐시 설정
    bypassQueryStringYesBypassQueryString
    cacheKeyHostnameYesStringINCOMING_HOST_HEADER, ORIGIN_HOSTNAME
    cacheKeyIgnoreQueryStringYesCacheKeyIgnoreQueryString
    removeVaryHeaderYesbooleantrue, false사용여부
    edgeAuthYesEdgeAuth토큰을 이용하여 사용자의 요청을 검증
    cachingRulesYesList<CachingRule>캐시 상세 설정

    DefaultCaching

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    ruleDefinitionTypeYesStringCACHING, BYPASS_CACHE, ORIGIN_CACHE_CONTROL_HEADER
    cacheRevalidateConfigYesCacheRevalidateConfig

    CacheRevalidateConfig

    파라미터명필수 여부타입제약 사항설명
    typeYesStringIF_POSSIBLE, ALWAYSServe stale if unable to validate(IF_POSSIBLE), Always revalidate with origin(ALWAYS)
    ageTypeYesStringSECONDS, MINUTES, HOURS, DAYS
    ageYesIntegerageType에 따라 시간 단위 변경

    BypassQueryString

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    queryStringsNoList<String>enabled을 true로 설정시 필수

    CacheKeyIgnoreQueryString

    파라미터명필수 여부타입제약 사항설명
    typeYesStringALL_IGNORED, ALL_ALLOWED, ALLOW_SPECIFIC_STRING
    queryStringsNoList<String>type을 ALLOW_SPECIFIC_STRING 사용시 필수

    EdgeAuth

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    typeYesStringSIGNED_URL, JWT, MEDIA_VAULT서비스 지역 글로벌 선택시 MEDIA_VAULT만 사용 가능
    서비스지역 한국/일본은 모두 사용 가능
    tokenNameNoString공백없이 영어 소문자만 사용 가능, enabled을 true로 설정시 필수
    tokenKeyNoStringenabled을 true로 설정시 필수
    bypassValuesNoList<String>MEDIA_VAULT 지원 안함인증 제외할 확장자(최대 20개)
    예) .ts, .jpg, .exe
    tokenBypassValuesNoList<String>MEDIA_VAULT 지원 안함인증값을 원본으로 전달할 확장자(최대 20개)
    예) playlist.m3u8, index.m3u8, .ts, .png

    CachingRule

    파라미터명필수 여부타입제약 사항설명
    ruleNameYesString
    ruleTypeYesStringDIRECTORY, FILE_EXTENSION, ADVANCED
    ruleConditionsYesList<String>
    ruleDefinitionTypeYesStringCACHING, BYPASS_CACHE, ORIGIN_CACHE_CONTROL_HEADER
    cacheRevalidateConfigYesCacheRevalidateConfig
    ruleBasedRoutingConfigYesRuleBasedRoutingConfig
    browserCacheYesBrowserCache
    cacheKeyQueryParameterYesCacheKeyQueryParameter
    accessDenyYesbooleantrue, false
    urlRedirectYesUrlRedirect
    urlRewriteYesUrlRewrite

    RuleBasedRoutingConfig

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    originalCopyLocationNoOriginalCopyLocationenabled을 true로 설정시 필수

    BrowserCache

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    typeNoStringALLOW_CACHE, NO_CACHE, enabled을 true로 설정시 필수
    ageTypeNoStringSECONDS, MINUTES, HOURS, DAYS, enabled을 true로 설정시 필수
    ageNoIntegerenabled을 true로 설정시 필수

    CacheKeyQueryParameter

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부
    typeYesStringALL_IGNORED, ALL_ALLOWED, ALLOW_SPECIFIC_STRING, IGNORE_SPECIFIC_STRING
    queryParametersNoList<String>type을 ALLOW_SPECIFIC_STRING, IGNORE_SPECIFIC_STRING 사용시 필수

    UrlRedirect

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부, UrlRedirect와 UrlRewrite는 동시 사용 불가능
    destinationProtocolNoStringHTTP, HTTPS, enabled을 true로 설정시 필수
    destinationHostnameNoStringenabled을 true로 설정시 필수
    destinationPathNoStringenabled을 true로 설정시 필수
    responseCodeNoStringMOVED_PERMANENTLY_301, FOUND_302, enabled을 true로 설정시 필수

    UrlRewrite

    파라미터명필수 여부타입제약 사항설명
    enabledYesbooleantrue, false사용여부, UrlRedirect와 UrlRewrite는 동시 사용 불가능
    rewriteTargetNoStringenabled을 true로 설정시 필수

    ManagedRule

    파라미터명필수 여부타입제약 사항설명
    corsYesbooleantrue, false사용여부
    http2Yesbooleantrue, false사용여부
    trueClientIpHeaderYesbooleantrue, false사용여부
    hstsYesbooleantrue, false사용여부

    HeaderPolicy

    파라미터명필수 여부타입제약 사항설명
    typeYesStringORIGIN_REQUEST, CLIENT_RESPONSE
    ruleNameYesString
    headerYesHeader

    Header

    파라미터명필수 여부타입제약 사항설명
    typeYesStringADD, MODIFY, REMOVE
    nameYesString
    valueYesString

    OptimizationConfig

    파라미터명필수 여부타입제약 사항설명
    httpCompressionYesbooleantrue, false사용여부
    largeFileOptimizationYesbooleantrue, false사용여부

    AccessControl

    파라미터명필수 여부타입제약 사항설명
    typeYesWHITELIST, BLACKLIST모든 접근 제어 규칙은 한가지 정책만 사용 가능
    ipPoliciesYesList<String>IP 형식만 사용 가능
    geoPoliciesYesList<String>ISO 3166-1 alpha-2 국가 코드 사용 가능
    refererPoliciesYesList<String>도메인 형식만 사용 가능

    응답

    모든 응답은 HTTP Status Code로 성공 또는 실패를 반환합니다.

    HTTP 상태 코드코드 메시지설명
    200Success조회 성공
    401Unauthorized인증 실패
    500Internal Server Error서버 오류

    예시

    요청 예시

    https://edge.apigw.ntruss.com/api/v1/cdn-edge
    
    {
        "profileId": 234,
        "edgeName": "sample-edge",
        "distributionConfig": {
            "protocolType": "ALL",
            "regionType": "KOREA",
            "serviceDomain": {
                "domainType": "NCP_DOMAIN_AUTO",
                "domainName": null,
                "certificate": null
            },
            "edgeLogging": {
                "enabled": true,
                "objectStorage": {
                    "region": "KR",
                    "bucketName": "sample-bucket"
                },
                "bucketPrefix": "log/sample"
            }
        },
        "originalCopyConfig": {
            "originalCopyLocation": {
                "type": "OBJECT_STORAGE",
                "region": "KR",
                "bucketName":"sample-bucket",
                "customLocation": null
            },
            "forwardHostHeader": {
                "type": "ORIGIN_HOSTNAME",
                "customHostHeader": null
            },
            "originalCopyProtocol": {
                "type": "HTTP",
                "port": 80
            },
            "originalCopyPath": null,
            "originShield": {
                "enabled": true,
                "region": "USWN"
            },
            "originFailoverConfig": null
        },
        "cachingConfig": {
            "defaultCaching": {
                "enabled": true,
                "ruleDefinitionType": "CACHING",
                "cacheRevalidateConfig": {
                    "type": "IF_POSSIBLE",
                    "ageType": "HOURS",
                    "age": "10"
                }
            },
            "negativeTtl": true,
            "bypassQueryString": {
                "enabled": true,
                "queryStrings": ["aaa", "bbb", "ccc"]
            },
            "cacheKeyHostname": "INCOMING_HOST_HEADER",
            "cacheKeyIgnoreQueryString": {
                "type": "ALL_ALLOWED",
                "queryStrings": []
            },
            "removeVaryHeader": true,
            "edgeAuth": {
                "enabled": true,
                "type": "SIGNED_URL",
                "tokenName": "name",
                "tokenKey": "902bceb96b2139771716910ff0b9befb"
            },
            "cachingRules": [{
                "ruleName": "sample",
                "ruleType": "DIRECTORY",
                "ruleConditions": ["/sample/*"],
                "ruleDefinitionType": "CACHING",
                "cacheRevalidateConfig": {
                    "type": "IF_POSSIBLE",
                    "ageType": "SECONDS",
                    "age": 100
                },
                "ruleBasedRoutingConfig": {
                    "enabled": true,
                    "originalCopyLocation": {
                        "type": "OBJECT_STORAGE",
                        "region": "KR",
                        "bucketName": "sample-bucket",
                        "customLocation": null
                    }
                },
                "browserCache": {
                    "enabled": true,
                    "type": "ALLOW_CACHE",
                    "age": 100,
                    "ageType": "SECONDS"
                },
                "cacheKeyQueryParameter": {
                    "enabled": true,
                    "type": "IGNORE_SPECIFIC_STRING",
                    "queryParameters": ["aaa", "bbb", "ccc"]
                },
                "accessDeny": false,
                "urlRedirect": {
                    "enabled": true,
                    "destinationProtocol": "HTTP",
                    "destinationHostname": "ncloud.com",
                    "destinationPath": "/home",
                    "responseCode": "FOUND_302"
                },
                "urlRewrite": {
                    "enabled": false,
                    "rewriteTarget": null
                }
            }]
        },
        "managedRule": {
            "cors": true,
            "http2": true,
            "trueClientIpHeader": true,
            "hsts": false
        },
        "headerPolicies": [{
            "type": "ORIGIN_REQUEST",
            "ruleName": "Modify Origin Reqeust Header",
            "header": {
                "type": "ADD",
                "name": "name",
                "value": "value"
            }
        }, {
            "type": "CLIENT_RESPONSE",
            "ruleName": "Modify Client Response Header",
            "header": {
                "type": "MODIFY",
                "name": "name",
                "value": "value"
            }
        }],
        "optimizationConfig": {
            "httpCompression": true,
            "largeFileOptimization": true
        },
        "accessControl": {
            "type": "WHITELIST",
            "ipPolicies": ["1.1.1.1", "2.2.2.2", "3.3.3.3"],
            "geoPolicies": ["AL", "SK", "ZM"],
            "refererPolicies": ["ncloud.com", "naver.com"]
        }
    }
    

    응답 예시

    {
        "code": "0000",
        "message": "Success",
        "result": {
            "edgeId": 123
        }
    }
    

    오류 코드

    Error 코드설명
    0032허용되지 않은 요청
    9999서버 오류 발생

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.