概要
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 |
サーバエラー発生 |