Notatka
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.
W tym przewodniku szybkiego startu użyjesz narzędzi wiersza polecenia dla deweloperów platformy Azure do utworzenia bezserwerowego przepływu pracy, który koordynuje wiele zadań uruchomionych równolegle. Tworzysz zasoby w Azure, weryfikujesz kod lokalnie, a następnie wdrażasz go w nowej aplikacji bezserwerowej działającej w planie Flex Consumption w Azure Functions.
Projekt używa interfejsu wiersza polecenia dla deweloperów platformy Azure (azd), aby uprościć wdrażanie kodu na platformie Azure. To wdrożenie jest zgodne z bieżącymi najlepszymi rozwiązaniami dotyczącymi bezpiecznych i skalowalnych wdrożeń usługi Azure Functions. Ten szybki start przedstawia wzorzec fan-out/fan-in w usłudze Durable Functions, rozszerzeniu, które organizuje stanowe przepływy pracy z trwałym wykonywaniem. Przykładka wykorzystuje Durable Task Scheduler, w pełni zarządzany backend dla Durable Functions, który zastępuje backend Azure Storage. Przykład pobiera tytuły artykułów równocześnie, przy czym orkiestracja dystrybuuje zadania do wielu działań działających jednocześnie, a następnie gromadzi wyniki w celu ich agregacji.
Domyślnie plan Flex Consumption jest zgodny z modelem rozliczeń pay-for-what-you-use, co oznacza, że ukończenie tego przewodnika szybkiego startu wiąże się z niewielkim kosztem, wynoszącym kilka centów lub mniej na koncie Azure.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
Inicjowanie projektu
Użyj polecenia azd init, aby utworzyć lokalny projekt kodu Durable Functions na podstawie szablonu.
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-dotnet-azd -e dfquickstart-dotnetTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu, a następnie przejdź do folderu
fanoutfaninaplikacji:cd durable-functions-quickstart-dotnet-azd/fanoutfanin
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-python-azd -e dfquickstart-pythonTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu, a następnie przejdź do folderu
srcaplikacji:cd durable-functions-quickstart-python-azd/src
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-typescript-azd -e dfquickstart-typescriptTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu, a następnie przejdź do folderu
srcaplikacji:cd durable-functions-quickstart-typescript-azd/src
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-java-azd -e dfquickstart-javaTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu:
cd durable-functions-quickstart-java-azd
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-javascript-azd -e dfquickstart-javascriptTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu, a następnie przejdź do folderu
srcaplikacji:cd durable-functions-quickstart-javascript-azd/src
W lokalnym terminalu lub wierszu polecenia uruchom to
azd initpolecenie w pustym folderze:azd init --template durable-functions-quickstart-powershell-azd -e dfquickstart-powershellTo polecenie ściąga pliki projektu z repozytorium template i inicjuje projekt w nowym folderze. Flaga
-eustawia nazwę bieżącego środowiska. Wazdśrodowisko systemowe zapewnia unikatowy kontekst wdrażania dla twojej aplikacji i można zdefiniować więcej niż jeden z nich. Nazwa środowiska jest również używana w nazwie grupy zasobów utworzonej w Azure.Przejdź do katalogu projektu, a następnie przejdź do folderu
srcaplikacji:cd durable-functions-quickstart-powershell-azd/src
Aprowizuj zasoby platformy Azure
Ten projekt używa polecenia azd provision, aby utworzyć wymagane zasoby platformy Azure, w tym nową aplikację funkcji w planie Flex Consumption, harmonogram Durable Task Scheduler oraz centrum zadań.
Wskazówka
Projekt zawiera zestaw plików Bicep (w folderze infra ), które azd wykorzystuje do utworzenia bezpiecznego wdrożenia w planie wykorzystania Flex, które jest zgodne z najlepszymi praktykami.
Wróć do folderu projektu głównego (folderu, w którym znajduje się plik):
azure.yamlcd ..
- Upewnij się, że nadal jesteś w folderze projektu głównego (folderze, w którym jest plik).
azure.yaml
Wykonaj to polecenie, aby uwierzytelnić się za pomocą swojego konta Azure:
azd auth loginUruchom to polecenie z katalogu projektu głównego, aby
azdutworzyć wymagane zasoby Azure:azd provisionFolder główny zawiera plik definicji
azure.yaml, wymagany przezazd.Po wyświetleniu monitu podaj następujące wymagane parametry wdrożenia:
Parameter Description Subskrypcja platformy Azure Subskrypcja, w ramach której tworzone są zasoby. Jeśli na Twoim koncie jest więcej niż jeden najemca, najpierw musisz wybrać swojego najemcę. Lokalizacja platformy Azure Region platformy Azure, w którym ma zostać utworzona grupa zasobów zawierająca nowe zasoby platformy Azure. Wyświetlane są tylko regiony, które obecnie obsługują plan Flex Consumption. vnetEnabled Czy wdrożyć w sieci wirtualnej. Aby uzyskać ten szybki start, wybierz fałszywe. Polecenie
azd provisionwykorzystuje Twoje odpowiedzi na te prompty wraz z plikami konfiguracyjnymi Bicep, aby utworzyć i skonfigurować te wymagane zasoby Azure:- Plan konsumpcji Flex i aplikacja funkcjonalna
- Azure Storage (wymagane) i Application Insights (zalecane)
- Trwały harmonogram zadań i centrum zadań
- Zasady dostępu i role dla twojego konta
- Połączenia między usługami przy użyciu tożsamości zarządzanych (zamiast przechowywanych parametrów połączenia)
Po pomyślnym zakończeniu działania polecenia zobaczysz linki do utworzonych zasobów.
Provisioning uruchamia także skrypt po provisionacji, który generuje plik local.settings.json w folderze aplikacji. Ten plik zawiera ustawienia połączenia dla wdrożonego endpointu Durable Task Scheduler, który jest potrzebny do uruchomienia projektu lokalnie.
Rozpocznij Azurite
Aby uruchomić projekt lokalnie, runtime Functions potrzebuje lokalnego emulatora pamięci masowej. Ustawienie "AzureWebJobsStorage": "UseDevelopmentStorage=true" w pliku local.settings.json kieruje środowisko wykonawcze do użycia Azurite do tego celu.
W nowym oknie terminala uruchom to polecenie, aby uruchomić Azurite:
azurite --skipApiVersionCheck --location ~/azurite-data
Utrzymuj Azurite włączony w tym oknie terminala podczas testów lokalnych.
Uruchamianie w środowisku lokalnym
W oryginalnym terminalu przejdź do folderu
fanoutfaninaplikacji i uruchom hosta Funkcji:cd fanoutfanin func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego, który uruchamia aranżację:
http://localhost:7071/api/FetchOrchestration_HttpStart
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
W oryginalnym terminalu przejdź do folderu
srcaplikacji, stwórz i aktywuj środowisko wirtualne, zainstaluj zależności i uruchom hosta Functions:cd srcSposób, w jaki tworzysz i aktywujesz swoje wirtualne środowisko (nazwane
.venv), zależy od twojego terminala:python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego uruchamiania HTTP:
http://localhost:7071/api/orchestrators/fetch_orchestration
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
W oryginalnym terminalu przejdź do folderu
srcaplikacji, zainstaluj zależności, zbuduj projekt i uruchom hosta Functions:cd src npm install npm run build func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego uruchamiania HTTP:
http://localhost:7071/api/orchestrators/fetchOrchestration
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
W oryginalnym terminalu zbuduj projekt, a następnie uruchom host Functions z folderu build output:
mvn clean package cd target/azure-functions/durable-functions-quickstart func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego, który uruchamia aranżację:
http://localhost:7071/api/FetchOrchestration_HttpStart
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
W oryginalnym terminalu przejdź do folderu
srcaplikacji, zainstaluj zależności i uruchom hosta Functions:cd src npm install func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego, który uruchamia aranżację:
http://localhost:7071/api/FetchOrchestration_HttpStart
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
W oryginalnym terminalu przejdź do folderu
srcaplikacji i uruchom hosta Funkcji:cd src func startGdy host usługi Functions zostanie uruchomiony w lokalnym folderze projektu, zapisuje lokalne punkty końcowe adresów URL funkcji wyzwalanych przez protokół HTTP do danych wyjściowych terminalu.
Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, nie potrzebujesz klucza dostępu do wywoływania funkcji.
W przeglądarce utwórz żądanie GET do punktu końcowego, który uruchamia aranżację:
http://localhost:7071/api/FetchOrchestration_HttpStart
To żądanie uruchamia nowe wystąpienie orkiestracji. Orkiestracja rozgałęzia się na kilka działań, aby równolegle pobrać tytuły artykułów z usługi Microsoft Learn. Po zakończeniu działań fani orkiestracji wracają do trybu i zwracają tytuły jako sformatowany ciąg.
Punkt końcowy HTTP zwraca odpowiedź JSON z kilkoma adresami URL. Punkt
statusQueryGetUrikońcowy zapewnia stan orkiestracji.statusQueryGetUriSkopiuj wartość i wklej ją w przeglądarce lub narzędziu do testowania HTTP, aby sprawdzić stan aranżacji. Po zakończeniu aranżacji w odpowiedzi zobaczysz pobrane tytuły artykułów.Gdy skończysz, naciśnij Ctrl+C w oknie terminala, aby zatrzymać proces
funchosta.
- Uruchom polecenie
deactivate, aby zamknąć środowisko wirtualne.
Przejrzyj kod (opcjonalnie)
Możesz przejrzeć kod implementujący wzorzec fan-out/fan-in:
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz await Task.WhenAll(parallelTasks); czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
[Function(nameof(FetchOrchestration))]
public static async Task<string> RunOrchestrator(
[OrchestrationTrigger] TaskOrchestrationContext context)
{
ILogger logger = context.CreateReplaySafeLogger(nameof(FetchOrchestration));
logger.LogInformation("Fetching data.");
var parallelTasks = new List<Task<string>>();
// List of URLs to fetch titles from
var urls = new List<string>
{
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps",
};
// Run fetching tasks in parallel
foreach (var url in urls)
{
Task<string> task = context.CallActivityAsync<string>(nameof(FetchTitleAsync), url);
parallelTasks.Add(task);
}
// Wait for all the parallel tasks to complete before continuing
await Task.WhenAll(parallelTasks);
// Return fetched titles as a formatted string
return string.Join("; ", parallelTasks.Select(t => t.Result));
}
Pełny projekt szablonu można przejrzeć tutaj.
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz yield context.task_all(tasks) czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
# List of URLs to fetch titles from
urls = [
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps",
]
# Run fetching tasks in parallel
tasks = []
for url in urls:
task = context.call_activity("fetch_title", url)
tasks.append(task)
# Wait for all the parallel tasks to complete before continuing
results = yield context.task_all(tasks)
# Return fetched titles as a formatted string
return "; ".join(results)
@myApp.activity_trigger(input_name="url")
async def fetch_title(url: str):
"""Activity function that fetches the title from a URL."""
logger = logging.getLogger("FetchTitle")
logger.info(f"Fetching from url {url}.")
try:
async with ClientSession() as session:
Pełny projekt szablonu można przejrzeć tutaj.
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz yield context.df.Task.all(parallelTasks) czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
const urls = [
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps",
];
// Run fetching tasks in parallel
const parallelTasks = [];
for (const url of urls) {
const task = context.df.callActivity(fetchTitleActivityName, url);
parallelTasks.push(task);
}
// Wait for all the parallel tasks to complete before continuing
const results: string[] = yield context.df.Task.all(parallelTasks);
// Return fetched titles as a formatted string
return results.join("; ");
};
df.app.orchestration("fetchOrchestration", fetchOrchestration);
const fetchTitleAsync: ActivityHandler = async function (
url: string,
context: InvocationContext
Pełny projekt szablonu można przejrzeć tutaj.
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz ctx.allOf(parallelTasks).await() czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
@FunctionName("FetchOrchestration")
public String runOrchestrator(
@DurableOrchestrationTrigger(name = "taskOrchestrationContext") TaskOrchestrationContext ctx) {
List<String> urls = List.of(
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps"
);
// Fan out: run fetching tasks in parallel
List<Task<String>> parallelTasks = urls.stream()
.map(url -> ctx.callActivity("FetchTitle", url, String.class))
.collect(Collectors.toList());
// Fan in: wait for all parallel tasks to complete
List<String> results = ctx.allOf(parallelTasks).await();
// Return fetched titles as a formatted string
return String.join("; ", results);
}
Pełny projekt szablonu można przejrzeć tutaj.
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz yield context.df.Task.all(parallelTasks) czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
df.app.orchestration('fetchOrchestration', function* (context) {
context.log("Fetching data.");
const urls = [
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps",
];
// Fan out: run fetching tasks in parallel
const parallelTasks = urls.map(url => context.df.callActivity(activityName, url));
// Fan in: wait for all parallel tasks to complete
const results = yield context.df.Task.all(parallelTasks);
// Return fetched titles as a formatted string
return results.join("; ");
});
Pełny projekt szablonu można przejrzeć tutaj.
Działania związane z pobieraniem tytułów są śledzone przy użyciu dynamicznej listy zadań. Wiersz Wait-ActivityFunction -Task $parallelTasks czeka na ukończenie wszystkich wywołanych działań, które są uruchamiane współbieżnie. Po zakończeniu wszystkie dane wyjściowe są agregowane jako sformatowany ciąg.
param($Context)
$urls = @(
"https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview",
"https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler",
"https://learn.microsoft.com/azure/azure-functions/functions-scenarios",
"https://learn.microsoft.com/azure/azure-functions/functions-create-ai-enabled-apps"
)
# Fan out: run fetching tasks in parallel
$parallelTasks = @()
foreach ($url in $urls) {
$parallelTasks += Invoke-DurableActivity -FunctionName 'FetchTitle' -Input $url -NoWait
}
# Fan in: wait for all parallel tasks to complete
$results = Wait-ActivityFunction -Task $parallelTasks
# Return fetched titles as a formatted string
$output = $results -join "; "
$output
Pełny projekt szablonu można przejrzeć tutaj.
Po lokalnym zweryfikowaniu funkcji czas na wdrożenie ich na Azure.
Wdrażanie na platformie Azure
Uruchom to polecenie z folderu projektu głównego, aby wdrożyć swój projekt kodu do aplikacji funkcji w Azure:
azd deploy
Polecenie azd deploy pakuje i wdraża twój kod do aplikacji funkcji utworzonej podczas aprowizacji. Po zakończeniu wykonywania polecenia aplikacja uruchamia się i działa we wdrożonym pakiecie.
Wywoływanie funkcji na platformie Azure
Teraz możesz wywołać punkt końcowy aranżacji na platformie Azure, wysyłając żądanie HTTP do jego adresu URL. Gdy funkcje działają w Azure, autoryzacja klucza dostępu jest wymuszana i musisz podać klucz dostępu funkcji wraz z żądaniem.
Możesz użyć narzędzi Core Tools, aby uzyskać adres URL punktu końcowego wyzwalacza HTTP, który uruchamia orkiestrację na platformie Azure.
W lokalnym terminalu lub wierszu polecenia uruchom następujące polecenia, aby uzyskać wartości punktu końcowego adresu URL:
APP_NAME=$(azd env get-value AZURE_FUNCTION_NAME) func azure functionapp list-functions $APP_NAME --show-keysPolecenie
azd env get-valuepobiera nazwę aplikacji funkcjonalnej z lokalnego środowiska. W przypadku używania opcji--show-keyszfunc azure functionapp list-functions, zwracana wartość adresu URL wywołania: dla każdego punktu końcowego zawiera wszystkie wymagane klucze dostępu na poziomie funkcji.Użyj przeglądarki lub narzędzia do testów HTTP, aby wysłać żądanie GET do punktu startowego HTTP i rozpocząć orkiestrację w aplikacji funkcjonalnej działającej w Azure.
Ponowne wdrażanie kodu
Uruchamiaj azd deploy tyle razy, ile potrzebujesz, aby wdrożyć aktualizacje kodu w aplikacji funkcjonalnej. Jeśli musisz zaktualizować zasoby Azure, uruchom ponownieazd provision.
Note
Najnowszy pakiet wdrożeniowy zawsze zastępuje wdrożone pliki kodu.
Początkowe odpowiedzi na polecenia azd oraz wszelkie zmienne środowiskowe wygenerowane przez azd są przechowywane lokalnie w środowisku o podanej nazwie. Użyj polecenia azd env get-values, aby przejrzeć wszystkie zmienne w środowisku użytym podczas tworzenia zasobów Azure.
Uprzątnij zasoby
Po zakończeniu pracy z aplikacją funkcji i powiązanymi zasobami użyj tego polecenia, aby usunąć aplikację funkcji i powiązane z nią zasoby z platformy Azure i uniknąć ponoszenia dodatkowych kosztów:
azd down --no-prompt
Note
Opcja --no-prompt powoduje azd usunięcie grupy zasobów bez potwierdzenia.
To polecenie nie ma wpływu na lokalny projekt kodu.