問題の説明
カスタムランタイムのHTTP関数を作成しました。 関数が存在するサービスの名前はCustomDemo、関数の名前はfunc-http、匿名HTTPトリガーが設定されています。 次のサンプルコードは、カスタムランタイムでのHTTP関数のルーティングを示しています。
@app.route('/test', methods = ['POST','GET'])
def test():cURLツールまたはブラウザを使用してHTTP関数のURLにアクセスすると、エラーコード404が返されます。
cURLツールを使用してHTTP関数にアクセスする
curl -v https:// 164901546557 **** .cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/testブラウザを使用してHTTP関数にアクセスする
https:// 164901546557 **** .cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/test説明HTTP関数のURLの形式は
https://<account_id>.<region_id>.fc.aliyuncs.com/<version>/proxy/<serviceName>/<functionName>/<path>です。
解決策
次のいずれかの方法で問題を解決できます。
Function Computeを使用して、HTTPトリガーによって割り当てられたサブドメインを使用して関数URLにアクセスします。 詳細については、「HTTPトリガーの設定と使用」トピックの「ステップ3: 機能のテスト」セクションをご参照ください。
サブドメイン形式:
https://<subdomain>.<region_id>.fcapp.ru n/[action?queries]サンプルコード:
https://funcname-svcname-khljsjksld.cn-shanghai.fcapp.run/action?hello=worldx-fc-invocation-targetという名前のヘッダーをコマンドに追加します。 コマンド構文:curl -v -H "x-fc-invocation-target: 2016-08-15/proxy/$ServiceName/$functionName" https://<account_id>.<region_id>.fc.aliyuncs.com/$pathサンプルコード:
curl -v -H "x-fc-invocation-target: 2016-08-15/proxy/CustomDemo/func-http" https:// 164901546557 **** .cn-hangzhou.fc.aliyuncs.com/testカスタムドメイン名を関数にバインドします。 次に、次のコマンドを実行して関数にアクセスします。 ドメイン名をバインドする方法の詳細については、「」をご参照ください。
関数コードを変更し、関数をデプロイします。 次に、デフォルトのURLを使用して関数にアクセスします。 変更されたコードの例を次に示します。
@app.route('/2016-08-15/proxy/CustomDemo/func-http/test', methods = ['POST','GET']) def test():サンプルコード:
curl -v https:// 164901546557 **** .cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/CustomDemo/func-http/test