Megosztás a következőn keresztül:


Oktatóanyag: Mikroszolgáltatás-kommunikáció a Dapr Publish and Subscribe használatával

Ebben az oktatóanyagban közzétevői és előfizetői mikroszolgáltatásokat hoz létre, amelyek a Dapr Pub/sub API használatával kommunikálnak az eseményvezérelt architektúrák üzenetei használatával. A következőt fogja:

  • Hozzon létre egy közzétevői mikroszolgáltatást és egy előfizetői mikroszolgáltatást, amely a Dapr pub/sub API használatával kommunikál az eseményvezérelt architektúrák üzeneteinek használatával.
  • Helyezze üzembe az alkalmazást az Azure Container Appsben az Azure Developer CLI-vel, a megadott Bicepszel.

A minta pub/alprojekt a következőket tartalmazza:

  1. Egy üzenetgeneráló checkout szolgáltatás (közzétevő), amely egy adott témakör üzeneteit hozza létre.
  2. Egy order-processor szolgáltatás (előfizető), amely egy adott témakör szolgáltatásából érkező checkout üzeneteket figyel.

A pub/alminta ábrája.

Előfeltételek

A Node.js-alkalmazások helyi futtatása

Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout a Dapr és az order-processor Azure Service Bus használatával.

A projekt előkészítése

  1. Klónozza a mintaalkalmazást a helyi gépre.

    git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.git
    
  2. Lépjen a minta gyökérkönyvtárába.

    cd pubsub-dapr-nodejs-servicebus
    

Az alkalmazások futtatása a Dapr parancssori felületével

Először futtassa az előfizetői order-processor szolgáltatást.

  1. A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre order-processor: .

    cd order-processor
    
  2. Telepítse a függőségeket.

    npm install
    
  3. Futtassa a order-processor szolgáltatást.

    dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../components -- npm run start
    
  4. Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a checkout közzétevő szolgáltatáshoz.

    cd checkout
    
  5. Telepítse a függőségeket.

    npm install
    
  6. Futtassa a checkout szolgáltatást.

    dapr run --app-id checkout --app-protocol http --resources-path ../components -- npm run start
    

    Várt kimenet

    Mindkét terminálon a checkout szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket a order-processor szolgáltatás fogadott.

    checkout hozam:

    == APP == Published data: {"orderId":1}
    == APP == Published data: {"orderId":2}
    == APP == Published data: {"orderId":3}
    == APP == Published data: {"orderId":4}
    == APP == Published data: {"orderId":5}
    == APP == Published data: {"orderId":6}
    == APP == Published data: {"orderId":7}
    == APP == Published data: {"orderId":8}
    == APP == Published data: {"orderId":9}
    == APP == Published data: {"orderId":10}
    

    order-processor hozam:

    == APP == Subscriber received: {"orderId":1}
    == APP == Subscriber received: {"orderId":2}
    == APP == Subscriber received: {"orderId":3}
    == APP == Subscriber received: {"orderId":4}
    == APP == Subscriber received: {"orderId":5}
    == APP == Subscriber received: {"orderId":6}
    == APP == Subscriber received: {"orderId":7}
    == APP == Subscriber received: {"orderId":8}
    == APP == Subscriber received: {"orderId":9}
    == APP == Subscriber received: {"orderId":10}
    
  7. Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban:

    dapr stop --app-id checkout
    

    A rendelésfeldolgozó terminálban:

    dapr stop --app-id order-processor
    

Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával

Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd: .

A projekt előkészítése

Egy új terminálablakban lépjen a minta gyökérkönyvtárába .

cd pubsub-dapr-nodejs-servicebus

Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával

  1. Futtassa azd init a projekt inicializálásához.

    azd init
    
  2. Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.

    Paraméter Leírás
    Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja.
    Azure-hely Az erőforrások Azure-beli helye.
    Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés.
  3. Futtassa azd up az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.

    azd up
    

    Ez a folyamat eltarthat egy ideig. azd up A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyan azd up:

    • Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon azd provisionkeresztül../infra Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:
      • main.parameters.json
      • main.bicep
      • Erőforrások app könyvtára funkciók szerint rendszerezve
      • A core sablon által azd használt Bicep-modulokat tartalmazó referenciatár
    • A kód üzembe helyezése a következő használatával: azd deploy

    Várt kimenet

    Initializing a new project (azd init)
    
    
    Provisioning Azure resources (azd provision)
    Provisioning Azure resources can take some time
    
      You can view detailed progress in the Azure Portal:
      https://portal.azure.com
    
      (✓) Done: Resource group: resource-group-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: portal-dashboard-name
      (✓) Done: Log Analytics workspace: log-analytics-name
      (✓) Done: Key vault: key-vault-name
      (✓) Done: Container Apps Environment: ca-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-orders-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service checkout
      (✓) Done: Deploying service orders
      - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/
    
    SUCCESS: Your Azure app has been deployed!
    You can view the resources created under the resource group resource-group-name in Azure Portal:
    https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
    

Sikeres üzembe helyezés megerősítése

Az Azure Portalon ellenőrizze, hogy a checkout szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.

  1. Másolja ki a checkout tárolóalkalmazás nevét a terminál kimenetéből.

  2. Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.

  3. A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.

    Képernyőkép a Naplóstream lapra való navigálásról az Azure Portalon.

  4. Ellenőrizze, hogy a checkout tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.

    Képernyőkép a pénztárszolgáltatás-tároló naplóstreaméről az Azure Portalon.

  5. Tegye ugyanezt a order-processor szolgáltatás esetében is.

    Képernyőkép a rendelésfeldolgozó szolgáltatás tárolójának naplóstreaméről az Azure Portalon.

Mi történt?

A parancs sikeres végrehajtása azd up után:

  • Az Azure Developer CLI kiépítette a mintaprojekt ./infra címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg.
  • Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.

A Python-alkalmazások helyi futtatása

Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout a Dapr és az order-processor Azure Service Bus használatával.

A projekt előkészítése

  1. Klónozza a mintaalkalmazást a helyi gépre.

    git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.git
    
  2. Lépjen a minta gyökérkönyvtárába.

    cd pubsub-dapr-python-servicebus
    

Az alkalmazások futtatása a Dapr parancssori felületével

Először futtassa az előfizetői order-processor szolgáltatást.

  1. A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre order-processor: .

    cd order-processor
    
  2. Telepítse a függőségeket.

    pip3 install -r requirements.txt
    
  3. Futtassa a order-processor szolgáltatást.

    dapr run --app-id order-processor --resources-path ../components/ --app-port 5001 -- python app.py
    

  1. Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a checkout közzétevő szolgáltatáshoz.

    cd checkout
    
  2. Telepítse a függőségeket.

    pip3 install -r requirements.txt
    
  3. Futtassa a checkout szolgáltatást.

    dapr run --app-id checkout --resources-path ../components/ -- python app.py
    

Várt kimenet

Mindkét terminálon a checkout szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket a order-processor szolgáltatás fogadott.

checkout hozam:

== APP == Published data: {"orderId":1}
== APP == Published data: {"orderId":2}
== APP == Published data: {"orderId":3}
== APP == Published data: {"orderId":4}
== APP == Published data: {"orderId":5}
== APP == Published data: {"orderId":6}
== APP == Published data: {"orderId":7}
== APP == Published data: {"orderId":8}
== APP == Published data: {"orderId":9}
== APP == Published data: {"orderId":10}

order-processor hozam:

