Felhőesemények átirányítása Webhookokra az Azure Event Grid használatával a Kubernetesen
Ebben a rövid útmutatóban létrehoz egy témakört az Event Gridben a Kubernetesen, létrehoz egy előfizetést a témakörhöz, majd elküld egy mintaeseményt a témakörnek a forgatókönyv teszteléséhez.
Fontos
Az Event Grid a Kubernetesen és az Azure Arcon jelenleg nyilvános előzetes verzióban érhető el. Erre az előzetes verzióra nem vonatkozik szolgáltatói szerződés, és a használata nem javasolt éles számítási feladatok esetén. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
Előfeltételek
- Csatlakozás a Kubernetes-fürtöt az Azure Arcba.
- Telepítse az Event Grid-bővítményt a Kubernetes-fürtre. Ez a bővítmény üzembe helyezi az Event Gridet egy Kubernetes-fürtön.
Egyéni hely létrehozása
Azure-helybővítményként egy egyéni hely lehetővé teszi, hogy az Azure Arc-kompatibilis Kubernetes-fürtöt célhelyként használja az erőforrások, például az Event Grid-témakörök üzembe helyezéséhez. Az egyéni hely egy névteret jelöl a fürtben, és a témakörök és az esemény-előfizetések üzembe helyezésének helye. Ebben a szakaszban létrehoz egy egyéni helyet.
Deklarálja az alábbi változókat az Azure Arc-fürt, az erőforráscsoport és az egyéni helynevek értékeinek tárolásához. Másolja ezeket az utasításokat egy szerkesztőbe, cserélje le az értékeket, majd másolja/illessze be a bash ablakba.
resourcegroupname="<AZURE RESOURCE GROUP NAME>" arcclustername="<AZURE ARC CLUSTER NAME>" customlocationname="<CUSTOM LOCATION NAME>"
Kérje le az Azure Archoz csatlakoztatott fürt erőforrás-azonosítóját. A parancs futtatása előtt frissítse az Azure Arc-fürt nevének és erőforráscsoport-paramétereinek értékeit.
hostresourceid=$(az connectedk8s show -n $arcclustername -g $resourcegroupname --query id -o tsv)
Kérje le az Event Grid-bővítmény erőforrás-azonosítóját. Ez a lépés feltételezi, hogy az Event Grid-bővítményhez megadott név eventgrid-ext. A parancs futtatása előtt frissítse az Azure Arc-fürt és az erőforráscsoport nevét.
clusterextensionid=$(az k8s-extension show --name eventgrid-ext --cluster-type connectedClusters -c $arcclustername -g $resourcegroupname --query id -o tsv)
Hozzon létre egy egyéni helyet az előző lépés két értékével. A parancs futtatása előtt frissítse az egyéni hely- és erőforráscsoportneveket.
az customlocation create -n $customlocationname -g $resourcegroupname --namespace arc --host-resource-id $hostresourceid --cluster-extension-ids $clusterextensionid
Kérje le az egyéni hely erőforrás-azonosítóját. A parancs futtatása előtt frissítse az egyéni hely nevét.
customlocationid=$(az customlocation show -n $customlocationname -g $resourcegroupname --query id -o tsv)
Az egyéni helyek létrehozásával kapcsolatos további információkért lásd : Egyéni helyek létrehozása és kezelése az Azure Arc-kompatibilis Kubernetesben.
Üzenettémakör létrehozása
Ebben a szakaszban egy témakört hoz létre az előző lépésben létrehozott egyéni helyen. A parancs futtatása előtt frissítse az erőforráscsoport és az Event Grid-témakör nevét. Frissítse a helyet, ha az USA keleti régiójától eltérő helyet használ.
Deklaráljon egy változót a témakör nevének tárolásához.
topicname="<TOPIC NAME>"
Témakör létrehozásához futtassa a következő parancsot.
az eventgrid topic create -g $resourcegroupname --name $topicname --kind azurearc --extended-location-name $customlocationid --extended-location-type customlocation --input-schema CloudEventSchemaV1_0 --location $region
A parancssori felület parancsával kapcsolatos további információkért lásd:
az eventgrid topic create
.
Üzenetvégpont létrehozása
Mielőtt létrehoz egy előfizetést az egyéni témakörhöz, hozzon létre egy végpontot az eseményüzenethez. A végpont általában az eseményadatok alapján hajt végre műveleteket. A rövid útmutató egyszerűsítése érdekében üzembe kell helyeznie egy előre összeállított webalkalmazást , amely megjeleníti az eseményüzeneteket. Az üzembe helyezett megoldás egy App Service-csomagot, egy App Service-webalkalmazást és egy, a GitHubról származó forráskódot tartalmaz.
A cikkoldalon válassza az Üzembe helyezés az Azure-ban lehetőséget a megoldás előfizetésben való üzembe helyezéséhez. Az Azure Portalon adjon meg értékeket a paraméterekhez.
Az üzembe helyezés befejezése eltarthat néhány percig. A sikeres üzembe helyezést követően tekintse meg a webalkalmazást, hogy meggyőződjön annak működéséről. Egy webböngészőben navigáljon a következő helyre:
https://<your-site-name>.azurewebsites.net
.Ha az üzembe helyezés sikertelen, ellenőrizze a hibaüzenetet. Ennek az lehet az oka, hogy a webhely neve már elkészült. Telepítse újra a sablont, és válasszon másik nevet a webhelynek.
A hely látható, de még nem lett közzétéve esemény.
Előfizetés létrehozása
Az előfizetők regisztrálhatnak a témában közzétett eseményekre. Az események fogadásához létre kell hoznia egy Event Grid-előfizetést egy érdekes témához. Az esemény-előfizetés határozza meg, hogy a rendszer mely célhelyre küldi ezeket az eseményeket. Az összes támogatott célhelyről vagy kezelőről további információt az Eseménykezelők című témakörben talál.
Ha WebHook -célhelyet (HTTPS-végpontot) tartalmazó esemény-előfizetést szeretne létrehozni, adja meg az esemény-előfizetés nevét, frissítse a webhely nevét, és futtassa a következő parancsot.
topicid=$(az eventgrid topic show --name $topicname --resource-group $resourcegroupname --query id -o tsv)
az eventgrid event-subscription create --name <EVENT SUBSCRIPTION NAME> --source-resource-id $topicid --endpoint https://<SITE NAME>.azurewebsites.net/api/updates
A parancssori felület parancsával kapcsolatos további információkért lásd: az eventgrid event-subscription create
.
Események küldése a témakörbe
Futtassa a következő parancsot a témakör végpontjának lekéréséhez: A parancs másolása és beillesztése után frissítse a témakör nevét és az erőforráscsoport nevét a parancs futtatása előtt. A mintaeseményeket közzéteheti ebben a témakörvégpontban.
az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv
Futtassa a következő parancsot az egyéni témakör kulcsának lekéréséhez: A parancs másolása és beillesztése után frissítse a témakör nevét és az erőforráscsoport nevét a parancs futtatása előtt. Ez a témakör elsődleges kulcsa. Ha le szeretné szerezni ezt a kulcsot az Azure Portalról, váltson az Event Grid-témakör lapJának Hozzáférési kulcsok lapjára. Ahhoz, hogy egy eseményt közzétehessen egy egyéni témakörbe, szüksége van a hozzáférési kulcsra.
az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv
Futtassa a következő Curl-parancsot az esemény közzétételéhez. A parancs futtatása előtt adja meg a végpont URL-címét és kulcsát az 1. és a 2. lépésben.
curl -k -X POST -H "Content-Type: application/cloudevents-batch+json" -H "aeg-sas-key: <KEY_FROM_STEP_2>" -g <ENDPOINT_URL_FROM_STEP_1> \ -d '[{ "specversion": "1.0", "type" : "orderCreated", "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName", "id" : "eventId-n", "time" : "2020-12-25T20:54:07+00:00", "subject" : "account/acct-123224/order/o-123456", "dataSchema" : "1.0", "data" : { "orderId" : "123", "orderType" : "PO", "reference" : "https://www.myCompanyName.com/orders/123" } }]'
Ha az 1. lépésből származó témakörvégpont URL-címe egy privát IP-cím, például abban az esetben, ha az Event Grid-közvetítő szolgáltatástípusa ClusterIP, akkor a Fürt egy másik podján belülről hajthatja végre a Curlt , hogy hozzáférhessen az adott IP-címhez. Például a következő lépéseket hajthatja végre:
Hozzon létre egy jegyzékfájlt az alábbi konfigurációval. Előfordulhat, hogy az igényeinek megfelelően szeretné módosítani a
dnsPolicy
módosításokat. További információ: DNS for Services and Pods.apiVersion: v1 kind: Pod metadata: name: test-pod2 spec: containers: - name: nginx image: nginx hostNetwork: true dnsPolicy: ClusterFirstWithHostNet
Hozza létre a podot.
kubectl apply -f <name_of_your_yaml_manifest_file>
Ellenőrizze, hogy fut-e a pod.
kubectl get pod test-pod
Rendszerhéj-munkamenet indítása a tárolóból
kubectl exec --stdin --tty test-pod -- /bin/bash
Ezen a ponton a fürt egy futó tárolójából származó rendszerhéj-munkamenettel rendelkezik, amelyből végrehajthatja a korábbi lépésben leírt Curl-parancsot .
Feljegyzés
A felhőesemények programozási nyelvek használatával történő küldéséhez tekintse meg az alábbi példákat:
- C#.
- Java
- JavaScript és TypeScript
- Python
Ellenőrzés az Event Grid-megjelenítőben
Ön kiváltotta az eseményt, az Event Grid pedig elküldte az üzenetet a feliratkozáskor konfigurált végpontnak. Tekintse meg a webalkalmazást az imént elküldött esemény megtekintéséhez.
Következő lépések
Tekintse meg az alábbi cikkeket:
- Eseménykezelők és -célhelyek – információkat nyújt a Kubernetes Event Grid által támogatott eseménykezelőiről és célhelyeiről.
- Eseményszűrés – információkat nyújt az esemény-előfizetések eseményeinek szűréséről.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: