Oktatóanyag: Termék létrehozása és közzététele
A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint
Az Azure API Managementben egy termék egy vagy több API-t, használati kvótát és használati feltételeket tartalmaz. A termék közzététele után a fejlesztők feliratkozhatnak a termékre, és elkezdhetik használni a termék API-jait.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Termékek létrehozása és közzététele
- API hozzáadása a termékhez
- Termék API-k elérése
Előfeltételek
- Az Azure API Management terminológiájának ismerete.
- Tekintse át a következő rövid útmutatót: Azure API Management-példány létrehozása.
- Végezze el a következő oktatóanyagot is: Az első API importálása és közzététele.
Termékek létrehozása és közzététele
Jelentkezzen be az Azure Portalra, és keresse meg az API Management-példányt.
A bal oldali navigációs panelen válassza a Termékek>+ Hozzáadás lehetőséget.
A Termék hozzáadása ablakban adja meg a következő táblázatban leírt értékeket a termék létrehozásához.
Név Leírás Megjelenített név A név, ahogyan szeretné, megjelenik a fejlesztői portálon. Leírás Adja meg a termékkel kapcsolatos információkat, például a célját, a hozzáférést biztosító API-kat és egyéb részleteket. Állapot Válassza a Közzétéve lehetőséget, ha közzé szeretné tenni a terméket a fejlesztői portálon. Mielőtt a fejlesztők felfedezhetik a termék API-jait, közzé kell tenni a terméket. Alapértelmezés szerint az új termékek nem lesznek közzétéve. Előfizetés szükséges Válassza ki, hogy egy felhasználónak elő kell-e fizetnie a termék használatához (a termék védett), és egy előfizetési kulcsot kell használnia a termék API-iinak eléréséhez. Ha nincs szükség előfizetésre (a termék nyitva van), a termék API-ihoz való hozzáféréshez nincs szükség előfizetési kulcsra. A cikk későbbi részében tekintse meg a termék API-khoz való hozzáférést. Jóváhagyást igényel Válassza ki, ha azt szeretné, hogy egy rendszergazda tekintse át és fogadja el vagy utasítsa el a termékre vonatkozó előfizetési kísérleteket. Ha nincs kiválasztva, az előfizetési kísérletek automatikusan jóvá lesznek hagyva. Előfizetések számának korlátozása Igény szerint korlátozhatja több egyidejű előfizetés számát. Jogi feltételek Megadhatja a termék használati feltételeit, amelyeket az előfizetőknek el kell fogadniuk, hogy használni tudják a terméket. API-k Jelöljön ki egy vagy több API-t. A termék létrehozása után API-kat is hozzáadhat. További információ: API-k hozzáadása egy termékhez a cikk későbbi részében.
Nyílt (előfizetést nem igénylő) termék esetén csak olyan API-t adhat hozzá, ami nincs egy másik nyílt termékhez társítva.Válassza a Létrehozás lehetőséget az új termék létrehozásához.
Figyelemfelhívás
Ügyeljen arra, hogy olyan terméket konfiguráljon, amely nem igényel előfizetést. Ez a konfiguráció túlságosan megengedő lehet, és sebezhetőbbé teheti a termék API-jait bizonyos API-biztonsági fenyegetésekkel szemben.
További konfigurációk hozzáadása
A mentés után folytassa a termék konfigurálását. Az API Management-példányban válassza ki a terméket a Termékek ablakban. Hozzáadás vagy frissítés:
Elem | Leírás |
---|---|
Beállítások | Termék metaadatai és állapota |
API-k | A termékhez társított API-k |
Házirendek | Termék API-kra alkalmazott szabályzatok |
Hozzáférés-vezérlés | Termékláthatóság fejlesztők vagy vendégek számára |
Előfizetések | Termék-előfizetők |
API-k hozzáadása termékekhez
A termékek egy vagy több API társításai. Több API-t is megadhat, és a fejlesztői portálon elérhetővé teheti azokat a fejlesztők számára. A termék létrehozása során hozzáadhat egy vagy több meglévő API-t. Később api-kat is hozzáadhat a termékhez, akár a Termékek beállításai lapon, akár egy API létrehozásakor.
API hozzáadása meglévő termékhez
- Az API Management-példány bal oldali navigációs sávjában válassza a Termékek lehetőséget.
- Válasszon ki egy terméket, majd válassza az API-kat.
- Válassza az + API hozzáadása lehetőséget.
- Jelöljön ki egy vagy több API-t, majd válassza ki.
Hozzáférés a termék API-khoz
A termék közzététele után a fejlesztők hozzáférhetnek az API-khoz. A termék konfigurálásának módjától függően előfordulhat, hogy elő kell fizetniük a termékre a hozzáféréshez.
Védett termék – A fejlesztőknek először elő kell fizetnie egy védett termékre, hogy hozzáférjenek a termék API-iihoz. Amikor előfizetnek, egy előfizetési kulcsot kapnak, amely a termék bármely API-ját elérheti. Ha létrehozta az API Management-példányt, ön már rendszergazda, ezért alapértelmezés szerint minden termékre előfizetett. További információ: Előfizetések az Azure API Managementben.
Amikor egy ügyfél érvényes termék-előfizetési kulccsal küld API-kérést, az API Management feldolgozza a kérést, és engedélyezi a hozzáférést a termék kontextusában. A termékhez konfigurált szabályzatok és hozzáférés-vezérlési szabályok alkalmazhatók.
Tipp.
A felhasználó előfizetését egy REST API- vagy PowerShell-paranccsal hozhatja létre vagy frissítheti egy termékre egyéni előfizetési kulcsokkal.
Termék megnyitása – A fejlesztők előfizetési kulcs nélkül férhetnek hozzá egy megnyitott termék API-jához. Konfigurálhat azonban más mechanizmusokat is az API-khoz való ügyfélhozzáférés biztosításához, beleértve az OAuth 2.0-t, az ügyféltanúsítványokat és a hívó IP-címeinek korlátozását.
Feljegyzés
A nyílt termékek nem jelennek meg a fejlesztői portálon, hogy a fejlesztők megismerhessenek vagy feliratkozzanak rá. Ezek csak a Rendszergazdák csoport számára láthatók. Egy másik mechanizmussal tájékoztatnia kell a fejlesztőket azokról az API-król, amelyek előfizetési kulcs nélkül is elérhetők.
Ha egy ügyfél előfizetési kulcs nélkül küld API-kérést:
Az API Management ellenőrzi, hogy az API egy nyitott termékhez van-e társítva. Egy API legfeljebb egy nyitott termékhez társítható.
Ha a nyitott termék létezik, akkor a kérelem feldolgozása a nyitott termék kontextusában történik. A nyitott termékhez konfigurált szabályzatok és hozzáférés-vezérlési szabályok alkalmazhatók.
További információ: Hogyan kezeli az API Management a kéréseket előfizetési kulcsokkal vagy anélkül.
Következő lépések
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Termékek létrehozása és közzététele
- API hozzáadása a termékhez
- Termék API-k elérése
Folytassa a következő oktatóanyaggal:
Ebben a cikkben a Terraform használatával hoz létre egy Azure API Management-példányt, egy API-t, egy terméket, egy csoportot és társításokat a termék és az API, valamint a termék és a csoport között.
A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verzióját és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra változásainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.
- Adja meg a Terraform szükséges verzióját és a szükséges szolgáltatókat.
- Definiálja az erőforráscsoport névelőtagjának, az erőforráscsoport helyének, valamint az API-definíció importálásának tartalomformátumát és értékét.
- Hozzon létre egy véletlenszerű névvel rendelkező erőforráscsoportot.
- Hozzon létre egy véletlenszerű névvel rendelkező API Management-szolgáltatást.
- Hozzon létre egy véletlenszerű névvel rendelkező API-t.
- Véletlenszerű névvel rendelkező termék létrehozása az API Management szolgáltatásban.
- Hozzon létre egy véletlenszerű névvel rendelkező csoportot.
- Társítsa az API-t a termékkel.
- A csoport társítása a termékkel.
- Adja ki a véletlenszerű értékeket, például az erőforráscsoport, az API Management szolgáltatás, az API, a termék és a csoport nevét.
Előfeltételek
Azure-fiók létrehozása aktív előfizetéssel. Ingyenesen létrehozhat fiókot.
A Terraform-kód implementálása
Feljegyzés
A cikk mintakódja az Azure Terraform GitHub-adattárban található. Megtekintheti a Terraform aktuális és korábbi verzióinak teszteredményeit tartalmazó naplófájlt.
További cikkek és mintakód bemutatja, hogyan használható a Terraform az Azure-erőforrások kezelésére.
Hozzon létre egy könyvtárat, amelyben tesztelheti és futtathatja a Terraform-mintakódot, és az aktuális könyvtárá teheti.
Hozzon létre egy nevű
main.tf
fájlt, és szúrja be a következő kódot:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id } resource "random_string" "apim_service_name" { length = 8 lower = true numeric = false special = false upper = false } resource "azurerm_api_management" "apim_service" { name = "${random_string.apim_service_name.result}-apim-service" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name publisher_name = "Example Publisher" publisher_email = "publisher@example.com" sku_name = "Developer_1" tags = { Environment = "Example" } policy { xml_content = <<XML <policies> <inbound /> <backend /> <outbound /> <on-error /> </policies> XML } } resource "random_string" "api_name" { length = 8 lower = true numeric = false special = false upper = false } resource "random_string" "content_value" { length = 8 lower = true numeric = false special = false upper = false } resource "azurerm_api_management_api" "api" { name = "${random_string.api_name.result}-api" resource_group_name = azurerm_resource_group.rg.name api_management_name = azurerm_api_management.apim_service.name revision = "1" display_name = "${random_string.api_name.result}-api" path = "example" protocols = ["https", "http"] description = "An example API" import { content_format = var.open_api_spec_content_format content_value = var.open_api_spec_content_value } } resource "random_string" "product_name" { length = 8 lower = true numeric = false special = false upper = false } resource "azurerm_api_management_product" "product" { product_id = "${random_string.product_name.result}-product" resource_group_name = azurerm_resource_group.rg.name api_management_name = azurerm_api_management.apim_service.name display_name = "${random_string.product_name.result}-product" subscription_required = true approval_required = false published = true description = "An example Product" } resource "random_string" "group_name" { length = 8 lower = true numeric = false special = false upper = false } resource "azurerm_api_management_group" "group" { name = "${random_string.group_name.result}-group" resource_group_name = azurerm_resource_group.rg.name api_management_name = azurerm_api_management.apim_service.name display_name = "${random_string.group_name.result}-group" description = "An example group" } resource "azurerm_api_management_product_api" "product_api" { resource_group_name = azurerm_resource_group.rg.name api_management_name = azurerm_api_management.apim_service.name product_id = azurerm_api_management_product.product.product_id api_name = azurerm_api_management_api.api.name } resource "azurerm_api_management_product_group" "product_group" { resource_group_name = azurerm_resource_group.rg.name api_management_name = azurerm_api_management.apim_service.name product_id = azurerm_api_management_product.product.product_id group_name = azurerm_api_management_group.group.name }
Hozzon létre egy nevű
outputs.tf
fájlt, és szúrja be a következő kódot:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "apim_service_name" { value = azurerm_api_management.apim_service.name } output "api_name" { value = azurerm_api_management_api.api.name } output "product_name" { value = azurerm_api_management_product.product.product_id } output "group_name" { value = azurerm_api_management_group.group.name } output "service_id" { description = "The ID of the API Management Service created" value = azurerm_api_management.apim_service.id } output "gateway_url" { description = "The URL of the Gateway for the API Management Service" value = azurerm_api_management.apim_service.gateway_url } output "service_public_ip_addresses" { description = "The Public IP addresses of the API Management Service" value = azurerm_api_management.apim_service.public_ip_addresses } output "api_outputs" { description = "The IDs, state, and version outputs of the APIs created" value = { id = azurerm_api_management_api.api.id is_current = azurerm_api_management_api.api.is_current is_online = azurerm_api_management_api.api.is_online version = azurerm_api_management_api.api.version version_set_id = azurerm_api_management_api.api.version_set_id } } output "product_id" { description = "The ID of the Product created" value = azurerm_api_management_product.product.id } output "product_api_id" { description = "The ID of the Product/API association created" value = azurerm_api_management_product_api.product_api.id } output "product_group_id" { description = "The ID of the Product/Group association created" value = azurerm_api_management_product_group.product_group.id }
Hozzon létre egy nevű
providers.tf
fájlt, és szúrja be a következő kódot:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Hozzon létre egy nevű
variables.tf
fájlt, és szúrja be a következő kódot:variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "open_api_spec_content_format" { type = string default = "swagger-link-json" description = "The format of the content from which the API Definition should be imported. Possible values are: openapi, openapi+json, openapi+json-link, openapi-link, swagger-json, swagger-link-json, wadl-link-json, wadl-xml, wsdl and wsdl-link." validation { condition = contains(["openapi", "openapi+json", "openapi+json-link", "openapi-link", "swagger-json", "swagger-link-json", "wadl-link-json", "wadl-xml", "wsdl", "wsdl-link"], var.open_api_spec_content_format) error_message = "open_api_spec_content_format must be one of the following: openapi, openapi+json, openapi+json-link, openapi-link, swagger-json, swagger-link-json, wadl-link-json, wadl-xml, wsdl and wsdl-link." } } variable "open_api_spec_content_value" { type = string default = "http://conferenceapi.azurewebsites.net/?format=json" description = "The Content from which the API Definition should be imported. When a content_format of *-link-* is specified this must be a URL, otherwise this must be defined inline." }
A Terraform inicializálása
Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.
terraform init -upgrade
Főbb pontok:
- A
-upgrade
paraméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.
Terraform végrehajtási terv létrehozása
Végrehajtási terv létrehozásához futtassa a Terraform-tervet .
terraform plan -out main.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
Terraform végrehajtási terv alkalmazása
A terraform futtatásával alkalmazza a végrehajtási tervet a felhőinfrastruktúrára.
terraform apply main.tfplan
Főbb pontok:
- A példaparancs
terraform apply
feltételezi, hogy korábban futtatottterraform plan -out main.tfplan
. - Ha másik fájlnevet adott meg a
-out
paraméterhez, használja ugyanazt a fájlnevet a hívásbanterraform apply
. - Ha nem használta a paramétert
-out
, hívjonterraform apply
paraméterek nélkül.
Az eredmények ellenőrzése
Futtassa az apim show
az Azure API Managementet:
az apim show --<apim_service_name> --<resource_group_name>
Az erőforrások eltávolítása
Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:
Futtassa a Terraform-tervet , és adja meg a jelölőt
destroy
.terraform plan -destroy -out main.destroy.tfplan
Főbb pontok:
- A
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását.-out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.
- A
A végrehajtási terv alkalmazásához futtassa a terraformát .
terraform apply main.destroy.tfplan
A Terraform hibaelhárítása az Azure-ban
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása.