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

Function Compute:ブラウザまたはcURLツールを使用して関数にアクセスするときに404エラーが発生した場合はどうすればよいですか?

最終更新日:Jul 15, 2024

問題の説明

カスタムランタイムの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=world
  • x-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
  • カスタムドメイン名を関数にバインドします。 次に、次のコマンドを実行して関数にアクセスします。 ドメイン名をバインドする方法の詳細については、「」をご参照ください。

    たとえば、ドメイン名がexample.comの場合、次のコマンド構文が使用されます。

    curl -v https://example.com/$path

    サンプルコード:

    curl -v https://example.com/test
    重要

    /$pathを、サービス内の関数のカスタムドメイン名にバインドされているパスに置き換えます。 の詳細については、「」トピックの「ルーティングルール」セクションをご参照ください。

  • 関数コードを変更し、関数をデプロイします。 次に、デフォルトの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