All Products
Search
Document Center

Platform For AI:Menyebarkan platform aplikasi model besar Dify di PAI-EAS

Last Updated:Jun 26, 2026

Menyebarkan Dify di PAI-EAS menyediakan layanan terkelola dengan elastic scaling, yang menghilangkan kebutuhan pemeliharaan infrastruktur dan mempercepat pengembangan dari prototipe hingga produksi.

How it works

PAI-EAS membangun layanan lengkap dengan menjalankan komponen-komponen Dify dalam lingkungan multi-container dan memasang dependensi eksternal, termasuk ApsaraDB RDS for PostgreSQL, ApsaraDB for Redis, Alibaba Cloud Elasticsearch, dan Object Storage Service (OSS). Semua komponen berkomunikasi melalui jaringan Virtual Private Cloud (VPC).

Komponen inti arsitektur ini meliputi:

  • PAI-EAS service: Sebagai platform komputasi inti, PAI-EAS menjalankan semua komponen layanan Dify dalam lingkungan multi-container, termasuk antarmuka web, backend API, worker tugas asinkron, dan sandbox plugin. PAI-EAS mengelola siklus hidup layanan, penjadwalan sumber daya, dan konfigurasi jaringan.

  • ApsaraDB RDS for PostgreSQL: Menyimpan data pengguna, percakapan, basis pengetahuan, alur kerja, dan konfigurasi plugin. Memisahkan database dari aplikasi memastikan persistensi dan independensi data.

  • ApsaraDB for Redis: Menyediakan fungsionalitas cache berkinerja tinggi dan antrian pesan. Digunakan untuk menyimpan cache data yang sering diakses, mengelola status sesi, serta mendistribusikan tugas asinkron di antara komponen Dify melalui Celery Broker.

  • Alibaba Cloud Elasticsearch: Berfungsi sebagai database vektor dan mesin pencarian teks lengkap. Dalam skenario retrieval-augmented generation (RAG), Elasticsearch menyimpan, mengindeks, dan mengambil dokumen dari basis pengetahuan secara efisien.

  • Object Storage Service (OSS): Menyimpan data persisten, seperti file plugin dan basis pengetahuan, sehingga data tetap tersedia meskipun layanan diperbarui atau dimulai ulang.

Pengguna mengakses antarmuka Dify melalui URL layanan web yang disediakan oleh PAI-EAS. Semua permintaan awalnya diarahkan oleh kontainer Nginx ke kontainer Dify-Web atau Dify-API. Saat memproses logika bisnis, layanan API berinteraksi dengan backend ApsaraDB RDS for PostgreSQL, ApsaraDB for Redis, dan Alibaba Cloud Elasticsearch. Tugas asinkron, seperti pengindeksan dokumen, dikirimkan ke kontainer worker untuk dieksekusi melalui Redis. Semua file yang memerlukan persistensi dibaca dari dan ditulis ke path OSS yang telah dipasang.

Step 1: Prepare dependent resources

Sebelum menyebarkan Dify, siapkan layanan eksternal yang diperlukan. Untuk menghindari masalah konektivitas jaringan, pastikan semua sumber daya ini berada di wilayah dan Virtual Private Cloud (VPC) yang sama dengan layanan PAI-EAS yang akan Anda sebarkan.

Penting

