関数を作成します。
デバッグ
リクエストヘッダー
この操作では、共通リクエストヘッダーと特殊リクエストヘッダーを使用します。 次の表に、特別なリクエストヘッダーを示します。 共通リクエストヘッダーの詳細については、「共通パラメーター」をご参照ください。
パラメーター | データ型 | 必須 | 例 | 説明 |
X-Fc-コード-チェックサム | String | なし | 543402527838814 **** | 関数コードパッケージのCRC-64値。 |
リクエスト構文
POST /services/{serviceName}/functions HTTP/1.1
リクエストパラメーター
パラメーター | データ型 | 位置 | 必須 | 例 | 説明 |
serviceName | String | パス | あり | service_name | インスタンスが属するサービスの名前。 サービス名には、英数字、アンダースコア (_) 、およびハイフン (-) のみを使用できます。 数字またはハイフン (-) で始めることはできません。長さは1 ~ 128文字である必要があります。 |
オブジェクト | 本文 | なし | 関数の定義。 | ||
code | 本文 | なし | レイヤーのコード。The code for the layer. コードは、ZIP ファイルにパッケージ化されている必要があります。 | ||
customContainerConfig | 本文 | なし | カスタムコンテナーランタイムの設定。 設定後、カスタムコンテナーイメージを使用して関数を実行できます。 | ||
レイヤー | 文字列の配列 | 本文 | なし | 02f81d283888f5ec63442a88fe82b260# レイヤー名 #1 | レイヤーの名前。 |
説明 | String | 本文 | なし | test_description | 関数の説明。 |
functionName | String | 本文 | あり | function_name | 関数の名前。 関数名には、英数字、アンダースコア (_) 、およびハイフン (-) のみを使用できます。 数字またはハイフン (-) で始めることはできません。長さは1 ~ 64文字である必要があります。 |
ハンドラー | String | 本文 | あり | index.handler | 関数のハンドラー。The handler of the function. 形式は、使用するプログラミング言語によって決まります。 詳細は、「関数ハンドラー」をご参照ください。 |
initializationTimeout | Integer | 本文 | なし | 30 | Initializerフックの実行のタイムアウト時間。 単位は秒です。 デフォルト値: 3。 有効な値:1 から 300。 この期間が終了すると、Initializerフックの実行が終了する。 |
initializer | String | 本文 | なし | index.initializer | Initializerフックのハンドラー。 値の形式は、使用するプログラミング言語によって決まります。 詳細については、「Initializer hook」をご参照ください。 |
memorySize | Integer | 本文 | なし | 256 | 関数のメモリサイズ。 単位:MB。 メモリサイズは64 MBの倍数です。 インスタンスのメモリサイズは、関数インスタンスのタイプによって異なります。 詳細については、「インスタンスの仕様」をご参照ください。 |
runtime | String | 本文 | なし | python3 | 関数のランタイム。The runtime of the function. 有効な値:nodejs14,nodejs12,nodejs10,nodejs8,nodejs6,nodejs4.4,python3,python2.7,java11,java8,go1,php7.2,dotnetcore2.1,カスタム、およびカスタムコンテナー. 詳細については、「関数の管理」の「Function Computeでサポートされているランタイム」セクションをご参照ください。 |
timeout | Integer | 本文 | なし | 60 | Function Computeが関数を実行するためのタイムアウト期間。 単位は秒です。 デフォルト値: 0。 有効な値: 1 ~ 86400 期間が終了すると、関数の実行は終了します。 |
caPort | Integer | 本文 | なし | 9000 | HTTPサーバーがカスタムランタイムまたはカスタムコンテナランタイムをリッスンするポート。 |
関数コードパッケージは、次の2つの方法で提供できます。 1つのリクエストで1つのメソッドのみを使用する必要があります。
コードパッケージが格納されているObject Storage Service (OSS) バケットの名前 (ossBucketName) とオブジェクトの名前 (ossObjectName) を指定します。
zipFileパラメーターの値をZIPファイルのBase64-encodedの内容に設定します。
レスポンスパラメーター
パラメーター | データ型 | 例 | 説明 |
ETag | String | 738136ea26b79cee660862cd7628 **** | 変更された関数が変更される関数と一致するようにするために使用される値。 |
codeChecksum | String | 2825179536350 **** | 関数コードパッケージのCRC-64値。 |
codeSize | Long | 421 | 関数コードパッケージのサイズ。 単位:byte。 |
createdTime | String | 2020-04-01T08:15:27Z | 関数が作成された時刻。 |
customContainerConfig | カスタムコンテナーランタイムの設定。 設定後、カスタムコンテナーイメージを使用して関数を実行できます。 | ||
レイヤー | 文字列の配列 | 02f81d283888f5ec63442a88fe82b260# レイヤー名 #1 | レイヤーの名前。 |
説明 | String | test_description | 関数の説明。 |
environmentVariables | 地図 | 関数に設定されている環境変数。 関数から環境変数の値を取得できます。 詳しくは、『Environment variables』をご参照ください。 | |
functionId | String | fc46822c-0fb9-4c15-b898-bace828a **** | 関数ごとにシステムによって生成されるID。 IDはグローバルに一意である必要があります。 |
functionName | String | function_name | 関数の名前。 |
ハンドラー | String | index.handler | 関数のハンドラー。The handler of the function. 形式は、使用するプログラミング言語によって決まります。 詳細は、「関数ハンドラー」をご参照ください。 |
lastModifiedTime | Long | 2020-04-01T08:15:27Z | 関数が最後に変更された時刻。 |
memorySize | Integer | 256 | 関数のメモリサイズ。 単位:MB。 メモリサイズは64 MBの倍数です。 インスタンスのメモリサイズは、関数インスタンスのタイプによって異なります。 詳細については、「インスタンスの仕様」をご参照ください。 |
runtime | String | python3 | 関数のランタイム。The runtime of the function. 有効な値:nodejs14,nodejs12,nodejs10,nodejs8,nodejs6,nodejs4.4,python3,python2.7,java11,java8,go1,php7.2,dotnetcore2.1,カスタム、およびカスタムコンテナー. 詳細については、「関数の管理」の「Function Computeでサポートされているランタイム」セクションをご参照ください。 |
timeout | Integer | 60 | Function Computeが関数を実行するためのタイムアウト期間。 単位は秒です。 デフォルト値: 0。 有効な値: 1 ~ 86400 期間が終了すると、関数の実行は終了します。 |
initializationTimeout | Integer | 60 | Initializerフックの実行のタイムアウト時間。 単位は秒です。 デフォルト値: 3。 有効な値:1 から 300。 この期間が終了すると、Initializerフックの実行が終了する。 |
initializer | String | index.handler | Initializerフックのハンドラー。 値の形式は、使用するプログラミング言語によって決まります。 詳細については、「Initializer hook」をご参照ください。 |
caPort | Integer | 9000 | HTTPサーバーがカスタムランタイムまたはカスタムコンテナランタイムをリッスンするポート。 |
例:
リクエストの例
POST /services/service_name/functions HTTP/1.1
Host:fc-ram.aliyuncs.com
X-Fc-Code-Checksum:543402527838814****
Content-Type:application/json
{
"code" : {
"ossBucketName" : "demo-bucket",
"ossObjectName" : "demo-key",
"zipFile" : "cHJpbnQoImhlbGxvIHdvcmxkIikK"
},
"customContainerConfig" : {
"args" : "[\"-arg1\", \"value1\"]",
"command" : "[\"/code/myserver\"]",
"image" : "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
"accelerationType" : "Default",
"instanceID" : "cri-xxxxxxxx"
},
"layers" : [ "02f81d283888f5ec63442a88fe82b260#Layer-name#1" ],
"description" : "test_description",
"functionName" : "function_name",
"handler" : "index.handler",
"initializationTimeout" : 30,
"initializer" : "index.initializer",
"memorySize" : 256,
"runtime" : "python3",
"timeout" : 60,
"caPort" : 9000
}
正常に処理された場合のレスポンス例
JSON
形式
HTTP/1.1 200 OK
Content-Type:application/json
{
"codeChecksum" : "2825179536350****",
"codeSize" : 421,
"createdTime" : "2020-04-01T08:15:27Z",
"customContainerConfig" : {
"args" : "[\"-arg1\", \"value1\"]",
"command" : "[\"/code/myserver\"]",
"image" : "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
"accelerationType" : "Default",
"instanceID" : "cri-xxxxxxxx"
},
"layers" : [ "02f81d283888f5ec63442a88fe82b260#Layer-name#1" ],
"description" : "test_description",
"functionId" : "aa715851-1c20-4b89-a8fb-***",
"functionName" : "function_name",
"handler" : "index.handler",
"memorySize" : 256,
"runtime" : "python3",
"timeout" : 60,
"initializationTimeout" : 60,
"initializer" : "index.handler",
"caPort" : 9000
}
HTTP ステータスコード
エラーコードの一覧については、「サービスエラーコード」をご参照ください。