Tüm Ürünler
Search
Belge Merkezi

Function Compute:Web işlevi ile bir web uygulaması oluşturun

Son Güncelleme:Oct 08, 2026

Function Compute'deki web işlevlerini kullanarak web uygulamaları ve API hizmetleri kolayca oluşturabilirsiniz. Web işlevleri; Java SpringBoot, Python Flask ve Node.js Express gibi popüler dillere ait web çerçeveleriyle uyumludur. Bu sayede mevcut uygulamalarınızı hızlıca geçirebilirsiniz. Function Compute, altta yatan hesaplama kaynaklarını sizin için yönetir. Hizmetinize bir tarayıcı veya URL üzerinden erişildiğinde sistem, talebi karşılamak üzere örnekleri otomatik olarak sağlar ve ölçeklendirir. Trafik olmadığında örnekler otomatik olarak serbest bırakılır ve yalnızca kullandığınız kaynaklar için ücret ödersiniz.

Genel Bakış

Bu konuda, Function Compute'de bir web işlevi kullanılarak bir Flask uygulamasının nasıl dağıtılacağı açıklanmaktadır. Genel süreç şu şekildedir:

  1. Web uygulamasını geliştirin ve test edin: Örnek kodu kullanarak yerel makinenizde bir proje oluşturun. API'nin beklendiği gibi çalıştığından emin olmak için API kodunu düzenleyin ve test edin. Mevcut bir uygulamayı geçirmek istiyorsanız bu adımı atlayabilirsiniz.

  2. Kod paketi oluşturun: Gerekli bağımlılıkları yerel proje dizinine yükleyin. Ardından projeyi Function Compute'e dağıtmak üzere bir ZIP dosyasında paketleyin.

  3. Uygulamayı yükleyin ve dağıtın: İşlev oluşturma parametrelerini yapılandırın ve ardından işlevi oluşturmak için kod paketini yükleyin.

  4. Web işlevini test edin: Flask uygulamasının beklendiği gibi çalıştığını doğrulamak için web işlevini çağırın.

Ön Koşullar

Alibaba Cloud hesabı oluşturun

Bir Alibaba Cloud hesabı oluşturun ve gerçek ad doğrulamasını tamamlayın.

Function Compute hizmetini etkinleştirin

27 Ağustos 2024 tarihinden sonra bir Alibaba Cloud hesabı kaydedip gerçek ad doğrulamasını tamamladıysanız, Function Compute hizmetini etkinleştirmeden kullanabilirsiniz. Function Compute konsoluna ilk kez oturum açtığınızda, ekrandaki talimatları izleyerek ücretsiz bir kaynak paketi de talep edebilirsiniz. Daha fazla bilgi için bkz. Ücretsiz deneme.

Alibaba Cloud hesabınızı 27 Ağustos 2024 tarihinden önce kaydettiyseniz hizmeti etkinleştirmek için aşağıdaki adımları izleyin.

  1. Function Compute ürün sayfasına gidin.

  2. Etkinleştirme sayfasını açmak için Console öğesini tıklayın. Hizmeti etkinleştirmek ve Function Compute konsolunu açmak için Activate Now seçeneğini tıklayın.

    Not
    • Hizmeti etkinleştirmek için bir Alibaba Cloud hesabı kullanmanız ve işlevler gibi kaynakları yönetmek için bir RAM kullanıcısı kullanmanız önerilir. En az ayrıcalık ilkesine göre RAM kullanıcısına izinler verebilirsiniz. Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.

  3. (İsteğe bağlı) Function Compute konsoluna ilk kez oturum açtığınızda, hizmete bağlı rol oluşturmak için Alibaba Cloud Service Authorization iletişim kutusunda OK seçeneğini tıklayın. Bu rol, Function Compute hizmetinin diğer bulut hizmetlerine erişmesine olanak tanır.

    Rol oluşturulduktan sonra Function Compute hizmeti, VPC, ECS, Log Service (SLS) ve Container Registry gibi diğer hizmetlerdeki kaynaklarınıza erişebilir.

Yordam

