Приложение-функция Azure - Как получить URL-адрес Invoke и код

Я создал и успешно протестировал приложение-функцию, которое требует.net Framework из-за устаревшей библиотеки и настроено на использование версии ~1. Я ищу Invoke Url и код, чтобы помочь автоматизировать развертывание.

После этой статьи MS и использования Azure-functions-core-tools v2 (npm i -g azure-functions-core-tools@^2), Я вижу URL- адресвызова, когда публикация вызывается с --verboseвариант.

Однако из-за требования.net Framework и версии ~ 1 во время выполнения мы привязаны кAzure-functions-core-tools v1(npm i -g azure-functions-core-tools@^1) ( см. здесь). Выполнение любой из команд из func azure functionapp не включает URL-адрес Invoke.--verboseопция недоступна

>func azure functionapp publish <MyApp>

Getting site publishing info...
Publish C:\<MyProject> contents to an Azure Function App. Locally deleted files are not removed from destination.
Creating archive for current directory...
Uploading archive...
Upload completed successfully.

То же самое дляlist-functions

>func azure functionapp list-functions <MyApp>

Functions in <MyApp>:
    FunctionOne - [httpTrigger]
    FunctionTwo - [httpTrigger]

Я еще не пробовал ARM.

Есть ли способ получить URL- адрес вызова для приложений-функций в версии ~ 1 во время выполнения?

3 ответа

Я получаю Invoke Url и код со следующими командами Azure CLI:

      FUNCTION_CODE=$(az functionapp function keys list -g ${SOLUTION_NAME} -n $FUNCTIONS_NAME --function-name DPSCustomAllocationFunction --query "default")
FUNCTION_CODE=$(echo "$FUNCTION_CODE" | tr -d '"') #Remove "" from result
FUNCTION_URL=$(az functionapp function show --function-name DPSCustomAllocationFunction --resource-group $SOLUTION_NAME --query "invokeUrlTemplate" --output tsv --name $FUNCTIONS_NAME)
FUNCTION_URL=$(echo $FUNCTION_URL|tr -d '\r\n') #Remove breaklines from result
INVOKE_FUNCTION="$FUNCTION_URL?code=$FUNCTION_CODE"

Вы можете использовать API REST, чтобы получить его: List Function Secrets, он ответит секретом и triggerUrl.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/functions/{functionName}/listsecrets?api-version=2016-08-01

Также вы можете реализовать это с помощью PowerShell GetFunctionInvokeUrl.

Вы можете сделать это с помощью Azure CLI:

функция az functionapp Показать функцию

      az functionapp function show --function-name MyFunction --name MyApp --resource-group MyResourceGroup --query "invokeUrlTemplate" --output tsv
Другие вопросы по тегам