関数を作成します。
今すぐお試しください
テスト
RAM 認証
|
アクション |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
|
fc:CreateFunction |
create |
*All Resource
|
なし | なし |
リクエスト構文
POST /2021-04-06/services/{serviceName}/functions HTTP/1.1
パスパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| serviceName |
string |
必須 |
サービス名。 |
serviceName |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| X-Fc-Account-Id |
string |
任意 |
ご利用の Alibaba Cloud アカウントの ID。 |
188077086902**** |
| function |
object |
任意 |
関数の定義。 |
|
| code | Code |
任意 |
関数コードの ZIP パッケージ。 code または customContainerConfig のいずれかを設定してください。 |
|
| customContainerConfig | CustomContainerConfig |
任意 |
カスタムコンテナー(Custom Container)ランタイムの構成。この構成を設定すると、Function Compute はカスタムイメージから作成されたコンテナー内で関数を実行できます。 code または customContainerConfig のいずれかを設定してください。 |
|
| layers |
array |
任意 |
レイヤー。 説明
複数のレイヤーが指定されている場合、配列の添字順(大きい値から小さい値へ)に従ってマージされます。同名のファイルが存在する場合は、添字が小さいレイヤーの内容が、添字が大きいレイヤーの対応するファイルを上書きします。 |
|
|
string |
任意 |
レイヤーの Alibaba Cloud リソースネーム(ARN)。形式は `acs:fc:{region}:{accountID}:layers/{layerName}/versions/{layerVersion}` です。 |
layerName |
|
| description |
string |
任意 |
関数の説明。 |
function-description |
| functionName |
string |
必須 |
関数名。長さは 1~64 文字で、英字、数字、アンダースコア(_)、ハイフン(-)のみ使用可能です。先頭文字には数字またはハイフン(-)を指定できません。 |
functionName |
| handler |
string |
必須 |
関数のハンドラ。使用するプログラミング言語によってフォーマットが異なります。詳細については、「関数ハンドラ」をご参照ください。 |
index.handler |
| initializationTimeout |
integer |
任意 |
Initializer フックのタイムアウト期間(単位:秒)。デフォルト値は 3 です。有効範囲は 1~300 です。タイムアウト期間が経過すると、Initializer フックの実行が強制終了されます。 |
60 |
| initializer |
string |
任意 |
Initializer フック。詳細については、「Initializer フック」をご参照ください。 |
index.initializer |
| memorySize |
integer |
任意 |
関数のメモリ容量(単位:MB)。64 MB の倍数である必要があります。関数インスタンスのタイプによって容量が異なります。詳細については、「インスタンスタイプ」をご参照ください。 |
512 |
| runtime |
string |
必須 |
関数のランタイム。有効な値: nodejs20、nodejs18、nodejs16、nodejs14、nodejs12、nodejs10、nodejs8、nodejs6、nodejs4.4、python3.10、python3.9、python3、python2.7、java11、java8、go1、php7.2、dotnetcore3.1、dotnetcore2.1、custom.debian10、custom、custom-container。詳細については、「Function Compute でサポートされるランタイム」をご参照ください。 |
python3.9 |
| timeout |
integer |
任意 |
関数実行のタイムアウト期間(単位:秒)。最小値は 1 です。デフォルト値は 3 です。タイムアウト期間が経過すると、関数の実行が強制終了されます。 |
60 |
| caPort |
integer |
任意 |
カスタムランタイムまたはカスタムコンテナー(Custom Container)ランタイムにおける HTTP サーバーのリスニングポート。 |
9000 |
| environmentVariables |
object |
任意 |
関数に設定した環境変数。関数内からこれらの環境変数の値を取得できます。詳細については、「環境変数」をご参照ください。 |
|
|
string |
任意 |
環境変数の構成。 |
{"key":"value"} |
|
| instanceConcurrency |
integer |
任意 |
1 つの関数インスタンスが同時に処理できるリクエストの最大数。 |
10 |
| instanceSoftConcurrency |
integer |
任意 |
インスタンスのソフト同時実行数。このプロパティを使用して、インスタンスのグレースフルなスケールアウトを実装できます。同時リクエスト数がインスタンスのソフト同時実行数を超えると、スケールアウトがトリガーされます。インスタンスの起動に時間がかかる場合、事前にインスタンスを起動するために適切なソフト同時実行数を指定できます。 この値は instanceConcurrency の値以下である必要があります。 |
5 |
| instanceType |
string |
任意 |
関数のインスタンスタイプ。有効な値:
デフォルト値: e1 |
e1 |
| customRuntimeConfig | CustomRuntimeConfig |
任意 |
カスタムランタイム関数の構成。 |
|
| instanceLifecycleConfig |
InstanceLifecycleConfig |
任意 |
インスタンスのライフサイクル構成。 |
|
| customDNS | CustomDNS |
任意 |
関数のカスタム DNS 設定。 |
|
| customHealthCheckConfig | CustomHealthCheckConfig |
任意 |
関数のカスタムヘルスチェック構成。このパラメーターは、カスタムランタイムおよびカスタムコンテナー(Custom Container)ランタイムでのみ適用されます。 |
|
| cpu |
number |
任意 |
関数の CPU 容量(単位:vCPU)。値は 0.05 の倍数です。 |
1.5 |
| diskSize |
integer |
任意 |
関数のディスクサイズ(単位:MB)。有効な値:512、10240。 |
512 |
| gpuMemorySize |
integer |
任意 |
関数の GPU メモリ容量(単位:MB)。値は 1024 の倍数です。 |
2048 |
| X-Fc-Code-Checksum |
string |
任意 |
関数コードパッケージの CRC-64 値。 |
1506052139770049xxxx |
| X-Fc-Date |
string |
任意 |
関数が呼び出された時刻。フォーマットは EEE, d MMM yyyy HH:mm:ss GMT です。 |
Wed, 11 May 2022 09:00:00 GMT |
| X-Fc-Trace-Id |
string |
任意 |
リクエストのトレース ID。応答内の requestId パラメーターの値と同じです。 |
test-trace-id |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
返却されるデータ。 |
||
| codeChecksum |
string |
関数コードパッケージの CRC-64 値。 |
5434025278388143772 |
| codeSize |
integer |
システムが返却する関数コードパッケージのサイズ(単位:バイト)。 |
1024 |
| createdTime |
string |
関数が作成された時刻。 |
2016-08-15T15:00:00.000+0000 |
| customContainerConfig | CustomContainerConfig |
カスタムコンテナー(Custom Container)ランタイムの構成。この構成を設定すると、Function Compute はカスタムイメージから作成されたコンテナー内で関数を実行できます。 |
|
| layers |
array |
レイヤー情報の配列。 説明
複数のレイヤーが存在する場合、配列の添字順(降順)に従ってマージされます。添字が小さいレイヤーの内容が、添字が大きいレイヤーの内容を上書きします。 |
|
|
string |
レイヤー名。 |
md5#layername#version |
|
| description |
string |
関数の説明。 |
This is a demo hello world function |
| functionId |
string |
関数に対してシステムが生成した一意の ID。 |
2d28e0e9-9ba5-4eed-8b1a-d3d9cd24 **** |
| functionName |
string |
関数名。 |
demo-function |
| handler |
string |
関数のハンドラ。 |
index.handler |
| lastModifiedTime |
string |
関数が最後に更新された時刻。 |
2016-08-15T17:00:00.000+0000 |
| memorySize |
integer |
関数に設定されたメモリサイズ(単位:MB)。 |
512 |
| runtime |
string |
関数のランタイム。有効な値: nodejs20、nodejs18、nodejs16、nodejs14、nodejs12、nodejs10、nodejs8、nodejs6、nodejs4.4、python3.10、python3.9、python3、python2.7、java11、java8、go1、php7.2、dotnetcore3.1、dotnetcore2.1、custom.debian10、custom、custom-container。詳細については、「Function Compute でサポートされるランタイム」をご参照ください。 |
python3.9 |
| timeout |
integer |
関数実行のタイムアウト期間(単位:秒)。デフォルト値は 60 です。有効範囲は 1~600 です。タイムアウト期間が経過すると、関数の実行が強制終了されます。 |
10 |
| initializationTimeout |
integer |
Initializer フック実行のタイムアウト期間(単位:秒)。デフォルト値は 3 です。最小値は 1 です。期間が終了すると、Initializer フックの実行が強制終了されます。 |
60 |
| initializer |
string |
Initializer フックのハンドラ。フォーマットはプログラミング言語によって異なります。 |
index.handler |
| caPort |
integer |
カスタムランタイムまたはカスタムコンテナー(Custom Container)ランタイムにおける HTTP サーバーのリスニングポート。 |
9000 |
| environmentVariables |
object |
関数に設定した環境変数。関数内からこれらの環境変数の値を取得できます。詳細については、「環境変数」をご参照ください。 |
|
|
string |
関数に設定した環境変数。 |
{"key":"value"} |
|
| instanceConcurrency |
integer |
1 つのインスタンスが同時に処理可能なリクエスト数。 |
10 |
| instanceSoftConcurrency |
integer |
インスタンスのソフト同時実行数。このパラメーターを使用して、インスタンスのグレースフルなスケールアップを実装できます。インスタンスの同時リクエスト数がソフト同時実行数を超えると、インスタンスのスケールアップがトリガーされます。たとえば、インスタンスの起動に時間がかかる場合、事前にインスタンスを起動するために適切なソフト同時実行数を指定できます。 この値は instanceConcurrency パラメーターの値以下である必要があります。 |
5 |
| instanceType |
string |
関数のインスタンスタイプ。有効な値:
|
e1 |
| instanceLifecycleConfig |
InstanceLifecycleConfig |
インスタンスのライフサイクル構成。 |
|
| customDNS | CustomDNS |
関数のカスタム DNS 設定。 |
|
| customRuntimeConfig | CustomRuntimeConfig |
カスタムランタイム関数の構成。 |
|
| customHealthCheckConfig | CustomHealthCheckConfig |
関数のカスタムヘルスチェック構成。このパラメーターは、カスタムランタイムおよびカスタムコンテナー(Custom Container)ランタイムでのみ適用されます。 |
|
| cpu |
number |
関数の vCPU 数。値は 0.05 の倍数です。 |
1.5 |
| diskSize |
integer |
関数のディスクサイズ(単位:MB)。有効な値:512、10240。 |
512 |
| gpuMemorySize |
integer |
関数の GPU メモリ容量(単位:MB)。値は 1,024 の倍数です。 |
2048 |
| layersArnV2 |
array |
レイヤーの ARN リスト。 |
|
|
string |
レイヤーのリソースロケーター。 |
acs:fc:cn-hangzhou:official:layers/Python310/versions/2 |
例
成功レスポンス
JSONJSON
{
"codeChecksum": "5434025278388143772",
"codeSize": 1024,
"createdTime": "2016-08-15T15:00:00.000+0000",
"customContainerConfig": {
"args": "[\"-arg1\", \"value1\"]",
"command": "[\"/code/myserver\"]",
"image": "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
"accelerationType": "Default",
"instanceID": "cri-xxxxxxxxxx",
"webServerMode": true
},
"layers": [
"md5#layername#version"
],
"description": "This is a demo hello world function",
"functionId": "2d28e0e9-9ba5-4eed-8b1a-d3d9cd24\n****",
"functionName": "demo-function",
"handler": "index.handler",
"lastModifiedTime": "2016-08-15T17:00:00.000+0000",
"memorySize": 512,
"runtime": "python3.9",
"timeout": 10,
"initializationTimeout": 60,
"initializer": "index.handler",
"caPort": 9000,
"environmentVariables": {
"key": "{\"key\":\"value\"}"
},
"instanceConcurrency": 10,
"instanceSoftConcurrency": 5,
"instanceType": "e1",
"instanceLifecycleConfig": {
"preFreeze": {
"handler": "index.preStop",
"timeout": 10
},
"preStop": {
"handler": "index.preStop",
"timeout": 10
}
},
"customDNS": {
"nameServers": [
"8.8.x.x"
],
"searches": [
"ns1.svc.cluster-domain.example"
],
"dnsOptions": [
{
"name": "ndots",
"value": "2"
}
]
},
"customRuntimeConfig": {
"command": [
"/code/myBootstrap"
],
"args": [
"args1"
]
},
"customHealthCheckConfig": {
"httpGetUrl": "/ready",
"initialDelaySeconds": 1,
"periodSeconds": 1,
"timeoutSeconds": 2,
"failureThreshold": 1,
"successThreshold": 2
},
"cpu": 1.5,
"diskSize": 512,
"gpuMemorySize": 2048,
"layersArnV2": [
"acs:fc:cn-hangzhou:official:layers/Python310/versions/2"
]
}
エラーコード
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。