Edgeの作成

Prev Next

概要

CDN Edgeを新規作成します。

  • Edgeは、アカウントごとに最大100個まで作成できます。

リクエスト

リクエスト URL

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

リクエストボディ

EdgeConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
profileId Yes Long プロファイル ID
edgeName Yes String 英数字と記号の「-」、「_」のみ使用可能
distributionConfig Yes CdnDistributionConfig デプロイの設定
originalCopyConfig Yes CdnOriginalCopyConfig オリジンの設定
cachingConfig Yes CdnCachingConfig キャッシュの設定
managedRule Yes ManagedRule マネージドルールの設定
headerPolicies Yes List<HeaderPolicy> ヘッダの設定
optimizationConfig Yes OptimizationConfig 最適化の設定
accessControl Yes AccessControl アクセス制御の設定

CdnDistributionConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
protocolType Yes String HTTP, HTTPS, ALL サービスプロトコル
regionType Yes String KOREA, JAPAN, GLOBAL サービス地域
serviceDomain Yes ServiceDomain サービスドメイン
edgeLogging Yes EdgeLogging Edgeロギングの設定

ServiceDomain

パラメータ名 必須の有無 タイプ 制限事項 説明
domainType Yes String NCP_DOMAIN_AUTO, NCP_DOMAIN_CUSTOM, CUSTOM_DOMAIN ドメインの使用タイプ
domainName Yes String domainTypeを custom domain使用時にドメイン形式を使用
certificate No Certificate HTTPSとプライベートドメインを一緒に使用する場合は必須

Certificate

パラメータ名 必須の有無 タイプ 制限事項 説明
id Yes Long Certificate Managerに登録された証明書の certificateNo

EdgeLogging

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
bucketPrefix No String
objectStorage No ObjectStorage enabledを trueに設定時、必須

ObjectStorage

パラメータ名 必須の有無 タイプ 制限事項 説明
region Yes String KR, USWN, SGN, JPN, DEN 韓国(KR)、米国西部(USWN)、シンガポール(SGN)、日本(JPN)、ドイツ(DEN)
bucketName Yes String Object Storageバケット名

CdnOriginalCopyConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
originalCopyLocation Yes OriginalCopyLocation オリジンドメインの設定
forwardHostHeader Yes ForwardHostHeader Forward Host Header
originalCopyProtocol Yes OriginalCopyProtocol オリジンプロトコルの設定
originalCopyPath No String オリジンのパス
originShield Yes OriginShield オリジンシールドの設定
originFailoverConfig No OriginFailoverConfig フェイルオーバーポリシーの設定

OriginalCopyLocation

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String OBJECT_STORAGE, CUSTOM, NONE オリジンのタイプ
region No String KR, SGN, JPN, USWN, DEN 韓国(KR)、シンガポール(SGN)、日本(JPN)、米国西部(USWN)、ドイツ(DEN)、Object Storage使用時に必須
bucketName No String typeが Object Storageの場合、必須 Object Storageバケット名
customLocation No String typeが customの場合、必須 bucketName、customLocationは typeに応じて1つだけ使用可能

ForwardHostHeader

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String INCOMING_HOST_HEADER, ORIGIN_HOSTNAME, CUSTOM
customHostHeader No String typeが customの場合、必須

OriginalCopyProtocol

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String HTTP, HTTPS オリジンのプロトコル
port Yes Integer オリジンのポート

OriginShield

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
region No String KR, SGN, JPN, USWN, DEN 韓国(KR)、シンガポール(SGN)、日本(JPN)、米国西部(USWN)、ドイツ(DEN)、enabledを trueに設定時に必須

OriginFailoverConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
ruleName Yes String
statusCodes Yes List<Integer> 404, 500, 502, 503, 504
originalCopyLocation Yes OriginalCopyLocation

CdnCachingConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
defaultCaching Yes DefaultCaching 基本キャッシュ設定
negativeTtl Yes boolean true, false 使用の有無、エラーレスポンスキャッシュの設定
bypassQueryString Yes BypassQueryString
cacheKeyHostname Yes String INCOMING_HOST_HEADER, ORIGIN_HOSTNAME
cacheKeyIgnoreQueryString Yes CacheKeyIgnoreQueryString
removeVaryHeader Yes boolean true, false 使用の有無
edgeAuth Yes EdgeAuth トークンを利用してユーザーのリクエストを検証
cachingRules Yes List<CachingRule> キャッシュの詳細設定

DefaultCaching

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
ruleDefinitionType Yes String CACHING, BYPASS_CACHE, ORIGIN_CACHE_CONTROL_HEADER
cacheRevalidateConfig Yes CacheRevalidateConfig

CacheRevalidateConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String IF_POSSIBLE, ALWAYS Serve stale if unable to validate(IF_POSSIBLE), Always revalidate with origin(ALWAYS)
ageType Yes String SECONDS, MINUTES, HOURS, DAYS
age Yes Integer ageTypeに応じて時間単位を変更

BypassQueryString

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
queryStrings No List<String> enabledを trueに設定時、必須

CacheKeyIgnoreQueryString

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String ALL_IGNORED, ALL_ALLOWED, ALLOW_SPECIFIC_STRING
queryStrings No List<String> typeを ALLOW_SPECIFIC_STRINGにすると必須

EdgeAuth

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
type Yes String SIGNED_URL, JWT, MEDIA_VAULT サービス地域でグローバルを選択すると MEDIA_VAULTのみ使用可能
サービス地域が韓国/日本の場合はすべて使用可能
tokenName No String スペースは使用できず、英字の小文字のみ使用可能、enabledを trueに設定すると必須
tokenKey No String enabledを trueに設定時、必須
bypassValues No List<String> MEDIA_VAULTはサポートしない 認証対象外の拡張子(最大20個)
例) .ts、.jpg、.exe
tokenBypassValues No List<String> MEDIA_VAULTはサポートしない 認証値をオリジンに渡す拡張子(最大20個)
例) playlist.m3u8、index.m3u8、.ts、.png

CachingRule

パラメータ名 必須の有無 タイプ 制限事項 説明
ruleName Yes String
ruleType Yes String DIRECTORY, FILE_EXTENSION, ADVANCED
ruleConditions Yes List<String>
ruleDefinitionType Yes String CACHING, BYPASS_CACHE, ORIGIN_CACHE_CONTROL_HEADER
cacheRevalidateConfig Yes CacheRevalidateConfig
ruleBasedRoutingConfig Yes RuleBasedRoutingConfig
browserCache Yes BrowserCache
cacheKeyQueryParameter Yes CacheKeyQueryParameter
accessDeny Yes boolean true, false
urlRedirect Yes UrlRedirect
urlRewrite Yes UrlRewrite

RuleBasedRoutingConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
originalCopyLocation No OriginalCopyLocation enabledを trueに設定時、必須

BrowserCache

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
type No String ALLOW_CACHE、NO_CACHE、enabledを trueに設定すると必須
ageType No String SECONDS、MINUTES、HOURS、DAYS、enabledを trueに設定すると必須
age No Integer enabledを trueに設定時、必須

CacheKeyQueryParameter

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無
type Yes String ALL_IGNORED, ALL_ALLOWED, ALLOW_SPECIFIC_STRING, IGNORE_SPECIFIC_STRING
queryParameters No List<String> typeを ALLOW_SPECIFIC_STRING、IGNORE_SPECIFIC_STRINGにすると必須

UrlRedirect

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無、UrlRedirectと UrlRewriteは同時使用できない
destinationProtocol No String HTTP、HTTPS、enabledを trueに設定すると必須
destinationHostname No String enabledを trueに設定時、必須
destinationPath No String enabledを trueに設定時、必須
responseCode No String MOVED_PERMANENTLY_301、FOUND_302、enabledを trueに設定すると必須

UrlRewrite

パラメータ名 必須の有無 タイプ 制限事項 説明
enabled Yes boolean true, false 使用の有無、UrlRedirectと UrlRewriteは同時使用できない
rewriteTarget No String enabledを trueに設定時、必須

ManagedRule

パラメータ名 必須の有無 タイプ 制限事項 説明
cors Yes boolean true, false 使用の有無
http2 Yes boolean true, false 使用の有無
trueClientIpHeader Yes boolean true, false 使用の有無
hsts Yes boolean true, false 使用の有無

HeaderPolicy

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String ORIGIN_REQUEST, CLIENT_RESPONSE
ruleName Yes String
header Yes Header

Header

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes String ADD, MODIFY, REMOVE
name Yes String
value Yes String

OptimizationConfig

パラメータ名 必須の有無 タイプ 制限事項 説明
httpCompression Yes boolean true, false 使用の有無
largeFileOptimization Yes boolean true, false 使用の有無

AccessControl

パラメータ名 必須の有無 タイプ 制限事項 説明
type Yes WHITELIST, BLACKLIST すべてのアクセス制御ルールは1つのポリシーのみ使用可能
ipPolicies Yes List<String> IPアドレス形式のみ使用可能
geoPolicies Yes List<String> ISO 3166-1 alpha-2国コードを使用可能
refererPolicies Yes List<String> ドメイン形式のみ使用可能

レスポンス

すべてのレスポンスは、HTTP Status Codeで成功または失敗を返します。

HTTPステータスコード コードのメッセージ 説明
200 Success 照会成功
401 Unauthorized 認証失敗
500 Internal 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 サーバエラー発生