VPC untuk instans ApsaraDB RDS for PostgreSQL atau Alibaba Cloud Elasticsearch tidak dapat diubah setelah pembuatan. Oleh karena itu, Anda harus membuat instans tersebut di VPC yang sama dengan layanan PAI-EAS Anda.

  1. Rencanakan sebuah Virtual Private Cloud (VPC). Jika belum memiliki, buat VPC dan vSwitch.

  2. Buat instans ApsaraDB RDS for PostgreSQL. Setelah instans dibuat, buat akun dengan hak istimewa tinggi. Gunakan akun ini untuk membuat dua database: satu untuk data fungsi inti Dify dan satu lagi untuk data plugin. Untuk informasi lebih lanjut, lihat Create accounts and databases.

    Penting

    Kami merekomendasikan PostgreSQL 16. Versi 18 dapat menyebabkan konflik fungsi uuidv7.

  3. Buat instans ApsaraDB for Redis. Untuk mengizinkan kontainer PAI-EAS mengakses instans tersebut, tambahkan rentang alamat IP vSwitch PAI-EAS ke daftar izin (allowlist) Redis. Informasi ini dapat diperoleh dari halaman detail vSwitch di konsol VPC.

  4. Buat instans Alibaba Cloud Elasticsearch. Instans ini berfungsi sebagai database vektor dan mesin pencarian teks lengkap untuk basis pengetahuan. Pastikan instans berada di VPC yang sama dengan layanan PAI-EAS.

Step 2: Deploy the Dify service

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Kemudian, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Pada tab Inference Service, klik Deploy Service. Di bagian Scenario-based Model Deployment, klik Dify LLM platform.

  3. Pada halaman penyebaran, konfigurasikan parameter berikut.

    • OSS: Pilih bucket OSS dan tentukan path untuk penyimpanan persisten file basis pengetahuan, data plugin, dan data lainnya. Dua folder, yaitu dify dan dify_plugin, akan dibuat secara otomatis di path yang ditentukan.

    • PostgreSQL configuration:

      • Host Address: Masukkan alamat IP internal instans ApsaraDB RDS for PostgreSQL. Anda dapat menemukannya di halaman Database Connection untuk instans tersebut di Konsol ApsaraDB RDS for PostgreSQL.

      • Port: Nilai default adalah 5432. Masukkan port aktual jika berbeda.

      • Database - core data: Masukkan nama database yang dibuat untuk menyimpan data fungsi inti secara persisten, seperti aplikasi, pengguna, percakapan, basis pengetahuan, alur kerja, dan konfigurasi model.

      • Database plugins: Masukkan nama database yang dibuat untuk menyimpan informasi terkait status runtime, konfigurasi, dan metadata plugin.

      • Account dan Password: Masukkan akun dan kata sandi dengan hak istimewa tinggi yang digunakan untuk membuat database.

    • Redis config:

      • Host: Masukkan alamat IP internal instans Redis. Buka Konsol ApsaraDB for Redis dan peroleh alamat tersebut dari bagian informasi koneksi di halaman detail instans.

      • Port: Nilai default adalah 6379. Masukkan port aktual jika berbeda.

      • Account dan Password: Masukkan akun dan kata sandi untuk instans Redis.

    • Elasticsearch configuration:

      • Host address: Masukkan alamat IP internal instans Alibaba Cloud Elasticsearch. Buka Konsol Alibaba Cloud Elasticsearch, buka halaman detail instans, lalu peroleh alamat tersebut dari bagian informasi dasar.

      • Port: Nilai default adalah 9200. Masukkan port aktual jika berbeda.

      • Account dan Password: Masukkan username (default: elastic) dan kata sandi untuk instans Alibaba Cloud Elasticsearch. Jika lupa kata sandi, Anda dapat mengatur ulangnya.

    • Resource Specification: Pilih spesifikasi instans PAI-EAS untuk layanan. Spesifikasi dengan minimal 8 CPU dan memori 16 GB direkomendasikan untuk operasi yang stabil.

  4. Setelah konfigurasi dikonfirmasi, klik Deploy. Ketika status layanan berubah menjadi Running, penyebaran berhasil.

Step 3: Verify service status and access

Setelah layanan berhasil disebarkan, Anda dapat memeriksa status dan memverifikasi fungsionalitasnya.

  • View Service Logs

    Jika layanan gagal dimulai atau berjalan tidak normal, buka halaman detail layanan. Di Instance List, temukan komponen kontainer yang sesuai dan klik tombol Logs di sebelahnya. Periksa log startup dan waktu proses untuk mengidentifikasi penyebab error.

  • Access the Dify Web Interface 

    Di halaman detail layanan, klik Web applications di pojok kanan atas untuk membuka halaman inisialisasi Dify. Setelah membuat akun administrator, Anda dapat mulai menggunakan aplikasi.

  • Call the API

    Setelah aplikasi Dify dibuat, URL dasar yang ditampilkan di halaman akses API merupakan alamat layanan internal. Di aplikasi Dify, klik Access API di panel navigasi kiri untuk melihat Base URL. Untuk memanggil API Dify dari internet publik, Anda harus mengganti URL internal (misalnya, http://******.console.cn-hangzhou.eas.pai-ml.com) dengan titik akhir publik dari informasi pemanggilan layanan PAI-EAS. Di kotak dialog Invocation Info untuk layanan tersebut, beralihlah ke tab Shared Gateway untuk memperoleh Public Endpoint (URL layanan yang digunakan dalam perintah curl), VPC endpoint, dan token.

    Untuk berinteraksi dengan aplikasi melalui API, Anda harus membuat API Key. Klik Access API di panel navigasi kiri. Kemudian, klik tombol API Keys di pojok kanan atas. Di kotak dialog yang muncul, klik + Create Key untuk menghasilkan API Key guna autentikasi Authorization: Bearer dalam pemanggilan API Anda.

    Contoh berikut menunjukkan cara mengirim pesan ke aplikasi chatbot menggunakan panggilan API publik:

    curl -X POST 'http://xxxx.your_aliyun_account_id.cn-hangzhou.pai-eas.aliyuncs.com/v1/chat-messages' \
    --header 'Authorization: Bearer app-xxxxxxxxxxxxx' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "inputs": {},
        "query": "Describe the main features of Dify",
        "response_mode": "blocking",
        "user": "test-user-001"
    }'

Step 4: Advanced deployment with JSON

Untuk penyebaran otomatis atau kustom, gunakan file konfigurasi JSON. Di halaman penyebaran layanan PAI-EAS, beralihlah ke JSON Deployment dan gunakan templat berikut. Templat ini mendefinisikan semua kontainer, variabel lingkungan, pemasangan penyimpanan, dan konfigurasi jaringan yang dibutuhkan oleh Dify.

JSON configuration template