Bir web işlevi oluşturmak ve kodunuzu dağıtmak için aşağıdaki yöntemlerden birini kullanabilirsiniz.

  • Function Compute konsolunda işlev oluşturun: Bu yöntem, tek bir işlevi hızlıca oluşturmanıza olanak tanır ve hafif uygulamalar oluşturmak veya hızlı doğrulama yapmak için uygundur.

  • Serverless Devs komut satırı aracını kullanın: Bu yöntem, karmaşık üretim projelerini yönetmek ve otomatik dağıtımlar için daha uygundur. Birden çok işlevi ve bunlarla ilgili bulut kaynaklarını yönetmek için bir YAML yapılandırma dosyası kullanabilirsiniz. Daha fazla bilgi için bkz. Hızlı başlangıç.

Süreci basitleştirmek için bu konuda Function Compute konsolunda nasıl işlev oluşturulacağı açıklanmaktadır.

Adım 1: Uygulamayı geliştirin ve test edin

Not

Mevcut bir Flask uygulamasını geçirmek istiyorsanız bu adımı atlayıp doğrudan Adım 2: Kod paketi oluşturma bölümüne geçebilirsiniz.

  1. Yerel makinenizde yeni bir komut satırı penceresi açın ve gerekli Flask ve tabulate kitaplıklarını yüklemek için aşağıdaki komutu çalıştırın.

    pip install Flask tabulate
  2. code adlı bir klasör oluşturun ve içinde app.py adlı bir dosya oluşturun. Aşağıdaki örnek kodu dosyaya yapıştırın. Bu kod, API olarak paketlenmiş basit bir takvim hizmeti uygular. API, Ocak 2025 gibi bir yıl ve ay bilgisi kabul eder ve o aya ait bir takvim tablosu döndürür.

    import calendar
    from flask import Flask, request
    from tabulate import tabulate
    import logging
    import json
    
    logger = logging.getLogger()
    app = Flask(__name__)
    
    @app.route("/", methods=["POST"])
    def get_month_calendar():
        # Get the request ID and print the log.
        requestId = request.headers.get('x-fc-request-id', '')
        logger.info("FC Invoke Start RequestId: " + requestId)
        # Get the request content and check the request format.
        data = json.loads(request.stream.read().decode('utf-8'))
        if not ('year' in data and 'month' in data):
            message = "Request must be in format like {'year': '1999', 'month': '12'}"
            return message
    
        # Get the calendar table.
        result = print_calendar(year=int(data['year']), month=int(data['month']))
        # Print the log that indicates the function execution is complete before the result is returned.
        logger.info("FC Invoke End RequestId: " + requestId)
        return result
    
    def print_calendar(year, month):
        # Get the calendar matrix for the specified year and month.
        cal = calendar.monthcalendar(year, month)
        # Change the dates that do not belong to the month from 0 to empty strings.
        cal = list(map(lambda sublist: list(map(lambda x: '' if x == 0 else x, sublist)), cal))
        # Create table headers.
        headers = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]
    
        # Use tabulate to print the calendar table.
        return tabulate(cal, headers=headers, tablefmt="grid", stralign='center', numalign='center')
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=9000)
    
  3. Flask uygulamanızı çalıştırmak için python3 app.py komutunu çalıştırın. Running on http://127.0.0.1:9000 çıktısı görüntüleniyorsa Flask uygulaması çalışıyor demektir. Daha sonra uygulamayı test etmek için bir cURL komutu kullanabilirsiniz.

    python3 app.py 
     * Serving Flask app 'app'
     * Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:9000
     * Running on http://47.100.XX.XX:9000
    Press CTRL+C to quit
  4. Yeni bir terminal penceresi açın ve cURL kullanarak bir örnek istek gönderin. Komut başarılı olursa bir takvim tablosu döndürülür.

    curl -X POST http://127.0.0.1:9000 -d '{"year": "2000", "month": "1"}'

    image

Artık projeyi yerel ortamda oluşturup test ettiniz.

Adım 2: Kod paketi oluşturun

