全部产品
Search
文档中心

Function Compute:Gunakan peran fungsi untuk memberikan Function Compute akses ke layanan Alibaba Cloud lainnya

更新时间:Nov 11, 2025

Function Compute memerlukan izin untuk mengakses layanan Alibaba Cloud lain guna mendukung fitur seperti pencatatan log, akses VPC, dan pemanggilan asinkron dengan tujuan tertentu. Misalnya, untuk mengonfigurasi log fungsi, Anda harus memberikan izin kepada Function Compute agar dapat menulis ke Logstore tertentu, sehingga memungkinkannya mencatat log fungsi ke Logstore tersebut.

Untuk menyederhanakan proses otorisasi, Function Compute mendukung peran terkait layanan. Secara default, fungsi menggunakan peran terkait layanan ini, sehingga dapat memanfaatkan fitur seperti pencatatan log, akses VPC, dan pemanggilan asinkron tanpa memerlukan konfigurasi peran tambahan.

Jika kode Anda perlu mengakses layanan Alibaba Cloud lain atau memerlukan otorisasi yang lebih detail, Anda harus memberikan izin kepada fungsi tersebut dengan mengonfigurasi Function Role. Function Compute secara otomatis mengasumsikan peran ini saat fungsi dipanggil.

Cara kerjanya

Function Compute menggunakan peran yang dikonfigurasi untuk suatu fungsi guna memperoleh token sementara Security Token Service (STS) melalui operasi AssumeRole. Function Compute kemudian meneruskan token sementara tersebut ke fungsi Anda melalui parameter Credentials atau credentials dalam konteks. Token sementara ini berisi izin untuk semua sumber daya yang telah Anda konfigurasikan pada peran tersebut dan dapat digunakan dalam kode fungsi untuk mengakses layanan Alibaba Cloud lainnya.

Token sementara ini berlaku selama 36 jam. Periode validitasnya tidak dapat diubah. Karena waktu eksekusi maksimum suatu fungsi adalah 24 jam, token sementara tidak kedaluwarsa selama eksekusi fungsi.

Lokasi parameter Credentials atau credentials bervariasi tergantung pada runtime. Untuk informasi selengkapnya, klik tautan berikut. Perhatikan bahwa ketika menggunakan runtime kustom atau gambar kustom, token sementara dimasukkan ke dalam header permintaan.

Contoh: Memberikan izin Function Compute untuk mengakses OSS

Bagian ini menjelaskan cara memberikan izin fungsi untuk mengelola Object Storage Service (OSS). Untuk melakukannya, Anda harus membuat peran dengan izin OSS yang diperlukan, lalu menyambungkan peran tersebut ke fungsi.

Prasyarat

Buat fungsi

Prosedur

Langkah 1: Buat peran dan berikan izin

  1. Masuk ke Konsol Resource Access Management (RAM). Di panel navigasi sebelah kiri, pilih Roles > Create Role.

  2. Pada halaman Create Role, atur Trusted Entity Type menjadi Alibaba Cloud Service dan atur Trusted Service menjadi Function Compute/FC. Lalu, klik OK.

  3. Pada kotak dialog Create Role, atur Role Name menjadi nilai tertentu, misalnya mytestrole, lalu klik OK. Anda akan diarahkan ke halaman detail peran.

  4. Pada tab Permission Management, klik Add Permissions. Pada panel Add Permissions yang muncul, berikan izin yang diperlukan kepada peran tersebut.

    Pilih Resource Scope. Principal secara default adalah peran target. Di daftar kebijakan, pilih kotak centang di sebelah kebijakan sistem atau kebijakan kustom yang ingin Anda sambungkan. Kebijakan tersebut akan otomatis ditambahkan ke daftar Selected di sebelah kanan. Lalu, klik OK. Untuk informasi selengkapnya, lihat Kebijakan akses dan contohnya.

    • Account Level: Izin berlaku dalam akun Alibaba Cloud saat ini.

    • Resource Group Level: Izin berlaku dalam kelompok sumber daya tertentu. Izin hanya dapat diberikan pada kelompok sumber daya jika layanan Alibaba Cloud mendukung kelompok sumber daya. Untuk informasi selengkapnya, lihat Layanan Alibaba Cloud yang mendukung kelompok sumber daya.

    Dalam contoh ini, karena tujuannya adalah mengelola OSS, Anda harus menambahkan kebijakan sistem AliyunOSSFullAccess ke peran tersebut.

    image

Langkah 2: Sambungkan peran ke fungsi tujuan

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, temukan fungsi tersebut dan klik Configure di kolom Actions.

  3. Pada halaman detail fungsi, klik tab Configuration. Di bagian Advanced Configuration, klik Edit. Pada panel Advanced Configuration, buka Permissions. Dari daftar tarik-turun Function Role, pilih mytestrole, yaitu peran yang Anda buat di Langkah 1. Lalu, klik Deploy.

Langkah 3: Uji fungsi

Uji fungsi untuk memverifikasi bahwa peran mytestrole yang disambungkan memberikan izin yang diperlukan untuk mengelola OSS.

  1. Pada halaman Functions, klik nama fungsi tersebut. Pada halaman detail fungsi, klik tab Code. Klik panah di samping Test Function dan pilih Configure Test Parameters.

    {
       "endpoint": "http://oss-cn-hangzhou.aliyuncs.com",
       "bucket": "web****",
       "objectName": "myObj",
       "message": "your-message"
    }

    Pada kode di atas, ganti bucket dengan nama bucket Anda. Bucket tersebut harus berada di wilayah yang sama dengan fungsi.

  2. Pada tab Code, masukkan kode Anda di editor dan klik Deploy Code.

    Contoh berikut menunjukkan cara menggunakan runtime Python bawaan. Anda dapat menggunakan token sementara yang disediakan oleh Function Compute untuk mengakses OSS.

    import json
    import oss2
    
    def handler(event, context):
        evt = json.loads(event)
        creds = context.credentials
        # Kredensial sementara, termasuk token sementara.
        # Pasangan Kunci Akses dari akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan Pengguna RAM untuk melakukan panggilan API atau operasi O&M rutin.
        # Jangan menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, pasangan Kunci Akses tersebut dapat bocor, sehingga membahayakan keamanan semua sumber daya dalam akun Anda.
        # Contoh ini menunjukkan cara memperoleh ID AccessKey dan Rahasia AccessKey dari konteks.
        auth = oss2.StsAuth(creds.access_key_id, creds.access_key_secret, creds.security_token)
        bucket = oss2.Bucket(auth, evt['endpoint'], evt['bucket'])
        bucket.put_object(evt['objectName'], evt['message'])
        return 'success'
  3. Klik Test Function. Setelah fungsi dieksekusi, masuk ke Konsol OSS dan buka bucket yang ditentukan. Verifikasi bahwa konten objek telah diganti dengan nilai parameter message dari parameter pengujian.

Referensi

  • Function Compute 3.0 mendukung prinsip hak istimewa minimal menggunakan peran terkait layanan untuk otorisasi. Untuk informasi selengkapnya tentang isi kebijakan untuk peran terkait layanan, lihat AliyunServiceRoleForFC.

  • Untuk informasi selengkapnya tentang cara mengonfigurasi peran untuk fungsi, lihat Buat fungsi.