{
    "cloud": {
        "computing": {
            "instances": [
                {
                    "type": "$instance_type"
                }
            ]
        },
        "networking": {
            "security_group_id": "$security_group_id",
            "vpc_id": "$vpc_id",
            "vswitch_id": "$vswitch_id"
        }
    },
    "containers": [
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:nginx-0.2",
            "port": 80,
            "script": "sh /docker-entrypoint.sh"
        },
        {
            "env": [
                {
                    "name": "MODE",
                    "value": "api"
                },
                {
                    "name": "SECRET_KEY",
                    "value": "$secret_key"
                },
                {
                    "name": "PLUGIN_DIFY_INNER_API_KEY",
                    "value": "$api_key"
                },
                {
                    "name": "PLUGIN_DAEMON_KEY",
                    "value": "$plugin_daemon_key"
                },
                {
                    "name": "STORAGE_TYPE",
                    "value": "local"
                },
                {
                    "name": "STORAGE_LOCAL_PATH",
                    "value": "/mnt/dify/dify"
                },
                {
                    "name": "DB_HOST",
                    "value": "$db_host"
                },
                {
                    "name": "DB_PORT",
                    "value": "$db_port"
                },
                {
                    "name": "DB_DATABASE",
                    "value": "$api_db"
                },
                {
                    "name": "DB_USERNAME",
                    "value": "$db_username"
                },
                {
                    "name": "DB_PASSWORD",
                    "value": "$db_password"
                },
                {
                    "name": "REDIS_HOST",
                    "value": "$redis_host"
                },
                {
                    "name": "REDIS_PORT",
                    "value": "$redis_port"
                },
                {
                    "name": "REDIS_USERNAME",
                    "value": ""
                },
                {
                    "name": "REDIS_PASSWORD",
                    "value": "$redis_password"
                },
                {
                    "name": "REDIS_DB",
                    "value": "0"
                },
                {
                    "name": "CELERY_BROKER_URL",
                    "value": "redis://:$redis_password@$redis_host:$redis_port/1"
                },
                {
                    "name": "VECTOR_STORE",
                    "value": "elasticsearch"
                },
                {
                    "name": "ELASTICSEARCH_HOST",
                    "value": "$elasticsearch_host"
                },
                {
                    "name": "ELASTICSEARCH_PORT",
                    "value": "$elasticsearch_port"
                },
                {
                    "name": "ELASTICSEARCH_USERNAME",
                    "value": "$elasticsearch_username"
                },
                {
                    "name": "ELASTICSEARCH_PASSWORD",
                    "value": "$elasticsearch_password"
                }
            ],
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:api-0.2",
            "port": 5001,
            "script": "/bin/bash /entrypoint.sh"
        },
        {
            "env": [
                {
                    "name": "MODE",
                    "value": "worker"
                },
                {
                    "name": "SECRET_KEY",
                    "value": "$secret_key"
                },
                {
                    "name": "PLUGIN_DIFY_INNER_API_KEY",
                    "value": "$api_key"
                },
                {
                    "name": "PLUGIN_DAEMON_KEY",
                    "value": "$plugin_daemon_key"
                },
                {
                    "name": "STORAGE_TYPE",
                    "value": "local"
                },
                {
                    "name": "STORAGE_LOCAL_PATH",
                    "value": "/mnt/dify/dify"
                },
                {
                    "name": "DB_HOST",
                    "value": "$db_host"
                },
                {
                    "name": "DB_PORT",
                    "value": "$db_port"
                },
                {
                    "name": "DB_DATABASE",
                    "value": "$api_db"
                },
                {
                    "name": "DB_USERNAME",
                    "value": "$db_username"
                },
                {
                    "name": "DB_PASSWORD",
                    "value": "$db_password"
                },
                {
                    "name": "REDIS_HOST",
                    "value": "$redis_host"
                },
                {
                    "name": "REDIS_PORT",
                    "value": "$redis_port"
                },
                {
                    "name": "REDIS_USERNAME",
                    "value": ""
                },
                {
                    "name": "REDIS_PASSWORD",
                    "value": "$redis_password"
                },
                {
                    "name": "REDIS_DB",
                    "value": "0"
                },
                {
                    "name": "CELERY_BROKER_URL",
                    "value": "redis://:$redis_password@$redis_host:$redis_port/1"
                },
                {
                    "name": "VECTOR_STORE",
                    "value": "elasticsearch"
                },
                {
                    "name": "ELASTICSEARCH_HOST",
                    "value": "$elasticsearch_host"
                },
                {
                    "name": "ELASTICSEARCH_PORT",
                    "value": "$elasticsearch_port"
                },
                {
                    "name": "ELASTICSEARCH_USERNAME",
                    "value": "$elasticsearch_username"
                },
                {
                    "name": "ELASTICSEARCH_PASSWORD",
                    "value": "$elasticsearch_password"
                }
            ],
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:api-0.2",
            "script": "/bin/bash /entrypoint.sh"
        },
        {
            "env": [
                {
                    "name": "SERVER_KEY",
                    "value": "$plugin_daemon_key"
                },
                {
                    "name": "DIFY_INNER_API_KEY",
                    "value": "$api_key"
                },
                {
                    "name": "PLUGIN_STORAGE_TYPE",
                    "value": "local"
                },
                {
                    "name": "PLUGIN_STORAGE_LOCAL_ROOT",
                    "value": "/mnt/dify/dify_plugin"
                },
                {
                    "name": "DB_HOST",
                    "value": "$db_host"
                },
                {
                    "name": "DB_PORT",
                    "value": "$db_port"
                },
                {
                    "name": "DB_DATABASE",
                    "value": "$plugin_daemon_db"
                },
                {
                    "name": "DB_USERNAME",
                    "value": "$db_username"
                },
                {
                    "name": "DB_PASSWORD",
                    "value": "$db_password"
                },
                {
                    "name": "REDIS_HOST",
                    "value": "$redis_host"
                },
                {
                    "name": "REDIS_USERNAME",
                    "value": ""
                },
                {
                    "name": "REDIS_PASSWORD",
                    "value": "$redis_password"
                },
                {
                    "name": "REDIS_DB",
                    "value": "0"
                },
                {
                    "name": "REDIS_PORT",
                    "value": "$redis_port"
                }
            ],
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:plugin-daemon-0.2",
            "port": 5002,
            "script": "/bin/sh /app/entrypoint.sh"
        },
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:web-0.2",
            "port": 3000,
            "script": "/bin/sh /app/web/entrypoint.sh"
        },
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:sandbox-0.2",
            "port": 8194,
            "script": "/main"
        },
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/dify:squid-0.2",
            "port": 3128,
            "script": "sh /docker-entrypoint.sh"
        }
    ],
    "generate_token": false,
    "labels": {
        "EnableTrace": "true"
    },
    "metadata": {
        "cpu": 8,
        "enable_webservice": true,
        "instance": 1,
        "memory": 16000,
        "name": "dify_test",
        "workspace_id": "$workspace_id"
    },
    "storage": [
        {
            "mount_path": "/mnt/dify",
            "oss": {
                "path": "$oss_path",
                "readOnly": false
            }
        }
    ]
}

Saat penyebaran, ganti placeholder (diawali dengan $) dalam templat JSON dengan nilai aktual Anda. Untuk deskripsi parameter lebih rinci, lihat JSON Deployment.

  • Di bagian metadata, Anda harus mengatur "enable_webservice": true untuk membuka port akses web.

  • Di bagian storage, ganti $oss_path dengan path OSS aktual, misalnya "oss://your-bucket-name/dify-data/". Path ini digunakan oleh API dan plugin Dify. Dua subfolder, yaitu dify dan dify_plugin, akan dibuat di bawah path ini.

  • Di bagian containers, variabel lingkungan utama yang memerlukan penggantian placeholder dijelaskan di bawah ini. Untuk informasi lebih lanjut, lihat Dify Environment Variables.

    PostgreSQL database

    • db_host: Titik akhir instans database PostgreSQL.

    • db_port: Nilai default adalah 5432.

    • api_db: Database fungsi inti Dify. Menyimpan semua data terkait fungsi inti seperti aplikasi, pengguna, percakapan, basis pengetahuan, alur kerja, dan konfigurasi model.

    • plugin_daemon_db: Database plugin Dify. Menyimpan informasi terkait status runtime, konfigurasi, dan metadata plugin.

    • db_username dan db_password: Kedua database menggunakan username dan kata sandi yang sama.

    Redis

    Saat pengguna melakukan percakapan real-time dengan AI, Redis memfasilitasi perpesanan dan komunikasi real-time antar komponen layanan.

    • redis_host: Titik akhir instans Redis.

    • redis_port: Nilai default adalah 6379.

    • redis_password: Kata sandi yang ditetapkan saat membuat instans Redis.

    Elasticsearch

    Digunakan sebagai database vektor dan mesin pencarian teks lengkap.

    • elasticsearch_host: Titik akhir instans Elasticsearch.

    • elasticsearch_port: Nilai default adalah 9200.

    • elasticsearch_username: Nilai default adalah elastic.

    • elasticsearch_password: Kata sandi yang dikonfigurasi saat membuat instans Elasticsearch. Jika lupa kata sandi, Anda dapat mengatur ulang kata sandi akses instans.

    Security keys

    Dify menggunakan beberapa kunci untuk mengamankan komunikasi internal. Hasilkan kunci-kunci tersebut dengan perintah openssl rand -base64 42.

    • secret_key: Kunci yang digunakan untuk menandatangani cookie sesi secara aman dan mengenkripsi informasi sensitif di database.

    • api_key: Kunci yang diperlukan untuk akses API internal guna mencegah serangan eksternal berbahaya.

    • plugin_daemon_key: Kunci yang diperlukan untuk akses internal ke daemon plugin guna mencegah serangan eksternal berbahaya.

