Bejövő forgalom az Azure Container Appsben
Az Azure Container Apps lehetővé teszi, hogy a bejövő forgalom engedélyezésével tegye elérhetővé a tárolóalkalmazást a nyilvános weben, a virtuális hálózaton (VNET) és más tárolóalkalmazásokban a környezetben. A bejövő forgalom beállításait olyan szabályokkal kényszerítjük ki, amelyek a külső és belső forgalom tárolóalkalmazásba való átirányítását szabályozzák. A bejövő forgalom engedélyezésekor nem kell létrehoznia egy Azure Load Balancert, egy nyilvános IP-címet vagy bármely más Azure-erőforrást a bejövő HTTP-kérések vagy TCP-forgalom engedélyezéséhez.
A bejövő forgalom a következőket támogatja:
- Külső és belső bejövő forgalom
- HTTP- és TCP-bejövőforgalom-típusok
- Tartománynevek
- IP-korlátozások
- Hitelesítés
- Forgalom felosztása a változatok között
- Munkamenet-affinitás
Példa bejövő konfiguráció két változat közötti bemeneti felosztásra:
A konfiguráció részleteiért lásd a bejövő forgalom konfigurálását ismertető cikket.
Külső és belső bejövő forgalom
A bejövő forgalom engedélyezésekor kétféle bejövő forgalom közül választhat:
- Külső: Fogadja a nyilvános internetről és a tárolóalkalmazás belső környezetéből érkező forgalmat.
- Belső: Csak belső hozzáférést engedélyez a tárolóalkalmazás környezetéből.
A környezeten belüli tárolóalkalmazások különböző bemeneti beállításokkal konfigurálhatók. Ha például több mikroszolgáltatás-alkalmazást használ, a biztonság növelése érdekében előfordulhat, hogy egyetlen tárolóalkalmazás fogadja a nyilvános kéréseket, és átadja a kéréseket egy háttérszolgáltatásnak. Ebben a forgatókönyvben a nyilvános elérésű tárolóalkalmazást külső bejövő forgalommal, a belső elérésű tárolóalkalmazást pedig belső bejövő forgalommal konfigurálná.
Protokolltípusok
A Container Apps két protokollt támogat a bejövő forgalomhoz: HTTP-t és TCP-t.
HTTP
Ha engedélyezve van a HTTP-bejövő forgalom, a tárolóalkalmazás a következőkkel rendelkezik:
- TLS-megszüntetés támogatása
- HTTP/1.1 és HTTP/2 támogatása
- A WebSocket és a gRPC támogatása
- A mindig TLS 1.2-t vagy 1.3-at használó HTTPS-végpontok a bemeneti ponton leállnak
- A 80-at (HTTP) és a 443-at (HTTPS-hez) elérhetővé tevő végpontok
- Alapértelmezés szerint a 80-s portra irányuló HTTP-kérések automatikusan a 443-on https-ra lesznek átirányítva
- Teljes tartománynév (FQDN)
- A kérelem időtúllépése 240 másodperc
HTTP-fejlécek
A HTTP-bejövő forgalom fejléceket ad hozzá az ügyfélkérés metaadatainak a tárolóalkalmazáshoz való továbbításához. A fejléc például annak X-Forwarded-Proto
a protokollnak a azonosítására szolgál, amelyet az ügyfél a Container Apps szolgáltatáshoz való csatlakozáshoz használt. Az alábbi táblázat felsorolja a Container Apps bejövő forgalmára vonatkozó HTTP-fejléceket:
Fejléc | Leírás | Értékek |
---|---|---|
X-Forwarded-Proto |
Az ügyfél által a Container Apps szolgáltatáshoz való csatlakozáshoz használt protokoll. |
http vagy https |
X-Forwarded-For |
A kérelmet küldő ügyfél IP-címe. | |
X-Forwarded-Host |
A Container Apps szolgáltatáshoz való csatlakozáshoz használt ügyfél állomásneve. | |
X-Forwarded-Client-Cert |
Ha be van állítva az ügyféltanúsítvány clientCertificateMode . |
Pontosvesszővel elválasztott lista kivonat, tanúsítvány és lánc. Például: Hash=....;Cert="...";Chain="..."; |
TCP
A Container Apps nem HTTP- vagy HTTPS-alapú TCP-protokollokat támogat. A TCP-bejövő forgalom használatával például közzétehet egy Redis protokollt használó tárolóalkalmazást.
Feljegyzés
A külső TCP-bejövő forgalom csak egyéni virtuális hálózatot használó Container Apps-környezetekben támogatott. A TCP-bejövő forgalom nem támogatott az olyan alkalmazások esetében, amelyek privát végponton keresztül fogadják a bejövő forgalmat.
Ha engedélyezve van a TCP-bejövő forgalom, a tárolóalkalmazás:
- Az ugyanabban a környezetben lévő többi tárolóalkalmazás számára a neve (a
name
Container Apps-erőforrás tulajdonsága által definiált) és a közzétett portszámon keresztül érhető el. - Külsőleg elérhető a teljes tartománynévvel (FQDN) és a közzétett portszámmal, ha a bejövő forgalom értéke
external
.
További TCP-portok
A tárolóalkalmazások fő HTTP/TCP-portja mellett további TCP-portokat is közzétehet, amelyek lehetővé teszik a TCP-kapcsolatokat több porton elfogadó alkalmazások számára.
Feljegyzés
A funkció használatához rendelkeznie kell a container apps CLI-bővítményével. Futtassa az extension add -n containerapp
a container apps CLI-bővítmény legújabb verziójának telepítéséhez.
A következő további TCP-portokra vonatkozik:
- További TCP-portok csak akkor lehetnek külsők, ha maga az alkalmazás külsőként van beállítva, és a tárolóalkalmazás egyéni virtuális hálózatot használ.
- Minden külsőleg közzétett további TCP-portnak egyedinek kell lennie a teljes Container Apps-környezetben. Ez magában foglalja az összes külső további TCP-portot, a külső fő TCP-portokat és a beépített HTTP-bejövő forgalom által használt 80/443-as portokat. Ha a további portok belsőek, ugyanazt a portot több alkalmazás is megoszthatja.
- Ha nincs megadva egy közzétett port, a közzétett port alapértelmezés szerint megfelel a célportnak.
- Minden célportnak egyedinek kell lennie, és ugyanazt a célportot nem lehet különböző közzétett portokon elérhetővé tenni.
- Alkalmazásonként legfeljebb öt portot adhat meg. Ha további portok szükségesek, nyisson meg egy támogatási kérést.
- Csak a fő bejövő port támogatja a beépített HTTP-funkciókat, például a CORS-t és a munkamenet-affinitást. Ha a HTTP-t a további TCP-portokon futtatja, ezek a beépített funkciók nem támogatottak.
A bejövő forgalomról szóló cikkben további információt talál arról, hogyan engedélyezheti a tárolóalkalmazások további portjait.
Tartománynevek
Az alkalmazás a következő módokon érhető el:
- Az alapértelmezett teljes tartománynév (FQDN): A Container Apps-környezetben lévő összes alkalmazás automatikusan hozzárendel egy teljes tartománynevet a környezet DNS-utótagja alapján. A környezet DNS-utótagjának testreszabásához lásd az Egyéni környezet DNS-utótagját.
- Egyéni tartománynév: Konfigurálhat egyéni DNS-tartományt a Container Apps-környezethez. További információ: Egyéni tartománynevek és tanúsítványok.
- Az alkalmazás neve: Az alkalmazás nevét használhatja az ugyanabban a környezetben lévő alkalmazások közötti kommunikációhoz.
Az alkalmazás teljes tartománynevének lekéréséhez tekintse meg a Hely című témakört.
IP-korlátozások
A Container Apps támogatja a bejövő forgalom IP-korlátozásait. Szabályokat hozhat létre a tárolóalkalmazáshoz engedélyezett vagy megtagadott IP-címek konfigurálásához. További információ: IP-korlátozások konfigurálása.
Hitelesítés
Az Azure Container Apps beépített hitelesítési és engedélyezési funkciókat biztosít a külső bejövőforgalom-kompatibilis tárolóalkalmazás védelméhez. További információ: Hitelesítés és engedélyezés az Azure Container Appsben.
Az alkalmazást úgy konfigurálhatja, hogy támogassa az ügyféltanúsítványokat (mTLS) a hitelesítéshez és a forgalomtitkosításhoz. További információ: Ügyféltanúsítványok konfigurálása.
A társközi környezet szintű hálózati titkosítás használatáról a hálózatkezelés áttekintésében olvashat.
Forgalom felosztása
A Containers Apps lehetővé teszi a bejövő forgalom felosztását az aktív változatok között. A felosztási szabály meghatározásakor a bejövő forgalom százalékos arányát rendeli hozzá a különböző változatokhoz való ugráshoz. További információ: Forgalom felosztása.
Munkamenet-affinitás
A munkamenet-affinitás( más néven ragadós munkamenetek) egy olyan funkció, amellyel az ügyféltől érkező ÖSSZES HTTP-kérést ugyanarra a tárolóalkalmazás-replikára irányíthatja. Ez a funkció olyan állapotalapú alkalmazásokhoz hasznos, amelyek konzisztens kapcsolatot igényelnek ugyanahhoz a replikához. További információ: Munkamenet-affinitás.
Forrásközi erőforrásmegosztás (CORS)
Alapértelmezés szerint a böngészőben egy lapról egy olyan tartományra irányuló kérések, amelyek nem felelnek meg a lap forrástartományának, le lesznek tiltva. A Container Appsben üzembe helyezett szolgáltatásokra vonatkozó korlátozás elkerülése érdekében engedélyezheti a forrásközi erőforrás-megosztást (CORS).
További információ: CORS konfigurálása az Azure Container Appsben.