Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12431|Svar: 0

Microservices Gateway Kong bruger plug-ins til at tilpasse fejltilbagemeldinger

[Kopier link]
Opslået på 14/02/2019 16.58.19 | | |
Kong-plugin

Kongs plugin understøtter fire dimensioner, eksekveringsrækkefølgen er fra top til bund, og det skal bemærkes, at hvis det samme plugin konfigureres i forskellige dimensioner, vil det kun blive udført én gang:

  • Anvend API-plus forbruger-mixet;
  • Anvendt på forbrugere;
  • Anvendt i API'et;
  • Anvendt globalt;

Desuden understøtter ikke alle plugins definerende forbrugere

Tilføj et ekstra API til test
Tilføj en ny grænseflade:


{
    "created_at": 1515055457572,
    "strip_uri": sandt,
    "id": "A99919D1-0770-40A1-81A9-e3C31fd9d282",
    "Navn": "Spring-boot-consul-service2",
    "Metoder": [
        "KOM"
    ],
    "http_if_terminated": falsk,
    "preserve_host": falsk,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "URIS": [
        "/bruger"
    ],
    "upstream_send_timeout": 60.000,
    "upstream_connect_timeout": 60.000,
    "upstream_read_timeout": 60.000,
    "Gentagelser": 5,
    "https_only": falsk
}


Tilsæt damp


{
    "created_at": 1515055993113,
    "Orderlist": [
        41,
        28,
        44,
        14,
        79,
        38,
        30,
        69,
        15,
        88,
        72,
        53,
        89,
        47,
        81,
        43,
        60,
        91,
        92,
        100,
        98,
        55,
        12,
        40,
        9,
        31,
        84,
        24,
        36,
        39,
        96,
        74,
        6,
        8,
        93,
        99,
        78,
        34,
        49,
        37,
        61,
        76,
        33,
        35,
        32,
        77,
        70,
        26,
        52,
        87,
        73,
        23,
        57,
        25,
        17,
        90,
        62,
        82,
        19,
        75,
        50,
        4,
        51,
        42,
        65,
        66,
        63,
        3,
        1,
        68,
        94,
        67,
        20,
        80,
        54,
        7,
        5,
        16,
        85,
        13,
        46,
        10,
        97,
        22,
        48,
        11,
        27,
        86,
        18,
        59,
        83,
        21,
        56,
        95,
        2,
        64,
        58,
        71,
        45,
        29
    ],
    "id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
    "Navn": "Spring-boot-consul-service2.service.DC1.Consul",
    "Slots": 100
}


Tilføj mål



Tagets-information

{
    "total": 3,
    "Data": [
        {
            "created_at": 1515056103599,
            "id": "994e7886-3e48-45CB-80AD-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "mål": "192.168.0.186:17004",
            "vægt": 15
        },
        {
            "created_at": 1515056109570,
            "id": "03b477ee-a69d-49ee-9892-276f451c373c",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "mål": "192.168.0.185:17004",
            "vægt": 15
        },
        {
            "created_at": 1515056112730,
            "id": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "mål": "192.168.0.184:17004",
            "vægt": 15
        }
    ]
}


Den nuværende liste over API'er er som følger:

{
    "total": 2,
    "Data": [
        {
            "created_at": 1515055457572,
            "strip_uri": sandt,
            "id": "A99919D1-0770-40A1-81A9-e3C31fd9d282",
            "Navn": "Spring-boot-consul-service2",
            "Metoder": [
                "KOM"
            ],
            "http_if_terminated": falsk,
            "https_only": falsk,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "URIS": [
                "/bruger"
            ],
            "preserve_host": falsk,
            "upstream_connect_timeout": 60.000,
            "upstream_read_timeout": 60.000,
            "upstream_send_timeout": 60.000,
            "Gentagelser": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": sandt,
            "id": "B8431831-6A77-434e-AC4A-7E379550714F",
            "Navn": "Fjeder-støvle-konsul-tjeneste",
            "Metoder": [
                "KOM"
            ],
            "http_if_terminated": falsk,
            "https_only": falsk,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "URIS": [
                "/service"
            ],
            "preserve_host": falsk,
            "upstream_connect_timeout": 60.000,
            "upstream_read_timeout": 60.000,
            "upstream_send_timeout": 60.000,
            "Gentagelser": 5
        }
    ]
}


Adgangsgrænsefladerne returnerer følgende:

{
    "msg": "ok",
    "date": {
        "score": 42,
        "Navn": "Træ",
        "id": 1,
        "alder": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "kode": 200
}
{
    "msg": "ok",
    "date": {
        "score": 505,
        "Navn": "Træ",
        "id": 1,
        "alder": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "kode": 200
}

Tilføj Key-Auth-plugin'et

Åbn key-auth-plugin'et


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": falsk,
                "run_on_preflight": sandt,
                "anonym": "",
                "hide_credentials": falsk,
                "key_names": [
                        "Apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "aktiveret": sandt,
        "api_id": "A99919D1-0770-40A1-81A9-e3C31fd9d282",
        "Navn": "Key-Auth"
}

Derefter får du adgang til interfacet med en fejl som denne:

Hyperlink-login er synlig.
#输出
{
    "besked": "Ingen API-nøgle fundet i forespørgsel"
}

Fjern key-auth-plugin'et



Tjek API-binding-plugin'et

Hyperlink-login er synlig.
# Output:
{
    "total": 0,
    "data": []
}

Tilføj det hastighedsbegrænsende plugin-hastighedsbegrænsning


Output

{
    "created_at": 1515068825000,
    "config": {
        "minut": 10,
        "politik": "klynge",
        "redis_timeout": 2000,
        "hide_client_headers": falsk,
        "anden": 2,
        "limit_by": "forbruger",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": sandt
    },
    "id": "482c627F-4041-4320-9B2F-0cc7722B92EA",
    "Navn": "Hastighedsbegrænsende",
    "api_id": "A99919D1-0770-40A1-81A9-e3C31fd9d282",
    "aktiveret": sandt
}

Når adgangsgrænsefladen overstiger grænsen, vil følgende returer blive modtaget:


Tilbagevenden

{
    "besked": "API-hastighedsgrænse overskredet"
}

Der er dog stadig nogle problemer, fordi beskedformatet er fast, outputformatet ikke er konsistent med backend-tjenesten, og brugerdefinerede beskedformater skal understøttes.

Kong ændrer undtagelsesreturværdien
For eksempel er servicens samlede beskedformat som følger:

{
    "kode": 200,
    "msg": "ok",
        "data": {xxx}
}

Vi ønsker også, at undtagelsestilbagevendingen af kong forbliver i samme format som ovenfor. Så kan vi direkte ændre Kongs kildekode, som faktisk er meget simpel.

Start med at downloade kildekoden

#下载kong插件源码

Git-klongit@github.com:Kong/kong.git

Find outputkoden, der skal ændres

Outputkoden findes i kong/kong/tools/responses.lua, åbn den til redigering.



Gem, og kompiler derefter

[root@tree81 Kong]# Luarocks laver
kong 0.11.2-0 er nu installeret i /usr/local (licens: MIT)

Start den, prøv igen

Opdater hurtigt adressen flere gange i træk:Hyperlink-login er synlig.Få en fejlmeddelelse:

{
    "kode": 429,
    "msg": "API-hastighedsgrænse overskredet"
}

Færdig, perfekt :)




Tidligere:jQuery indlæser et stykke tekst via AJAX
Næste:init: function () jquery对象的构造函数
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com