FAQ

Cannot connect to the database instance

[2025-09-13 00:46:28] [/bin/sh]: 2025/09/12 16:46:28 /app/internal/db/pg/pg.go:34
[2025-09-13 00:46:28] [/bin/sh]: [error] failed to initialize database, got error failed to connect to `host=pgm-xxxxxxxxxx.pg.rds.aliyuncs.com user=dify database=postgres`: dial error (timeout: dial tcp 10.0.0.230:5432: connect: connection timed out)
[2025-09-13 00:46:28] [/bin/sh]: 2025/09/12 16:46:28 init.go:95: [PANIC]failed to init dify plugin db: failed to connect to `host=pgm-xxxxxxxxxx.pg.rds.aliyuncs.com user=dify database=postgres`: dial error (timeout: dial tcp 10.0.0.230:5432: connect: connection timed out)
[2025-09-13 00:46:28] [/bin/sh]: panic: [PANIC]failed to init dify plugin db: failed to connect to `host=pgm-xxxxxxxxxx.pg.rds.aliyuncs.com user=dify database=postgres`: dial error (timeout: dial tcp 10.0.0.230:5432: connect: connection timed out)

Konfirmasi bahwa instans ApsaraDB RDS for PostgreSQL dan layanan PAI-EAS berada di VPC yang sama. ApsaraDB RDS for PostgreSQL tidak mendukung pergantian VPC. Anda harus membuat ulang instans tersebut di VPC yang benar.

Di halaman detail instans di Konsol ApsaraDB RDS for PostgreSQL, klik Database Connection di panel navigasi kiri untuk melihat nama VPC dan alamat IP internal instans. Port default adalah 5432.

Cannot connect to Redis

Masalah ini terjadi jika klien Redis di kontainer dify-api tidak dapat terhubung ke server Redis.

[2025-09-13 00:28:21] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/redis/utils.py", line 188, in wrapper
[2025-09-13 00:28:21] [/bin/sh]:     return func(*args, **kwargs)
[2025-09-13 00:28:21] [/bin/sh]:            ^^^^^^^^^^^^^^^^^^^^^
[2025-09-13 00:28:21] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/redis/connection.py", line 1530, in get_connection
[2025-09-13 00:28:21] [/bin/sh]:     connection.connect()
[2025-09-13 00:28:21] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/redis/connection.py", line 379, in connect
[2025-09-13 00:28:21] [/bin/sh]:     self.connect_check_health(check_health=True)
[2025-09-13 00:28:21] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/redis/connection.py", line 389, in connect_check_health
[2025-09-13 00:28:21] [/bin/sh]:     raise TimeoutError("Timeout connecting to server")
[2025-09-13 00:28:21] [/bin/sh]: redis.exceptions.TimeoutError: Timeout connecting to server
[2025-09-13 00:28:22] time="2025-09-12T16:28:22Z" level=info msg="program stopped with status:exit status 1" program=/bin/sh

