برنامه نویسی

آزمایش عملکردهای Google Cloud به صورت محلی

عملکرد Google Cloud یک بستر محاسباتی بدون سرور است که به شما امکان می دهد بدون تهیه یا مدیریت سرورها ، کد را در پاسخ به رویدادها اجرا کنید.

در این بخش اول از یک آموزش دو مرحله ای ، ما نحوه آزمایش عملکردهای Google Cloud را به صورت محلی بررسی خواهیم کرد. در بخش دوم ، نحوه استقرار آنها از GitHub را پوشش خواهیم داد.

پیش نیازهای

برای دنبال کردن ، شما نیاز دارید:

  • یک حساب Google Cloud
  • یک حساب کاربری با مجوزها برای استقرار توابع Google Cloud
  • برخی از کدهایی که می خواهید روی توابع ابر اجرا کنید

برای این مثال ، من از کد نمونه زیر استفاده می کنم:

import requests
import pandas_gbq
import pandas as pd
from google.oauth2 import service_account 


def get_currency():
    """
    Get currency exchange rates from the API and call the save_to_bigquery function to save the data to BigQuery.
    Returns the data as a DataFrame.
    """
    url = "https://open.er-api.com/v6/latest/USD" 
    response = requests.get(url=url)

    data = response.json()
    df = pd.DataFrame(list(data['rates'].items()), columns=["currency", "exchange_rate"])

    if not df.empty:
        save_to_bigquery(df)
        return "Process completed!"
    else:
        return "No data found."


def save_to_bigquery(dataframe):
    """
    Save the data to BigQuery.
    Required: service_account.json file with the credentials.
    """
    df = dataframe
    project_id = "erthal-blog-de-projects" 
    dataset_table = "financial.currency"
    credentials = service_account.Credentials.from_service_account_file("service_account.json")

    pandas_gbq.to_gbq(df, dataset_table, project_id, credentials = credentials, if_exists='replace')
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شما می توانید از هر کدی که دوست دارید استفاده کنید – این فقط یک مثال ساده است. اسکریپت بالا نرخ ارز (دلار به سایر ارزها) را از یک API رایگان دریافت می کند و داده ها را در یک مجموعه داده BigQuy ذخیره می کند.

چارچوب توابع

برای آزمایش عملکرد محلی ، می توانیم از چارچوب عملکرد Google استفاده کنیم. این کتابخانه به ما امکان می دهد یک سرور توسعه محلی را تنظیم کرده و عملکرد را از طریق درخواست های HTTP ایجاد کنیم.

lib را از طریق PIP نصب کنید:

pip install functions-framework
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تنظیم سرور HTTP

برای اجرای عملکرد محلی ، ما باید:

  1. وارد کردن کتابخانه
  2. یک نقطه ورود برای عملکرد را تعریف کنید

وارد کردن کتابخانه

import functions-framework
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تعریف نقطه ورود

در @functions_framework.http دکوراتور مشخص می کند که عملکرد باید درخواست ها را شروع کند.

@functions_framework.http
def get_currency(request):
    """
    Get currency exchange rates from the API and call the save_to_bigquery function to save the data to BigQuery.
    Returns the data as a DataFrame.
    """
    url = "https://open.er-api.com/v6/latest/USD" 
    response = requests.get(url=url)

    data = response.json()
    df = pd.DataFrame(list(data['rates'].items()), columns=["currency", "exchange_rate"])

    if not df.empty:
        save_to_bigquery(df)
        return "Process completed!"
    else:
        return "No data found."

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توجه: من پارامتر درخواست را در get_currency (درخواست) اضافه کردم ، زیرا توابع Google Cloud برای پردازش درخواست های HTTP به آن نیاز دارد.

اجرای عملکرد به صورت محلی

سرور محلی را با اجرا شروع کنید:

functions-framework --target=main --port=YOUR_PORT
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور یک سرور HTTP را در درگاه مشخص شده شروع می کند (پیش فرض: 8080). اگر دستور بدون خطا اجرا شود ، سرور تمام شده و منتظر درخواست است.

متوقف کردن عملکرد

اگر نیاز به متوقف کردن سرور دارید (به عنوان مثال ، برای استفاده مجدد از عملکرد خود) ، از دستور زیر در اوبونتو استفاده کنید:

fuser -k YOUR_PORT/tcp
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آزمایش عملکرد

برای ارسال درخواست به عملکرد محلی خود ، یک ترمینال دیگر (یا از پستچی استفاده کنید) باز کنید و اجرا کنید:

curl localhost:YOUR_PORT -X POST -H "Content-Type: application/json"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اگر همه چیز به درستی تنظیم شده باشد ، عملکرد باید یک پاسخ موفق (HTTP 200) را برگرداند و درخواست را پردازش کند. می توانید سیاهههای مربوط به ترمینال را که عملکرد در آن کار می کند نظارت کنید.

امیدوارم این راهنما به شما در آزمایش عملکردهای Google Cloud به صورت محلی کمک کند! 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا