Tworzenie i usuwanie tras i punktów końcowych przy użyciu usługi Azure Resource Manager
W tym artykule pokazano, jak wyeksportować szablon usługi Azure IoT Hub, dodać trasę do centrum IoT Hub, a następnie ponownie wdrożyć szablon w centrum IoT przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Użyj szablonu usługi Azure Resource Manager, aby utworzyć trasy i punkty końcowe. Usługa IoT Hub obsługuje następujące usługi platformy Azure jako punkty końcowe:
- Kontenery magazynu
- Event Hubs
- Kolejki usługi Service Bus
- Tematy usługi Service Bus
- Cosmos DB
Szablony usługi Azure Resource Manager są przydatne, gdy chcesz zdefiniować zasoby przy użyciu pliku JSON. Każdy zasób platformy Azure ma szablon definiujący składniki używane w tym zasobie. Możesz wyeksportować wszystkie szablony zasobów platformy Azure.
Ważne
Gdy używasz szablonu usługi Resource Manager do wdrażania zasobu, szablon zastępuje dowolny istniejący zasób typu, który wdrażasz.
Podczas tworzenia nowego centrum IoT zastępowanie istniejącego wdrożonego zasobu nie jest problemem. Aby utworzyć nowe centrum IoT, możesz użyć podstawowego szablonu , który ma wymagane właściwości, zamiast eksportować istniejący szablon z już wdrożonego centrum IoT.
Jeśli jednak dodasz trasę do istniejącego centrum IoT, użyj szablonu wyeksportowanego z centrum IoT, aby upewnić się, że wszystkie istniejące zasoby i właściwości pozostaną połączone po wdrożeniu zaktualizowanego szablonu. Zasoby, które zostały już wdrożone, nie zostaną zastąpione. Na przykład wyeksportowany szablon usługi Resource Manager, który został wcześniej wdrożony, może zawierać informacje o magazynie centrum IoT, jeśli połączono go z magazynem.
Aby dowiedzieć się więcej o sposobie działania routingu w usłudze IoT Hub, zobacz Używanie routingu komunikatów usługi IoT Hub w celu wysyłania komunikatów z urządzenia do chmury do różnych punktów końcowych. Aby zapoznać się z krokami konfigurowania trasy, która wysyła komunikaty do magazynu, a następnie testować na symulowanym urządzeniu, zobacz Samouczek: wysyłanie danych urządzenia do usługi Azure Storage przy użyciu routingu komunikatów usługi IoT Hub.
Wymagania wstępne
Zapoznaj się z wymaganiami wstępnymi dotyczącymi tego artykułu na podstawie typu punktu końcowego, do którego chcesz kierować komunikaty.
Subskrypcja Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Centrum IoT. Jeśli nie masz centrum, możesz wykonać kroki tworzenia centrum IoT Hub.
Zasób usługi Event Hubs (z kontenerem). Jeśli musisz utworzyć nowy zasób usługi Event Hubs, zobacz Szybki start: tworzenie centrum zdarzeń przy użyciu szablonu usługi Resource Manager.
(Zalecane) Tożsamość zarządzana z uprawnieniami kontroli dostępu na podstawie ról dla przestrzeni nazw usługi Event Hubs. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie tożsamości zarządzanej za pomocą identyfikatora entra firmy Microsoft w celu uzyskania dostępu do zasobów usługi Event Hubs.
Szablon usługi Azure Resource Manager
W tym artykule użyto szablonu usługi Azure Resource Manager w witrynie Azure Portal do pracy z usługą IoT Hub i innymi usługami platformy Azure. Aby dowiedzieć się więcej na temat używania szablonów usługi Resource Manager, zobacz Co to są szablony usługi Azure Resource Manager?
Tworzenie trasy
W usłudze IoT Hub możesz utworzyć trasę do wysyłania komunikatów lub przechwytywania zdarzeń. Każda trasa ma źródło danych i punkt końcowy. Źródło danych to miejsce, z którego pochodzą komunikaty lub dzienniki zdarzeń. Punkt końcowy to miejsce, w którym kończą się komunikaty lub dzienniki zdarzeń. Lokalizacje źródła danych i punktu końcowego są wybierane podczas tworzenia nowej trasy w centrum IoT. Następnie użyjesz zapytań routingu do filtrowania komunikatów lub zdarzeń przed przejściem do punktu końcowego.
Możesz użyć centrum zdarzeń, kolejki lub tematu usługi Service Bus albo konta usługi Azure Storage jako punktu końcowego dla trasy centrum IoT. Usługa używana do tworzenia punktu końcowego musi najpierw istnieć na koncie platformy Azure.
Eksportowanie szablonu usługi Resource Manager centrum IoT
Najpierw wyeksportuj szablon usługi Resource Manager z centrum IoT. Eksportując szablon z centrum IoT, możesz dodać punkt końcowy i kierować zasoby oraz ponownie wdrożyć bez utraty istniejącego ustawienia.
W witrynie Azure Portal przejdź do centrum IoT Hub. W menu zasobów w obszarze Automatyzacja wybierz pozycję Eksportuj szablon.
W obszarze Eksportowanie szablonu na karcie Szablon wykonaj następujące kroki:
Wyświetl plik JSON wygenerowany dla centrum IoT Hub.
Wyczyść pole wyboru Uwzględnij parametry .
Wybierz pozycję Pobierz , aby pobrać lokalną kopię pliku JSON.
Szablon zawiera kilka symboli zastępczych, których można użyć do dodawania funkcji lub usług do centrum IoT. W tym artykule dodaj wartości tylko do właściwości, które znajdują się lub są zagnieżdżone w obszarze
routing
.
Dodawanie punktu końcowego do szablonu
Każda trasa wskazuje punkt końcowy, w którym kończą się komunikaty lub dzienniki zdarzeń. Utwórz punkt końcowy w centrum IoT, do którego może się odwoływać trasa. Możesz użyć centrum zdarzeń, kolejki lub tematu usługi Service Bus, konta magazynu platformy Azure lub kontenera usługi Cosmos DB jako punktu końcowego dla trasy centrum IoT. Usługa używana do tworzenia punktu końcowego musi najpierw istnieć na koncie platformy Azure.
Twoje centrum IoT potrzebuje uprawnień dostępu do dowolnego zasobu punktu końcowego, do którego wysyła komunikaty lub dzienniki. Dostęp można zapewnić przy użyciu tożsamości zarządzanych i identyfikatora Entra firmy Microsoft lub parametry połączenia s. Firma Microsoft zaleca uwierzytelnianie przy użyciu identyfikatora Entra jako bezpieczniejszej opcji.
Dodaj punkt końcowy usługi Event Hubs do szablonu usługi Resource Manager. Aby uzyskać więcej informacji, zobacz Azure Resource Manager template RoutingEventHubProperties.
W pliku JSON znajdź
"endpoints": []
właściwość zagnieżdżona w obszarze"routing"
.Zastąp
"endpoints": []
wiersz następującym kodem JSON:"endpoints": { "serviceBusQueues": [], "serviceBusTopics": [], "eventHubs": [ { "endpointUri": "", "entityPath": "", "authenticationType": "identityBased", "identity": { "userAssignedIdentity": "" }, "name": "", "id": "", "subscriptionId": "", "resourceGroup": "" } ], "storageContainers": [], "cosmosDBSqlContainers": [] },
Zaktualizuj kod JSON przy użyciu następujących informacji o zasobie usługi Event Hubs:
Właściwości Wartość endpointUri (Jeśli typ uwierzytelniania to identityBased
; w przeciwnym razie usuń. Nazwa hosta przestrzeni nazw usługi Event Hubs w formaciesb://<eventhubs_namespace_name>.servicebus.windows.net
entityPath (Jeśli typ uwierzytelniania to identityBased
; w przeciwnym razie usuń. Nazwa centrum zdarzeń.authenticationType Usługa identityBased
lubkeyBased
. Firma Microsoft zaleca uwierzytelnianie oparte na tożsamościach jako najbezpieczniejszą opcję.tożsamości (Jeśli typ uwierzytelniania to identityBased
.) Możesz użyć tożsamości zarządzanej przypisanej przez użytkownika lub tożsamości zarządzanej przypisanej przez system, jeśli usługa IoT Hub ma włączoną tożsamość zarządzaną przypisaną przez system.
W przypadku przypisanego przez użytkownika: zewnętrzny identyfikator tożsamości zarządzanej z uprawnieniami dostępu do centrum zdarzeń w formacie/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>
.
W przypadku przypisanego przez system: pozostaw parametr tożsamości jako pustą listę. Na przykład"identity": {},
Parametry połączenia (Jeśli typ uwierzytelniania to keyBased
.) Podstawowa parametry połączenia z jednego z zasad dostępu współdzielonego centrum zdarzeń w formacie<connection_string>;EntityPath=<event_hub_name>.
Możesz pobrać wartość parametry połączenia z witryny Azure Portal, a następnie dołączyć ścieżkę jednostki.name Podaj unikatową wartość, aby nazwać punkt końcowy. identyfikator Pozostaw jako pusty ciąg. Usługa platformy Azure udostępnia wartość podczas tworzenia punktu końcowego. subscriptionId Identyfikator subskrypcji zawierającej centrum zdarzeń. resourceGroup Nazwa grupy zasobów zawierającej centrum zdarzeń. Napiwek
W przypadku zarządzania wpisami tajnymi można utworzyć plik parametrów lub użyć usługi Azure Key Vault, aby przekazać bezpieczne wartości parametrów podczas wdrażania.
Dodawanie trasy do szablonu
Dodaj definicję trasy do szablonu usługi Resource Manager. Aby uzyskać więcej informacji, zobacz Temat RouteProperties szablonu usługi Azure Resource Manager.
W pliku JSON znajdź
"routes": []
właściwość zagnieżdżona w obszarze"routing"
i dodaj nową trasę.Uwaga
Jeśli zastąpisz jakiekolwiek istniejące wartości parametru
"routes"
wartościami tras używanymi w poniższych przykładach kodu, istniejące trasy zostaną usunięte podczas wdrażania. Aby zachować istniejące trasy, dodaj nowy obiekt trasy do"routes"
listy."routes": [ { "name": "", "source": "DeviceConnectionStateEvents", "condition": "true", "endpointNames": [ "" ], "isEnabled": true } ],
Zaktualizuj kod JSON przy użyciu następujących informacji o zasobie usługi Cosmos DB:
Właściwości Wartość name Podaj unikatową wartość, aby nazwać trasę. source Wybierz źródło komunikatów lub dzienników zdarzeń, aby kierować do punktu końcowego. Aby uzyskać listę opcji źródłowych, zobacz az iot hub route. condition Zapytanie do filtrowania danych źródłowych. Jeśli warunek nie jest wymagany, powiedzmy true
. Aby uzyskać więcej informacji, zobacz Składnia zapytania routingu komunikatów usługi IoT Hub.endpointNames Nazwa istniejącego punktu końcowego, w którym będą kierowane te dane. Obecnie dozwolony jest tylko jeden punkt końcowy. isEnabled Ustaw wartość na , aby true
włączyć trasę lubfalse
wyłączyć trasę.Zapisz plik JSON.
Wdrażanie szablonu usługi Resource Manager
Po dodaniu nowego punktu końcowego i trasy do szablonu usługi Resource Manager można teraz wdrożyć plik JSON z powrotem do centrum IoT.
Wdrożenie lokalne
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "my\path\to\template.json"
Wdrażanie usługi Azure Cloud Shell
Ponieważ usługa Azure Cloud Shell działa w przeglądarce internetowej, możesz przekazać plik szablonu przed uruchomieniem polecenia wdrożenia. Po przekazaniu pliku potrzebne są tylko nazwy pliku szablonu (zamiast całej ścieżki pliku) do użycia w parametrze template-file
.
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "template.json"
Uwaga
Jeśli wdrożenie zakończy się niepowodzeniem, użyj przełącznika -verbose
, aby uzyskać informacje o tworzonych zasobach. Użyj przełącznika -debug
, aby uzyskać więcej informacji na temat debugowania.
Potwierdzanie wdrożenia
Aby potwierdzić, że szablon został pomyślnie wdrożony na platformie Azure, w witrynie Azure Portal przejdź do zasobu grupy zasobów. W menu zasobów w obszarze Ustawienia wybierz pozycję Wdrożenia , aby wyświetlić szablon na liście wdrożeń.
Aby wyświetlić nową trasę w witrynie Azure Portal, przejdź do zasobu usługi IoT Hub. W okienku Routing komunikatów na karcie Trasy upewnij się, że trasa jest wyświetlana.
Następne kroki
W tym artykule z instrukcjami przedstawiono sposób tworzenia trasy i punktu końcowego dla usługi Event Hubs, kolejek i tematów usługi Service Bus oraz usługi Azure Storage.
Aby dowiedzieć się więcej na temat routingu komunikatów, zobacz Samouczek: wysyłanie danych urządzenia do usługi Azure Storage przy użyciu routingu komunikatów usługi IoT Hub. W tym samouczku utworzysz trasę magazynu i przetestujesz ją za pomocą urządzenia w centrum IoT.