Penyebab yang mungkin:

  1. Masalah jaringan VPC: Konfirmasi bahwa instans Redis dan layanan PAI-EAS berada di VPC yang sama.

    Di halaman Instance Information instans ApsaraDB for Redis Anda, periksa bidang Virtual Private Cloud di bagian Basic Information untuk mengonfirmasi ID VPC-nya.

  2. Masalah pengaturan allowlist: Konfirmasi bahwa allowlist telah dikonfigurasi untuk instans Redis. Anda harus menambahkan rentang alamat IP vSwitch tempat layanan PAI-EAS berada. Rentang alamat IP tersebut dapat ditemukan di halaman vSwitch.

    Sebagai contoh, di halaman Allowlist Settings, tambahkan blok CIDR vSwitch, seperti 192.168.32.0/22, ke grup allowlist.

Cannot connect to Alibaba Cloud Elasticsearch

Salah satu kemungkinan penyebabnya adalah masalah jaringan VPC. Konfirmasi bahwa instans Alibaba Cloud Elasticsearch dan layanan PAI-EAS berada di VPC yang sama.

Di halaman Basic Information instans Alibaba Cloud Elasticsearch, periksa bidang Virtual Private Cloud untuk memperoleh ID VPC instans tersebut.

Missing database for dify-api

Saat Dify dimulai, ia terhubung ke dua database: database core data yang diperlukan oleh dify-api dan database plugin yang diperlukan oleh dify-plugin.

[2025-09-13 01:33:20] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 625, in connect
[2025-09-13 01:33:20] [/bin/sh]:     return self.loaded_dbapi.connect(*cargs, **cparams)  # type: ignore[no-any-return]  # NOQA: E501
[2025-09-13 01:33:20] [/bin/sh]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2025-09-13 01:33:20] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/psycopg2/__init__.py", line 122, in connect
[2025-09-13 01:33:20] [/bin/sh]:     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
[2025-09-13 01:33:20] [/bin/sh]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2025-09-13 01:33:20] [/bin/sh]:   File "/app/api/.venv/lib/python3.12/site-packages/psycogreen/gevent.py", line 32, in gevent_wait_callback
[2025-09-13 01:33:20] [/bin/sh]:     state = conn.poll()
[2025-09-13 01:33:20] [/bin/sh]:             ^^^^^^^^^^^
[2025-09-13 01:33:20] [/bin/sh]: sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  database "dify_core" does not exist
[2025-09-13 01:33:20] [/bin/sh]:

Pada Dify Community Edition 1.7.1 yang digunakan untuk penyebaran ini, database plugin dibuat secara otomatis, tetapi database core data tidak. Anda harus membuat database core data secara manual.

Cannot connect to marketplace.dify.ai

Masalah ini terjadi karena kontainer PAI-EAS tidak memiliki akses internet publik secara default. Untuk solusinya, lihat Enable a PAI-EAS service to access public or internal resources.

[2025-09-13 00:00:00] [/bin/sh]: 2025-09-12 16:00:00,847.847 WARNING [Dummy-1] [ssrf_proxy.py:81] - Request to URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/tongyi:0.0.46@8e73008929dbc3934936493d442fab4c34ef016ae817b144b45da278ba76580e failed on attempt 1: timed out
[2025-09-13 00:00:02] [/bin/sh]: 2025-09-12 16:00:02,046.046 WARNING [Dummy-2] [ssrf_proxy.py:81] - Request to URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/tongyi:0.0.46@8e73008929dbc3934936493d442fab4c34ef016ae817b144b45da278ba76580e failed on attempt 1: timed out
[2025-09-13 00:00:06] [/bin/sh]: 2025-09-12 16:00:06,416.416 WARNING [Dummy-1] [ssrf_proxy.py:81] - Request to URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/tongyi:0.0.46@8e73008929dbc3934936493d442fab4c34ef016ae817b144b45da278ba76580e failed on attempt 2: timed out
[2025-09-13 00:00:07] [/bin/sh]: 2025-09-12 16:00:07,614.614 WARNING [Dummy-2] [ssrf_proxy.py:81] - Request to URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/tongyi:0.0.