== APP == Subscriber received: {"orderId":1}
== APP == Subscriber received: {"orderId":2}
== APP == Subscriber received: {"orderId":3}
== APP == Subscriber received: {"orderId":4}
== APP == Subscriber received: {"orderId":5}
== APP == Subscriber received: {"orderId":6}
== APP == Subscriber received: {"orderId":7}
== APP == Subscriber received: {"orderId":8}
== APP == Subscriber received: {"orderId":9}
== APP == Subscriber received: {"orderId":10}
  1. Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban:

    dapr stop --app-id checkout
    

    A rendelésfeldolgozó terminálban:

    dapr stop --app-id order-processor
    

Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával

Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd: .

A projekt előkészítése

Egy új terminálablakban lépjen a minta gyökérkönyvtárába .

cd pubsub-dapr-python-servicebus

Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával

  1. Futtassa azd init a projekt inicializálásához.

    azd init
    
  2. Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.

    Paraméter Leírás
    Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja.
    Azure-hely Az erőforrások Azure-beli helye.
    Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés.
  3. Futtassa azd up az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.

    azd up
    

    Ez a folyamat eltarthat egy ideig. azd up A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyan azd up:

    • Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon azd provisionkeresztül../infra Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:
      • main.parameters.json
      • main.bicep
      • Erőforrások app könyvtára funkciók szerint rendszerezve
      • A core sablon által azd használt Bicep-modulokat tartalmazó referenciatár
    • A kód üzembe helyezése a következő használatával: azd deploy

    Várt kimenet

    Initializing a new project (azd init)
    
    
    Provisioning Azure resources (azd provision)
    Provisioning Azure resources can take some time
    
      You can view detailed progress in the Azure Portal:
      https://portal.azure.com
    
      (✓) Done: Resource group: resource-group-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: portal-dashboard-name
      (✓) Done: Log Analytics workspace: log-analytics-name
      (✓) Done: Key vault: key-vault-name
      (✓) Done: Container Apps Environment: ca-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-orders-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service checkout
      (✓) Done: Deploying service orders
      - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/
    
    SUCCESS: Your Azure app has been deployed!
    You can view the resources created under the resource group resource-group-name in Azure Portal:
    https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
    

Sikeres üzembe helyezés megerősítése

Az Azure Portalon ellenőrizze, hogy a checkout szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.

  1. Másolja ki a checkout tárolóalkalmazás nevét a terminál kimenetéből.

  2. Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.

  3. A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.

    Képernyőkép a Naplóstream lapra való navigálásról az Azure Portalon.

  4. Ellenőrizze, hogy a checkout tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.

    Képernyőkép a pénztárszolgáltatás-tároló naplóstreaméről az Azure Portalon.

  5. Tegye ugyanezt a order-processor szolgáltatás esetében is.

    Képernyőkép a rendelésfeldolgozó szolgáltatás tárolójának naplóstreaméről az Azure Portalon.

Mi történt?

A parancs sikeres végrehajtása azd up után:

  • Az Azure Developer CLI kiépítette a mintaprojekt ./infra címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg.
  • Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.

A .NET-alkalmazások helyi futtatása

Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout a Dapr és az order-processor Azure Service Bus használatával.

A projekt előkészítése

  1. Klónozza a mintaalkalmazást a helyi gépre.

    git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.git
    
  2. Lépjen a minta gyökérkönyvtárába.

    cd pubsub-dapr-csharp-servicebus
    

Az alkalmazások futtatása a Dapr parancssori felületével

