Ich habe beispielsweise diese Funktion
Ich habe es mit VS -Code mit der folgenden F1 -Option in vs Code
< /p>
Wenn ich zum Funktions -App -Portal gehe, zeigt es nichts unter den Funktionen unter den Funktionen:
Ich weiß nicht, warum ich nicht sehen kann Meine Funktionen in meiner Funktions -App fehlen ich? < /p>
Hier ist der Dummy -Code der Funktion: < /p>
Code: Select all
import azure.functions as func
import logging
import os
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
from azure.communication.email import EmailClient
from datetime import timezone, timedelta, datetime
import jwt
import bcrypt
import pymssql
import json
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route="actualizar_contrasena", auth_level=func.AuthLevel.ANONYMOUS)
def actualizar_contrasena(req: func.HttpRequest) -> func.HttpResponse:
import json
try:
req_body = req.get_json()
username_to_check = req_body.get("username")
password_to_check = str(req_body.get("password"))
# do things
return func.HttpResponse(
json.dumps(
{"access_token": 1, "refresh_token": 1}
),
status_code=200,
)
except Exception as e:
return func.HttpResponse(str(e), status_code=500)
update
Nachdem ich @rithwikboj Anweisungen folgt, bin ich in derselben Situation. Ich habe beobachtet, dass ich die Funktionen vor Ort auch nicht sehen kann:
< /p>
Dies ist mein Host.json < /code>: < /p>
Code: Select all
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
< /code>
Und dies ist meine Struktur: < /p>
root
|_.venv
|_.funcignore
|_host.json
|_function_app.py
|_ local.settings.json
Dies ist meine Anforderungen.txt < /p>
Code: Select all
azure-common==1.1.28
azure-communication-email==1.0.0
azure-core==1.32.0
azure-functions==1.21.3
azure-identity==1.19.0
azure-keyvault-secrets==4.9.0
azure-mgmt-core==1.5.0
bcrypt==4.2.1
certifi==2024.12.14
cffi==1.17.1
charset-normalizer==3.4.1
cryptography==44.0.0
idna==3.10
isodate==0.7.2
jwt==1.3.1
msal==1.31.1
msal-extensions==1.2.0
msrest==0.7.1
oauthlib==3.2.2
portalocker==2.10.1
pycparser==2.22
PyJWT==2.10.1
pymssql==2.3.2
requests==2.32.3
requests-oauthlib==2.0.0
six==1.17.0
typing_extensions==4.12.2
urllib3==2.3.0
< /code>
Ich habe versucht, mit meinem GitHub Repo bereitzustellen. Dies ist der YAML: < /p>
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
# More GitHub Actions for Azure: https://github.com/Azure/actions
# More info on Python, GitHub Actions, and Azure Functions: https://aka.ms/python-webapps-actions
name: Build and deploy Azure Function App - fnc-app-d
on:
push:
branches:
- develop
workflow_dispatch:
env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
PYTHON_VERSION: '3.11' # set this to the python version to use (supports 3.6, 3.7, 3.8)
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read #This is required for actions/checkout
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python version
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Create and start virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install dependencies
run: pip install -r requirements.txt
# Optional: Add step to run tests here
- name: Zip artifact for deployment
run: zip -r release.zip function_app.py host.json -x "*.txt venv/*" ".git/*" ".github/* *.md .gitignore local.*"
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: python-app
path: |
.
!venv/
deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write #This is required for requesting the JWT
contents: read #This is required for actions/checkout
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: python-app
path: .
- name: Unzip artifact for deployment
run: unzip -o release.zip
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_06 }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_88510E }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_38D5 }}
- name: 'Deploy to Azure Functions'
uses: Azure/functions-action@v1
id: deploy-to-function
with:
app-name: 'fnc-app-d'
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
Ich habe festgestellt, dass die Anforderungen.txt in der Funktion App
< /p>
und die Ordnerstruktur wurden nicht aktualisiert, da ich die Readme.md vor einiger Zeit entfernt habe:
Update
Die YAML, jetzt lädt es die Anforderungen hoch. Danach kann ich meine Funktion richtig einsetzen. Aber wenn ich zum Beispiel JWT zum Python -Skript hinzufüge, verschwindet es wieder. Ich muss Bibliotheken zum Skript hinzufügen,
Das ist mein Hauptproblem
Update 3 Hinzufügen des Imports in die Definition jeder Funktion Hinzufügen scheint zu funktionieren: < /p>
Code: Select all
@app.route(route="log_in_user", auth_level=func.AuthLevel.ANONYMOUS)
def log_in_user(req: func.HttpRequest) -> func.HttpResponse:
import json
import jwt # ADDED HERE THE LIBRARY
try:
req_body = req.get_json()
username_to_check = req_body.get("username")
password_to_check = str(req_body.get("password"))
p = jwt.encode({"pass": password_to_check}, "assaasassa", algorithm="HS256")
return func.HttpResponse(
json.dumps(
{"access_token": 1, "refresh_token": 1, "p": p}
),
status_code=200,
)
except Exception as e:
return func.HttpResponse(str(e), status_code=500)
< /code>
Es wird jetzt bereitgestellt. Aber wenn ich versuche, es in azurblau auszuführen: < /p>
Result: Failure Exception: ModuleNotFoundError: No module named 'jwt'