Function Compute için uygun bir kod paketini yerel ortamda oluşturacaksınız. Kod paketi aşağıdaki içeriği içermelidir:

  • Web uygulaması için gereken proje dosyaları.

  • Uygulamanızın, çalışma zamanına dahil olmayan bağımlılıkları varsa bunları kod paketinize eklemeniz gerekir. Çalışma zamanları için yerleşik bağımlılıklar hakkında bilgi almak için bkz. Yerleşik bağımlılıklar.

  1. Bağımlılıkları yükleyin: Web uygulaması projenizin kök dizininde aşağıdaki komutu çalıştırarak gerekli bağımlılıkları (bu örnekte tabulate) ilgili dizine yükleyin. Bu komut, bağımlılıkları projenizin kök dizinine yükler.

    Not

    Python web işlevi çalışma zamanı zaten Flask kitaplığını içerir. Örnek uygulamanın çalışması için yalnızca tabulate kitaplığını yüklemeniz yeterlidir.

    pip install -t . tabulate
  2. Proje kök dizinindeki tüm dosyaları paketleyin.

    Linux veya macOS

    Proje kök dizininde zip code.zip -r ./* komutunu çalıştırın. Bu komut, proje dosyalarını ve bağımlılıklarını bir ZIP dosyasında paketleyerek kod paketini oluşturur.

    Not

    Dizin üzerinde okuma ve yazma izinlerinizin bulunduğundan emin olun.

    Windows

    Proje dizinine gidin, tüm dosyaları seçin, dosyalara sağ tıklayın ve bunları bir ZIP dosyasında paketleyin. Bu işlem, proje dosyalarını ve bağımlılıklarını bir ZIP dosyasında paketleyerek kod paketini oluşturur.

Adım 3: İşlevi oluşturun ve dağıtın

  1. Web işlevi türünü seçin: Function Compute konsoluna oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneklerini tıklayın. Üst gezinme çubuğunda işlevi oluşturmak istediğiniz bölgeyi seçin. Görüntülenen sayfada Create Function seçeneğini tıklayın ve ardından ekrandaki talimatları izleyerek bir Web Function oluşturun.

  2. Çalışma zamanını seçin: Aşağıdaki şekilde gösterildiği gibi Custom Runtime seçeneklerini seçin. Bu çalışma zamanı, Flask çerçevesi için gereken bağımlılıkları içerir.image

    Not
    • Web işleviniz için bir Custom Runtime kullanmanız önerilir. Custom Runtime ile bir başlatma komutu ve dinleme bağlantı noktası belirtebilir ve eşzamanlı istek işleme desteğinden yararlanabilirsiniz. Built-in Runtimes bu özellikleri sağlamaz ve daha çok diğer bulut hizmetleri tarafından oluşturulan olayları işlemek için uygundur.

    • Konteyner tabanlı dağıtımı tercih ediyorsanız bir web işlevi oluşturmak için Custom Container kullanabilirsiniz. Bu çalışma zamanı da eşzamanlı istek işlemeyi destekler ancak bağımlılıkları kendiniz yönetmeniz gerekir.

    • Çalışma zamanlarının ayrıntılı karşılaştırması için bkz. Çalışma zamanı seçme.

  3. Kod paketini dağıtın: Şekilde gösterildiği gibi Adım 2 bölümünde oluşturduğunuz ZIP kod paketini yükleyin. Başlatma komutunu python3 app.py ve dinleme bağlantı noktasını 9000 olarak ayarlayın. Mevcut bir Flask uygulamasını geçiriyorsanız yapılandırmayı gerçek başlatma komutuna ve bağlantı noktasına göre değiştirin. Örneğin, Flask'ın varsayılan bağlantı noktası 5000'dir.

    Create seçeneğini tıklayın ve işlevin oluşturulmasını bekleyin.image

Adım 4: İşlevi test edin

  1. İşlev URL'sini alın: Yeni oluşturulan işlevin ayrıntılar sayfasında Trigger sekmesini tıklayın. HTTP tetikleyici yapılandırmasında genel uç noktayı kopyalayın.

    Bir test ortamındaysanız ve kimlik doğrulamaya ihtiyacınız yoksa, tetikleyiciyi oluştururken veya oluşturduktan sonra HTTP tetikleyicisinin yapılandırmasındaki Authentication Method ayarını No Authentication olarak değiştirebilirsiniz.

    image

  2. İşlevi test edin: Flask uygulamasının beklendiği gibi çalıştığını doğrulamak için işlevi çağırmak üzere cURL, Postman veya herhangi bir HTTP istemcisi kullanabilirsiniz. Aşağıdaki örnekte bir cURL komutu kullanılmaktadır. URL yerine önceki adımda kopyaladığınız uç noktayı yazın.

    curl https://******.cn-hangzhou.fcapp.run -d '{"year": "2025", "month": "1"}' 

    Web API'si, Ocak 2025 için takvim bilgilerini döndürür. Aşağıda örnek bir çıktı verilmiştir.

    image

    Not
    • Varsayılan HTTP tetikleyici yapılandırmasını kullanırsanız komut "MissingRequiredHeader" hatası döndürür. Bir test ortamındaysanız tetikleyicinin Authentication Method ayarını No Authentication olarak değiştirebilirsiniz.

    • Bu adımdaki örnek komut ve çıktı yalnızca örnek kod için geçerlidir. Mevcut bir uygulamayı geçiriyorsanız hizmeti gerçek API adına ve parametrelerine göre çağırın. Daha fazla bilgi için bkz. İşlevi test etmek için cURL kullanma.

  3. (İsteğe bağlı) İşleve bir tarayıcıdan erişin: HTTP tetikleyici tarafından sağlanan genel uç nokta doğrudan bir tarayıcıda açılamaz (zorunlu indirmeye neden olabilir) ve yalnızca test amaçlıdır. Tarayıcı erişimini etkinleştirmek ve üretim ortamında kullanmak için işleve özel bir etki alanı adı bağlamanız önerilir. Daha fazla bilgi için bkz. Özel etki alanı adı yapılandırma.

(İsteğe bağlı) Adım 5: Kaynakları temizleyin

Function Compute kullandıkça öde modeline sahip bir hizmettir. Kullanılmayan işlevler için ücret alınmaz. Ancak OSS ve File Storage NAS'ta depolanan veriler ve oluşturulan tetikleyiciler gibi ilişkili bulut kaynakları için ücretlendirilebilirsiniz.

Bir işlevi silmeniz gerekirse Function Compute konsoluna oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneklerini tıklayın. Bir bölge seçin. Hedef işlevin Actions sütununda Delete seçeneğini tıklayın. Görüntülenen iletişim kutusunda işlevin tetikleyiciler gibi herhangi bir kaynağa bağlı olmadığını onaylayın ve silme işlemini onaylayın.

Gelişmiş işlemler

Artık bir web uygulamasını web işlevine oluşturup dağıttığınıza göre ihtiyaçlarınıza bağlı olarak aşağıdaki gelişmiş işlemleri gerçekleştirebilirsiniz.

  • Konsolda kod geliştirin: Bu konu yerel geliştirmeye odaklansa da (mevcut uygulamaları geçirmek için faydalıdır) WebIDE kullanarak dağıtımı basitleştirebilirsiniz. Bu yöntem, yerel ortamda kod paketi oluşturma gereksinimini ortadan kaldırır ve hızlı geliştirme yinelemeleri için uygundur. Daha fazla bilgi için bkz. WebIDE kullanma.

    Not

    WebIDE yalnızca Python, Node.js ve PHP dillerini destekler. Java ve Go gibi diğer diller için yalnızca derlenmiş ve paketlenmiş ZIP dosyalarını veya ikili dosyaları yükleyebilirsiniz.

  • Serverless Application Center kullanarak projeleri sürekli dağıtın: Kodunuzu Function Compute hizmetine otomatik olarak derlemek ve dağıtmak (CI/CD) için Serverless Application Center'ı kullanın. Daha fazla bilgi için bkz. Serverless Application Center kullanarak mevcut bir Function Compute projesi için sürekli dağıtım uygulama.

  • Günlük kaydı yapılandırın: Hata ayıklama, sorun giderme veya güvenlik denetimi kolaylaştırmak için işlevlerinizde günlük kaydı yapılandırmanız önerilir. Daha fazla bilgi için bkz. Günlük kaydı özelliğini yapılandırma.

Referanslar

Farklı diller için bağımlılık paketlerinin nasıl ekleneceği hakkında daha fazla bilgi için aşağıdaki konulara bakın:

Python

Python kod paketi dağıtma

Node.js

Node.js kod paketi dağıtma

Java

Java kod paketini derleme ve dağıtma

Go

Go kod paketini derleme ve dağıtma

C#

C# kod paketini derleme ve dağıtma

PHP

PHP kod paketi dağıtma