Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12431|Vastaus: 0

Microservices Gateway Kong käyttää lisäosia virhepalautusten räätälöintiin

[Kopioi linkki]
Julkaistu 14.2.2019 16.58.19 | | |
Kong-lisäosa

Kongin lisäosa tukee neljää ulottuvuutta, suoritusjärjestys on ylhäältä alas, ja on huomioitava, että jos sama lisäosa on konfiguroitu eri mittasuhteisiin, se suoritetaan vain kerran:

  • Soveltaa API plus kuluttajamixiä;
  • Sovellettu kuluttajiin;
  • Sovellettu API:ssa;
  • Sovellettu maailmanlaajuisesti;

Lisäksi kaikki lisäosat eivät tue kuluttajien määrittelyä

Lisää toinen API testaukseen
Lisää uusi käyttöliittymä:


{
    "created_at": 1515055457572,
    "strip_uri": totta,
    "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "nimi": "spring-boot-consul-service2",
    "menetelmät": [
        "MENE"
    ],
    "http_if_terminated": väärin,
    "preserve_host": väärin,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "uris": [
        "/käyttäjä"
    ],
    "upstream_send_timeout": 60000,
    "upstream_connect_timeout": 60000,
    "upstream_read_timeout": 60000,
    "Kokeilut": 5,
    "https_only": väärin
}


Lisää höyryttimiä


{
    "created_at": 1515055993113,
    "tilauslista": [
        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",
    "nimi": "spring-boot-consul-service2.service.dc1.consul",
    "slots": 100
}


Lisää kohteita



Tagets-tiedot

{
    "yhteensä": 3,
    "data": [
        {
            "created_at": 1515056103599,
            "ID": "994e7886-3e48-45cb-80AD-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "kohde": "192.168.0.186:17004",
            "paino": 15
        },
        {
            "created_at": 1515056109570,
            "ID": "03b477ee-a69d-49ee-9892-276f451c373c",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "kohde": "192.168.0.185:17004",
            "paino": 15
        },
        {
            "created_at": 1515056112730,
            "ID": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "kohde": "192.168.0.184:17004",
            "paino": 15
        }
    ]
}


Nykyinen API-lista on seuraava:

{
    "yhteensä": 2,
    "data": [
        {
            "created_at": 1515055457572,
            "strip_uri": totta,
            "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
            "nimi": "spring-boot-consul-service2",
            "menetelmät": [
                "MENE"
            ],
            "http_if_terminated": väärin,
            "https_only": väärin,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "uris": [
                "/käyttäjä"
            ],
            "preserve_host": väärin,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "Yritykset": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": totta,
            "ID": "B8431831-6A77-434E-AC4A-7E379550714F",
            "nimi": "spring-boot-consul-service",
            "menetelmät": [
                "MENE"
            ],
            "http_if_terminated": väärin,
            "https_only": väärin,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "uris": [
                "/palvelu"
            ],
            "preserve_host": väärin,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "Yritykset": 5
        }
    ]
}


Pääsyrajapinnat palauttavat seuraavat:

{
    "viesti": "ok",
    "date": {
        "Pisteet": 42,
        "nimi": "puu",
        "id": 1,
        "ikä": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, isäntä:192.168.0.186, service_id:application-1700417004"
    },
    "koodi": 200
}
{
    "viesti": "ok",
    "date": {
        "Pisteet": 505,
        "nimi": "puu",
        "id": 1,
        "ikä": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, isäntä:192.168.0.184, service_id:application-1700317003"
    },
    "koodi": 200
}

Lisää Key-Auth-lisäosa

Avaa key-autth-plugin


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": väärin,
                "run_on_preflight": totta,
                "anonyymi": "",
                "hide_credentials": väärin,
                "key_names": [
                        "apikey"
                ]
        },
        "ID": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "käytössä": totta,
        "api_id": "a99919d1-0770-40a1-81a9-e31fd9d282",
        "nimi": "avain-auth"
}

Sitten pääsee rajapintaan tällaisella virheilmoituksella:

SAADAHyperlinkin kirjautuminen on näkyvissä.
#输出
{
    "message": "Pyyntöön ei löytynyt API-avainta"
}

Poista key-auth-plugin



Tutustu API-sitomislisäosaan

SAADAHyperlinkin kirjautuminen on näkyvissä.
# Tulos:
{
    "yhteensä": 0,
    "data": []
}

Lisää nopeusrajoittava lisäosa nopeusrajoituksen


Tulos

{
    "created_at": 1515068825000,
    "config": {
        "minuutti": 10,
        "politiikka": "klusteri",
        "redis_timeout": 2000,
        "hide_client_headers": väärin,
        "toinen": 2,
        "limit_by": "kuluttaja",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": totta
    },
    "ID": "482c627f-4041-4320-9b2f-0cc7722b92ea",
    "nimi": "nopeusrajoitus",
    "api_id": "a99919d1-0770-40a1-81a9-e31fd9d282",
    "käytössä": totta
}

Kun käyttöliittymä ylittää rajan, vastaanotetaan seuraavat palautukset:


Paluu

{
    "message": "API-nopeusraja ylittyy"
}

Kuitenkin ongelmia on edelleen, koska viestimuoto on kiinteä, tulostusmuoto ei ole johdonmukainen taustapalvelun kanssa, ja mukautettuja viestimuotoja täytyy tukea.

Kong muuttaa poikkeuspalautusarvoa
Esimerkiksi palvelun yhtenäinen viestimuoto on seuraava:

{
    "koodi": 200,
    "viesti": "ok",
        "data": {xxx}
}

Haluamme myös, että Kongin poikkeuspalautus pysyy samassa muodossa kuin yllä. Sitten voimme muokata Kongin lähdekoodia suoraan, mikä on itse asiassa hyvin yksinkertaista.

Aloita lataamalla lähdekoodi

#下载kong插件源码

git-kloonigit@github.com:Kong/kong.git

Etsi muokattava ulostulokoodi

Tulostuskoodi löytyy osoitteesta kong/kong/tools/responses.lua, avaa se muokkausta varten.



Tallenna, sitten käännä

[root@tree81 kong]# luarockit tekevät
Kong 0.11.2-0 on nyt asennettu /usr/localiin (lisenssi: MIT)

Laukaisu, yritä uudelleen

Päivitä osoite nopeasti useita kertoja peräkkäin:Hyperlinkin kirjautuminen on näkyvissä.Saat virheilmoituksen:

{
    "koodi": 429,
    "msg": "API-nopeusraja ylittyy"
}

Valmista, täydellinen :)




Edellinen:jQuery lataa tekstin AJAX:n kautta
Seuraava:init: function () jquery对象的构造函数
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com