Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozszerzenie Dapr dla usługi Azure Functions to zestaw narzędzi i usług, które umożliwiają deweloperom łatwe integrowanie usługi Azure Functions z platformą Distributed Application Runtime (Dapr).
Azure Functions to oparta na zdarzeniach usługa obliczeniowa, która udostępnia zestaw wyzwalaczy i powiązań umożliwiających łatwe łączenie się z innymi usługami platformy Azure. Język Dapr udostępnia zestaw bloków konstrukcyjnych i najlepszych rozwiązań dotyczących tworzenia aplikacji rozproszonych, w tym mikrousług, zarządzania stanem, obsługi komunikatów pub/podrzędnych i nie tylko.
Dzięki integracji między językami Dapr i Functions można tworzyć funkcje reagujące na zdarzenia z języka Dapr lub systemów zewnętrznych.
Akcja | Kierunek | Typ |
---|---|---|
Wyzwalanie w powiązaniu wejściowym języka Dapr | Nie dotyczy | daprBindingTrigger |
Wyzwalanie wywołania usługi Dapr | Nie dotyczy | daprServiceInvocationTrigger |
Wyzwalanie w subskrypcji tematu dapr | Nie dotyczy | daprTopicTrigger |
Ściąganie stanu dapr na potrzeby wykonania | W | daprState |
Ściąganie wpisów tajnych języka Dapr na potrzeby wykonywania | W | daprSecret |
Zapisywanie wartości w stanie dapr | Out | daprState |
Wywoływanie innej aplikacji Dapr | Out | daprInvoke |
Publikowanie komunikatu w temacie języka Dapr | Out | daprPublish |
Wysyłanie wartości do powiązania wyjściowego języka Dapr | Out | daprBinding |
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu W# w procesie lub izolowanym procesie roboczym używanym w aplikacji funkcji:
To rozszerzenie jest dostępne przez zainstalowanie pakietu NuGet w wersji 1.0.0.
Korzystanie z interfejsu wiersza polecenia platformy .NET:
dotnet add package Microsoft.Azure.WebJobs.Extensions.Dapr
Instalowanie pakietu
Rozszerzenie można dodać, dodając lub zastępując następujący kod w host.json
pliku:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Włączanie języka Dapr
Język Dapr można skonfigurować przy użyciu różnych [argumentów i adnotacji][dapr-args] na podstawie kontekstu środowiska uruchomieniowego. Język Dapr dla usługi Azure Functions można skonfigurować za pomocą dwóch kanałów:
- Szablony infrastruktury jako kodu (IaC), jak w szablonach Bicep lub Azure Resource Manager (ARM)
- Azure Portal
W przypadku korzystania z szablonu IaC określ następujące argumenty w properties
sekcji definicji zasobu aplikacji kontenera.
DaprConfig: {
enabled: true
appId: '${envResourceNamePrefix}-funcapp'
appPort: 3001
httpReadBufferSize: ''
httpMaxRequestSize: ''
logLevel: ''
enableApiLogging: true
}
Powyższe wartości konfiguracji języka Dapr są uznawane za zmiany zakresu aplikacji. Po uruchomieniu aplikacji kontenera w trybie wielokrotnej wersji zmiany tych ustawień nie będą tworzyć nowej poprawki. Zamiast tego wszystkie istniejące poprawki są uruchamiane ponownie, aby upewnić się, że są skonfigurowane z najbardziej aktualnymi wartościami.
Podczas konfigurowania języka Dapr przy użyciu witryny Azure Portal przejdź do aplikacji funkcji i wybierz pozycję Dapr z menu po lewej stronie:
Porty i odbiorniki języka Dapr
Po wyzwoleniu funkcji z języka Dapr rozszerzenie uwidacznia port 3001
automatycznie w celu nasłuchiwania żądań przychodzących z przyczepki Dapr.
Ważne
Port 3001
jest uwidoczniony i nasłuchuje tylko wtedy, gdy wyzwalacz języka Dapr jest zdefiniowany w aplikacji funkcji. W przypadku korzystania z języka Dapr przyczepka czeka na odebranie odpowiedzi ze zdefiniowanego portu przed ukończeniem tworzenia wystąpienia. Nie należy definiować dapr.io/port
adnotacji ani --app-port
nie mieć wyzwalacza. Może to spowodować zablokowanie aplikacji z przyczepki Dapr.
Jeśli używasz tylko powiązań wejściowych i wyjściowych, port 3001
nie musi być uwidoczniony ani zdefiniowany.
Domyślnie gdy usługa Azure Functions próbuje nawiązać komunikację z językiem Dapr, wywołuje metodę Dapr przez port rozpoznany ze zmiennej środowiskowej DAPR_HTTP_PORT
. Jeśli ta zmienna ma wartość null, wartość domyślna to port 3500
.
Możesz zastąpić adres Dapr używany przez powiązania wejściowe i wyjściowe, ustawiając DaprAddress
właściwość w elemecie function.json
dla powiązania (lub atrybutu). Domyślnie używa polecenia http://localhost:{DAPR_HTTP_PORT}
.
Aplikacja funkcji nadal uwidacznia inny port i punkt końcowy dla elementów, takich jak wyzwalacze HTTP, które lokalnie domyślnie są domyślnie ustawione na 7071
, ale w kontenerze wartość domyślna to 80
.
Typy powiązań
Typy powiązań obsługiwane dla platformy .NET zależą zarówno od wersji rozszerzenia, jak i trybu wykonywania języka C#, który może być jednym z następujących elementów:
Biblioteka klas w procesie jest skompilowaną funkcją języka C# uruchamianą w tym samym procesie co środowisko uruchomieniowe usługi Functions.
Rozszerzenie Języka Dapr obsługuje typy parametrów zgodnie z poniższą tabelą.
Wiązanie | Typy parametrów |
---|---|
Wyzwalacz języka Dapr | daprBindingTrigger daprServiceInvocationTrigger daprTopicTrigger |
Dane wejściowe języka Dapr | daprState daprSecret |
Dane wyjściowe języka Dapr | daprState daprInvoke daprPublish daprBinding |
Przykłady użycia tych typów można znaleźć w repozytorium GitHub dla rozszerzenia.
Wypróbuj rozszerzenie Dapr dla usługi Azure Functions
Dowiedz się, jak używać rozszerzenia Dapr dla usługi Azure Functions za pośrednictwem podanych przykładów.
Przykłady | opis |
---|---|
Szybki start | Rozpocznij pracę przy użyciu powiązania usługi Dapr Pub/sub i HttpTrigger . |
Dapr Kafka | Dowiedz się, jak używać rozszerzenia Dapr usługi Azure Functions z składnikiem Dapr powiązania platformy Kafka. |
Proces in-process platformy .NET | Dowiedz się, jak używać modelu przetwarzania usługi Azure Functions do integracji z wieloma składnikami języka Dapr na platformie .NET, takimi jak wywołanie usługi, pub/pod, powiązania i zarządzanie stanem. |
Izolowana platforma .NET | Integracja ze składnikami języka Dapr na platformie .NET przy użyciu modelu wykonywania out-of-of-proc (OOP) usługi Azure Functions. |
Wypróbuj rozszerzenie Dapr dla usługi Azure Functions
Dowiedz się, jak używać rozszerzenia Dapr dla usługi Azure Functions za pośrednictwem podanych przykładów.
Przykłady | opis |
---|---|
Funkcje Języka Java | Dowiedz się, jak używać rozszerzenia Dapr usługi Azure Functions przy użyciu języka Java. |
Wypróbuj rozszerzenie Dapr dla usługi Azure Functions
Dowiedz się, jak używać rozszerzenia Dapr dla usługi Azure Functions za pośrednictwem podanych przykładów.
Przykłady | opis |
---|---|
Szybki start | Rozpocznij pracę przy użyciu powiązania usługi Dapr Pub/sub i HttpTrigger . |
Dapr Kafka | Dowiedz się, jak używać rozszerzenia Dapr usługi Azure Functions z składnikiem Dapr powiązania platformy Kafka. |
JavaScript | Uruchom aplikację funkcji Języka Dapr języka JavaScript i zintegruj się z wywołaniem usługi Dapr, pubem/sub, powiązaniami i zarządzaniem stanem przy użyciu usługi Azure Functions. |
Wypróbuj rozszerzenie Dapr dla usługi Azure Functions
Dowiedz się, jak używać rozszerzenia Dapr dla usługi Azure Functions za pośrednictwem podanych przykładów.
Przykłady | opis |
---|---|
Funkcje programu PowerShell | Dowiedz się, jak używać rozszerzenia Dapr usługi Azure Functions za pomocą programu PowerShell. |
Wypróbuj rozszerzenie Dapr dla usługi Azure Functions
Dowiedz się, jak używać rozszerzenia Dapr dla usługi Azure Functions za pośrednictwem podanych przykładów.
Przykłady | opis |
---|---|
Dapr Kafka | Dowiedz się, jak używać rozszerzenia Dapr usługi Azure Functions z składnikiem Dapr powiązania platformy Kafka. |
Python v1 | Uruchom aplikację języka Python z obsługą języka Dapr i użyj modelu programowania Języka Python w wersji 1 usługi Azure Functions do integracji ze składnikami języka Dapr. |
Python v2 | Uruchom aplikację dapr przy użyciu modelu programowania języka Python w języku Python w usłudze Azure Functions w wersji 2, aby zintegrować ją ze składnikami języka Dapr. |
Rozwiązywanie problemów
W tej sekcji opisano sposób rozwiązywania problemów, które mogą wystąpić podczas korzystania z rozszerzenia Dapr dla usługi Azure Functions.
Upewnij się, że język Dapr jest włączony w danym środowisku
Jeśli używasz powiązań i wyzwalaczy języka Dapr w usłudze Azure Functions, a język Dapr nie jest włączony w danym środowisku, może zostać wyświetlony komunikat o błędzie: Aby włączyć język Dapr w środowisku: Dapr sidecar isn't present. Please see (https://aka.ms/azure-functions-dapr-sidecar-missing) for more information.
Jeśli funkcja platformy Azure jest wdrożona w usłudze Azure Container Apps, zapoznaj się z instrukcjami dotyczącymi włączania języka Dapr dla rozszerzenia Dapr dla usługi Azure Functions.
Jeśli funkcja platformy Azure jest wdrożona na platformie Kubernetes, sprawdź, czy konfiguracja YAML wdrożenia ma następujące adnotacje:
annotations: ... dapr.io/enabled: "true" dapr.io/app-id: "functionapp" # You should only set app-port if you are using a Dapr trigger in your code. dapr.io/app-port: "<DAPR_APP_PORT>" ...
Jeśli używasz funkcji platformy Azure lokalnie, uruchom następujące polecenie, aby upewnić się, że używasz aplikacji funkcji z językiem Dapr:
dapr run --app-id functionapp --app-port <DAPR_APP_PORT> --components-path <COMPONENTS_PATH> -- func host start
Weryfikowanie wartości portu aplikacji w konfiguracji języka Dapr
Rozszerzenie Dapr dla usługi Azure Functions domyślnie uruchamia serwer HTTP na porcie 3001
. Ten port można skonfigurować przy użyciu zmiennej środowiskowejDAPR_APP_PORT
.
Jeśli podasz nieprawidłową wartość portu aplikacji podczas uruchamiania aplikacji usługi Azure Functions, może zostać wyświetlony komunikat o błędzie: Aby rozwiązać ten komunikat o błędzie: The Dapr sidecar is configured to listen on port {portInt}, but the app server is running on port {appPort}. This may cause unexpected behavior. For more information, visit [this link](https://aka.ms/azfunc-dapr-app-config-error).
W ustawieniach języka Dapr aplikacji kontenera:
Jeśli używasz wyzwalacza języka Dapr w kodzie, sprawdź, czy port aplikacji jest ustawiony na
3001
lub na wartość zmiennej środowiskowejDAPR_APP_PORT
.Jeśli nie używasz wyzwalacza języka Dapr w kodzie, sprawdź, czy port aplikacji nie został ustawiony. Powinien być pusty.
Sprawdź, czy w konfiguracji języka Dapr podasz poprawną wartość portu aplikacji.
Jeśli używasz usługi Azure Container Apps, określ port aplikacji w aplikacji Bicep:
DaprConfig: { ... appPort: <DAPR_APP_PORT> ... }
Jeśli używasz środowiska Kubernetes, ustaw adnotację
dapr.io/app-port
:annotations: ... dapr.io/app-port: "<DAPR_APP_PORT>" ...
Jeśli programujesz lokalnie, sprawdź, czy skonfigurowana
--app-port
podczas uruchamiania aplikacji funkcji przy użyciu języka Dapr:dapr run --app-id functionapp --app-port <DAPR_APP_PORT> --components-path <COMPONENTS_PATH> -- func host start