Első lépésként futtassa az előfizetői order-processor szolgáltatást

  1. A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre order-processor: .

    cd order-processor
    
  2. Telepítse a függőségeket.

    dotnet build
    
  3. Futtassa a order-processor szolgáltatást.

    dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .
    
  4. Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a checkout közzétevő szolgáltatáshoz.

    cd checkout
    
  5. Telepítse a függőségeket.

    dotnet build
    
  6. Futtassa a checkout szolgáltatást.

    dapr run --app-id checkout --resources-path ../components/ -- dotnet run --project .
    

    Várt kimenet

    Mindkét terminálon a checkout szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket a order-processor szolgáltatás fogadott.

    checkout hozam:

    == APP == Published data: {"orderId":1}
    == APP == Published data: {"orderId":2}
    == APP == Published data: {"orderId":3}
    == APP == Published data: {"orderId":4}
    == APP == Published data: {"orderId":5}
    == APP == Published data: {"orderId":6}
    == APP == Published data: {"orderId":7}
    == APP == Published data: {"orderId":8}
    == APP == Published data: {"orderId":9}
    == APP == Published data: {"orderId":10}
    

    order-processor hozam:

    == APP == Subscriber received: {"orderId":1}
    == APP == Subscriber received: {"orderId":2}
    == APP == Subscriber received: {"orderId":3}
    == APP == Subscriber received: {"orderId":4}
    == APP == Subscriber received: {"orderId":5}
    == APP == Subscriber received: {"orderId":6}
    == APP == Subscriber received: {"orderId":7}
    == APP == Subscriber received: {"orderId":8}
    == APP == Subscriber received: {"orderId":9}
    == APP == Subscriber received: {"orderId":10}
    
  7. Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban.

    dapr stop --app-id checkout
    

    A rendelésfeldolgozó terminálban:

    dapr stop --app-id order-processor
    

Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával

Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd: .

A projekt előkészítése

Egy új terminálablakban lépjen a minta gyökérkönyvtárába .

cd pubsub-dapr-csharp-servicebus

Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával

  1. Futtassa azd init a projekt inicializálásához.

    azd init
    
  2. Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.

    Paraméter Leírás
    Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja.
    Azure-hely Az erőforrások Azure-beli helye.
    Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés.
  3. Futtassa azd up az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.

    azd up
    

    Ez a folyamat eltarthat egy ideig. azd up A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyan azd up:

    • Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon azd provisionkeresztül../infra Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:
      • main.parameters.json
      • main.bicep
      • Erőforrások app könyvtára funkciók szerint rendszerezve
      • A core sablon által azd használt Bicep-modulokat tartalmazó referenciatár
    • A kód üzembe helyezése a következő használatával: azd deploy

    Várt kimenet

    Initializing a new project (azd init)
    
    
    Provisioning Azure resources (azd provision)
    Provisioning Azure resources can take some time
    
      You can view detailed progress in the Azure Portal:
      https://portal.azure.com
    
      (✓) Done: Resource group: resource-group-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: portal-dashboard-name
      (✓) Done: Log Analytics workspace: log-analytics-name
      (✓) Done: Key vault: key-vault-name
      (✓) Done: Container Apps Environment: ca-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-orders-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service checkout
      (✓) Done: Deploying service orders
      - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/
    
    SUCCESS: Your Azure app has been deployed!
    You can view the resources created under the resource group resource-group-name in Azure Portal:
    https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
    

Sikeres üzembe helyezés megerősítése

Az Azure Portalon ellenőrizze, hogy a checkout szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.

  1. Másolja ki a checkout tárolóalkalmazás nevét a terminál kimenetéből.

  2. Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.

  3. A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.

    Képernyőkép a Naplóstream lapra való navigálásról az Azure Portalon.

  4. Ellenőrizze, hogy a checkout tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.

    Képernyőkép a pénztárszolgáltatás-tároló naplóstreaméről az Azure Portalon.

  5. Tegye ugyanezt a order-processor szolgáltatás esetében is.

    Képernyőkép a rendelésfeldolgozó szolgáltatás tárolójának naplóstreaméről az Azure Portalon.

Mi történt?

A parancs sikeres végrehajtása azd up után:

  • Az Azure Developer CLI kiépítette a mintaprojekt ./infra címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg.
  • Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.

Az erőforrások eltávolítása

Ha nem folytatja az alkalmazás használatát, törölje a következő paranccsal kiépített Azure-erőforrásokat:

azd down

Következő lépések