Код: Выделить всё
import base64
import requests
from urllib.parse import urlencode
import os
username = os.environ["username"]
password = os.environ["password"]
encoded_username = urlencode({"username": username}).split('=')[1]
encoded_password = urlencode({"password": password}).split('=')[1]
# Combine username and password into a single string
url_cred = f"{encoded_username}:{encoded_password}"
# Encode the combined string in Base64
encoded_b64 = base64.b64encode(url_cred.encode('utf-8')).decode('utf-8')
# Set up headers for the POST request
headers = {
"authorization": f"Basic {encoded_b64}"
}
# Set up body for the POST request
body = {
"grant_type": "client_credentials"
}
# Obtain access token with GET request
response = requests.post("https://examplewebsite.com/oauth2/token", headers=headers, data=body)
token = response.json().get('access_token')
# Set up headers for the GET request with the access token
auth_header = {
"authorization": f"Bearer {token}"
}
# Make the GET request to retrieve users
response = requests.get("https://examplewebsite.com", headers=auth_header)
# ! This is the GET request I want to use to trigger the function !
results = response.json()
username_results = []
for data in results:
for elem in results["usersResult"]:
username_results.append(elem['userName'])
for name in username_results:
print(name)
Код: Выделить всё
import azure.functions as func
import logging
import json
import requests
import base64
from urllib.parse import urlencode
import os
app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)
username = os.environ["username"]
password = os.environ["password"]
@app.route(route="api_call")
def api_call(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
# URL encode username and password
encoded_username = urlencode({"username": username}).split("=")[1]
encoded_password = urlencode({"password": password}).split("=")[1]
url_cred = f"{encoded_username}:{encoded_password}"
# Encode in Base64
encoded_64 = base64.b64encode(url_cred.encode("utf-8")).decode("utf-8")
# Headers for POST request
headers = {
"authorization": f"Basic {encoded_64}"
}
# Body for POST request
body = {
"grant_type": "client_credentials"
}
# Obtain access token with GET request
response = requests.post("https://examplewebsite.com/oauth2/token", headers=headers, data=body)
token = response.json().get("access_token")
# Headers for GET request with access token
auth_header = {
"authorization": f"Bearer {token}"
}
# Make GET request to retrieve users
res = requests.get("https://examplewebsite.com", headers=auth_header)
# ! The GET request I want to use to trigger the function !
results = req.get_json(res)
# Filter results and return only usernames
username_results = []
for data in results:
for elem in results["usersResult"]:
username_results.append(elem["userName"])
for name in username_results:
return func.HttpResponse(json.dumps(name))
Как правильно подключить HTTP-триггер?
Я прочитал документацию по HTTP-триггерам и привязкам функций Azure, но не нашел подходящих примеров. помочь.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -functions
Мобильная версия