Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ FunctionGraph/ Perguntas frequentes/ Perguntas frequentes sobre gerenciamento de gatilhos/ E se o código de erro 500 for reportado quando funções que usam gatilhos de APIG retornam cadeias?
Atualizado em 2023-09-28 GMT+08:00

E se o código de erro 500 for reportado quando funções que usam gatilhos de APIG retornam cadeias?

Verifique se a resposta da função para uma invocação pelo API Gateway foi encapsulada e contém body(String), statusCode(int), headers(Map) e isBase64Encoded(boolean).

Veja a seguir um exemplo de resposta retornada por uma função de Node.js que usa um gatilho de APIG:

exports.handler = function (event, context, callback) {
    const response = {
        'statusCode': 200,
        'isBase64Encoded': false,
        'headers': {
            "Content-type": "application/json"
        },
        'body': 'Hello, FunctionGraph with APIG',
    }
    callback(null, response);
}

Veja a seguir um exemplo de resposta retornada por uma função de Java que usa um gatilho de APIG:

import java.util.Map;

public HttpTriggerResponse index(String event, Context context){
        String body = "<html><title>FunctionStage</title>"
                + "<h1>This is a simple APIG trigger test</h1><br>"
                + "<h2>This is a simple APIG trigger test</h2><br>"
                + "<h3>This is a simple APIG trigger test</h3>"
                + "</html>";
        int code = 200;
        boolean isBase64 = false;
        Map<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "text/html; charset=utf-8");
        return new HttpTriggerResponse(body, headers, code, isBase64);
    }


class HttpTriggerResponse {
    private String body;
    private Map<String, String> headers;
    private int statusCode;
    private boolean isBase64Encoded;
    public HttpTriggerResponse(String body, Map<String,String> headers, int statusCode, boolean isBase64Encoded){
        this.body = body;
        this.headers = headers;
        this.statusCode = statusCode;
        this.isBase64Encoded = isBase64Encoded;
    }
}