Classic/VPC環境で利用できます。
Cloud Functionsアクションを作成したり、変更したりします。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| PUT | /packages/{packageName}/actions/{actionName} |
リクエストヘッダ
Cloud Functions APIで共通して使用されるヘッダの詳細は、Cloud Functionsの共通ヘッダをご参照ください。
リクエストパスパラメータ
パラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
packageName |
String | Required | パッケージ名
|
actionName |
String | Required | アクション名
|
リクエストクエリパラメータ
パラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
platform |
String | Optional | プラットフォーム区分
|
type |
String | Optional | アクションタイプ
|
リクエストボディ
リクエストボディの説明は次の通りです。
Basic/Webアクション
パラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
description |
String | Optional | アクションの説明(Byte)
|
parameters |
Object | Optional | アクションのデフォルトパラメータ
|
limits.timeout |
Integer | Required | アクションの最大実行時間(ミリ秒)
|
limits.memory |
Integer | Required | アクションの最大メモリ容量(MB)
|
exec.kind |
String | Required | アクションランタイム
|
exec.imageUri |
String | Conditional | ユーザー画像のパス
|
exec.binary |
Boolean | Required | アクションコードファイルはバイナリかどうか
|
exec.code |
String | Required | アクションのソースコード
|
exec.main |
String | Required | 実行関数 |
vpc |
Object[] | Required | 接続する VPC情報
|
vpc[].vpcNo |
Integer | Required | 接続する VPC ID |
vpc[].subnetNo |
Integer | Required | 接続する Subnet ID |
raw-http |
Boolean | Optional | 未加工 HTTPの使用有無
|
custom-options |
Boolean | Optional | HTTPヘッダーオプションの設定
|
Sequence/Sequence-webアクション
パラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
description |
String | Optional | アクションの説明(Byte)
|
exec.kind |
String | Required | アクションの種類
|
exec.components |
String[] | Required | シーケンスアクションに関連付けるアクションリスト
|
リクエスト例
リクエストのサンプルコードは次の通りです。
curl -X PUT 'https://cloudfunctions.apigw.ntruss.com/ncf/api/v2/packages/{packageName}/actions/{actionName}' \
--header 'Content-Type: application/json' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'
-d '<下記参照>'
{
"description" : "My action",
"parameters": {
"name": "Cloud Functions",
"place": "NCloud"
},
"limits": {
"timeout": 60000,
"memory": 128
},
"exec": {
"kind": "nodejs:16",
"code": "function main(params) { \nlet name = params.name || \"World\";\nlet place = params.place || \"Naver\"; \n return {payload: \"abc\"};\n}",
"binary": false,
"main": "main"
},
"vpc": [
{
"vpcNo" : ******,
"subnetNo" : *****
}
]
}
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
共通フィールド
| フィールド | タイプ | 説明 |
|---|---|---|
content.name |
String | アクションの名前 |
content.resourceId |
String | アクションのリソース ID |
content.path |
String | アクションのパス |
content.description |
String | - |
content.type |
String | - |
Basic/Webアクション
| フィールド | タイプ | 説明 |
|---|---|---|
content.parameters |
Object | アクションの基本パラメータ |
content.raw-http |
Boolean | 未加工 HTTPの使用有無
|
content.custom-options |
Boolean | ヘッダオプションの設定
|
content.exec.binary |
Boolean | アクションコードのファイルはバイナリかどうか |
content.exec.code |
String | アクションのソースコードまたは Base64-encodedコードファイルのバイナリ |
content.exec.imageUri |
String | ユーザー画像パス
|
content.exec.kind |
String | アクションのランタイム |
content.exec.main |
String | 実行関数 |
content.limits.memory |
Integer | アクションコンテナに割り当てられるメモリの容量 |
content.limits.timeout |
Integer | アクションが実行される最大時間 |
content.vpc |
Object[] | - |
content.vpc[].vpcNo |
Integer | - |
content.vpc[].subnetNo |
Integer | - |
Sequence/Web-sequenceアクション
| フィールド | タイプ | 説明 |
|---|---|---|
content.exec.kind |
String | アクションの種類
|
content.exec.components |
String[] | 関連付けられたアクションリスト |
レスポンスステータスコード
レスポンスステータスコードの説明は次の通りです。
| HTTPステータスコード | コード | メッセージ | 説明 |
|---|---|---|---|
| 400 | 80300 | ACTION_INVALID_NAME | 無効なアクション名 |
| 400 | 80102 | PACKAGE_PLATFORM_MISMATCH | アクション上位パッケージのプラットフォームは変更不可 |
| 400 | 80302 | ACTION_PLATFORM_MISMATCH | アクションのプラットフォームは変更不可 |
| 400 | 80303 | ACTION_INVALID_TYPE | 無効なアクションタイプ |
| 400 | 80304 | ACTION_TYPE_MISMATCH | アクションのタイプは変更不可 |
| 400 | 80305 | ACTION_BODY_INVALID_TYPE | 無効なリクエストボディフィールドタイプ |
| 400 | 80306 | ACTION_BODY_MISSING_FIELD | 必須リクエストボディフィールド漏れ |
| 400 | 80307 | ACTION_BODY_INVALID_VALUE | 無効なリクエストボディフィールドの値 |
| 403 | 80002 | SUB_ACC_NO_PERMISSION | 詳細権限エラー |
| 409 | 80011 | RESOURCE_NAME_CONFLICT | 重複したリソース名 |
| 422 | 80308 | ACTION_COUNT_EXCEED | 最大アクション数を超過 |
| 500 | 81311 | ACTION_NAT_EXCEPTION | サブネットの照会に失敗 |
| 500 | 81312 | NAT_CREATE_FAIL | サブネット接続失敗 |
| 500 | 81313 | NAT_BEING_CREATED | サブネット接続中 |
| 500 | 81314 | NAT_RETURN_FAIL | サブネット接続解除中 |
レスポンス例
レスポンスのサンプルコードは次の通りです。
{
"content": {
"description": "My action",
"exec": {
"binary": false,
"code": "function main(params) { \nlet name = params.name || \"World\";\nlet place = params.place || \"Naver\"; \n return {payload: \"abc\"};\n}",
"kind": "nodejs:16",
"main": "main"
},
"limits": {
"memory": 128,
"timeout": 60000
},
"name": "myaction",
"parameters": {
"name": "Cloud Functions",
"place": "NCloud"
},
"path": "***QK06kFG8C/mypackage",
"resourceId": "*****",
"type": "basic",
"vpc": [
{
"subnetNo": ******,
"vpcNo": *****
}
]
}
}