すべてのプロダクト
Search
ドキュメントセンター

Function Compute:CreateFunction

最終更新日:Sep 11, 2024

関数を作成します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。 利便性を考慮して、この操作は OpenAPI Explorer で呼び出すことが推奨されます。 OpenAPI Explorer は、さまざまな SDK に対して操作のサンプルコードを動的に生成します。

リクエストヘッダー

この操作では、共通リクエストヘッダーと特殊リクエストヘッダーを使用します。 次の表に、特別なリクエストヘッダーを示します。 共通リクエストヘッダーの詳細については、「共通パラメーター」をご参照ください。

パラメーター

データ型

必須

説明

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

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

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 ステータスコード

エラーコードの一覧については、「サービスエラーコード」をご参照ください。