Object Storage Service (OSS), Function Compute ile entegre çalışarak çeşitli uygulamalar ve işlevler oluşturmanıza olanak tanır. Bu konu, birden fazla OSS nesnesini tek bir ZIP dosyasında paketleyerek yerel bilgisayarınıza indirmek için Function Compute'un nasıl kullanılacağını açıklar.
Ön koşullar
-
Function Compute etkinleştirilmiştir.
Function Compute'u Function Compute ürün ayrıntıları sayfasından etkinleştirebilirsiniz.
-
Function Compute'a OSS'ye erişim izni vermeniz gerekir.
Daha fazla bilgi için bkz. Function Compute'a diğer Alibaba Cloud hizmetlerine erişim izni verme.
Bucket ve uygulama işlevi aynı bölgede bulunmalıdır.
Bir bucket'taki belirtilen bir dizine birden fazla nesne yüklemeniz gerekir. Bu öğreticide örnek olarak China (Hangzhou) bölgesindeki
examplebucketbucket'ınındir/dizini kullanılmıştır. Daha fazla bilgi için bkz. Basit yükleme.Function Compute hizmeti için bir RAM rolü oluşturmanız ve ARN'sini kaydetmeniz gerekir. Daha fazla bilgi için bkz. Güvenilen bir Alibaba Cloud hesabı için RAM rolü oluşturma.
Çalışma mantığı
Özellikle çok sayıda küçük dosya olmak üzere OSS'den toplu halde birden fazla nesne indirmek yavaş ve zahmetli olabilir. Function Compute kullanarak nesneleri önce OSS üzerinde paketleyebilir, sıkıştırılmış paketi yerel bilgisayarınıza indirebilir ve ardından açabilirsiniz. Bu yöntem, daha hızlı toplu indirmeler sağlar. Function Compute kullanarak OSS nesnelerini paketleme ve indirme iş akışı aşağıdaki şekilde gösterilmektedir.
Kullanıcı işlevi çağırır ve sıkıştırılacak bucket ile nesneleri belirtir.
Function Compute, belirtilen nesneleri OSS'den indirir ve rastgele bir ada sahip bir ZIP paketi oluşturur.
Function Compute, ZIP paketini OSS'ye yükler.
Function Compute, ZIP paketinin indirme URL'sini kullanıcıya döndürür.
Kullanıcı, döndürülen kalıcı indirme URL'sini kullanarak dosyayı OSS'den indirir.
Kullanım notları
İşlevin çalışma zamanı ortamındaki disk alanı sınırlıdır. Bu nedenle, işlev yalnızca az miktarda veriyi bellekte önbelleğe almak için hem indirme hem de yükleme işlemlerinde veri akışı kullanır.
İşlemi hızlandırmak amacıyla Function Compute, ZIP dosyası oluşturulurken dosyayı OSS'ye yükler.
ZIP dosyasını OSS'ye yüklerken işlev, parçaları birden çok iş parçacığı üzerinden eşzamanlı olarak yüklemek için OSS'nin çok parçalı yükleme özelliğini kullanır.
Function Compute kullanarak dosyaları sıkıştırma için maksimum işlem süresi 24 saattir. (Test verileri: Toplam boyutu 1,06 GB olan 57 nesne 63 saniyede işlenmiştir).
Yordam
Bu örnekte, China (Hangzhou) bölgesindeki examplebucket bucket'ının dir/ dizinindeki birden fazla nesnenin Function Compute kullanılarak nasıl paketleneceği ve yerel bilgisayara nasıl indirileceği açıklanmaktadır.
-
Uygulamayı dağıtın ve genel alan adını edinin.
ROS ile tek tıklama
Function Compute uygulamasını tek tıklamayla dağıtmak için Resource Orchestration Service (ROS) kullanın.
Configure Parameters sekmesinde tüm parametreler için varsayılan ayarları koruyun ve Next: Check and Confirm öğesini tıklayın.
-
Check and Confirm sekmesinde Create öğesini tıklayın.
Stack Information sekmesindeki Status değeri Creating olarak görüntülenir.
Yığın Status durumu Create_Success olarak değiştiğinde, genel alan adını bulmak için Outputs sekmesini tıklayın.
Serverless Application Center ile tek tıklama
-
start-zip-oss uygulama şablonunu Serverless Application Center üzerinden dağıtın.
Create Application sayfasında uygulama şablonu
start-zip-ossve dağıtım türü Directly Deploy olarak ayarlanır. Aşağıdaki temel parametreleri yapılandırın:Application Name:
start-zip-oss-obvrRole Name: AliyunFCServerlessDevsRole. Eklenen ilkeler AliyunOSSReadOnlyAccess ve AliyunFCFullAccess içerir.
Service Status: Function Compute ve Object Storage Service (OSS) her ikisi de etkinleştirilmiştir.
Advanced Settings: China (Hangzhou) bölgesini seçin. Hizmet adını
zip-oss, işlev adınızip-oss-funcve RAM rolü ARN'sini AliyunFcDefaultRole (eklenen ilkeler: AliyunOSSFullAccess ve AliyunFCDefaultRolePolicy) olarak ayarlayın.
Yapılandırmayı tamamladıktan sonra Create and Deploy Default Environment öğesini tıklayın.
-
Genel alan adını edinin.
Result sekmesini tıklayın.
-
Tetikleyiciler alanında genel alan adını (urlInternet) edinin.
fc zip oss service. service: role: acs:ram::1379186349xxx:role/aliyunfcdefaultrole internetAccess: true name: zip-oss description: zip oss sample function: handler: main.main_handler initializationTimeout: 3 memorySize: 3072 instanceType: e1 name: zip-oss-func runtime: python2.7 description: This is default function description by fc-deploy component timeout: 1800 instanceConcurrency: 1 region: cn-hangzhou triggers: - urlInternet: https://zip-oss-func-zip-oss-ayouyexxx.cn-hangzhou.fcapp.run name: http-test type: http config: methods: - GET - POST - PUT authType: anonymous
Serverless Devs CLI ile manuel dağıtım
-
Serverless Devs'i yükleyin.
npm install -g @serverless-devs/sYüklemeyi doğrulayın.
s -vAşağıdaki çıktı başarılı bir yüklemeyi gösterir:
@serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3 -
Serverless Devs'i yapılandırın.
s config add --AccessKeyID LTAI******** --AccessKeySecret KZo1******** --access fc-accessAşağıdaki tabloda parametreler açıklanmaktadır.
Parameter
Description
--AccessKeyID
Function Compute'a erişmek için kullanılan AccessKey ID.
--AccessKeySecret
Function Compute'a erişmek için kullanılan AccessKey Secret.
--access
Kimlik bilgileri için özel bir takma ad. -
start-zip-oss uygulama şablonunu dağıtın.
Projeyi başlatın.
Aşağıdaki örneklere göre yapılandırma öğeleri için değerler belirtin.
Proje dizinine gidin.
Projeyi dağıtın.
Çıktıdan
system_urldeğerini kaydedin.
s init start-zip-oss -d start-zip-oss
Parameter
Example
Uygulamanın bulunduğu bölge
cn-hangzhou
Uygulamanın ait olduğu Function Compute hizmeti
start-zip-oss
Uygulamanın işlev adı
zip-oss-func
Uygulamanın ait olduğu Function Compute hizmeti için yapılandırılan RAM rolünün ARN'si
acs:ram::137918634953****:role/test-rolecd start-zip-osss deploy -yfc-zip-oss-service: region: cn-hangzhou service: name: start-zip-oss function: name: zip-oss-func runtime: python2.7 handler: main.main_handler memorySize: 3072 timeout: 1800 url: system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run triggers: - type: http name: http-test
-
Sunucunuzda veya bir ECS örneğinde aşağıdaki komutu çalıştırarak bir
event.jsondosyası oluşturun. Dosyada, bucket adını ve indirilecek nesneleri içeren dizini belirtin.cat <<EOF > event.json { "bucket": "examplebucket", "source-dir": "dir/" } EOFNotsource-dirparametresi bir bucket içindeki bir dizin olmalıdır; kök dizin desteklenmez. -
Aşağıdaki komut örnek bir istektir.
curl -v -L -o oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run-
oss.zip: İndirilen ZIP paketinin kaydedildiği yerel yol.NotYerleşik Windows sıkıştırma açma aracı başarısız olursa 7-Zip veya WinRAR gibi üçüncü taraf bir araç kullanın.
https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: Projeyi dağıttığınızda döndürülensystem_url.
Bunu anonim yerine kimliği doğrulanmış bir HTTP işlevi olarak çağırmak için aşağıdaki SDK'lardan birini kullanın:
-
SSS
Filigran ekleme
Süre sınırlı indirme URL'leri
İlgili konular
Function Compute'un özellikleri ve faturalandırması hakkında daha fazla bilgi için bkz. Function Compute nedir? ve Faturalandırmaya genel bakış.
Function Compute ve OSS entegrasyonunu gösteren şablonlar ve örnek uygulamalar için bkz. Örnek kod.
Function Compute ile OSS kullanımına ilişkin daha fazla örnek için bkz. OSS'deki ZIP dosyalarını otomatik olarak açmak için Function Compute kullanma.