溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Serverless實(shí)現(xiàn)移動(dòng)應(yīng)用包分發(fā)服務(wù)的過程

發(fā)布時(shí)間:2020-06-05 10:47:44 來源:億速云 閱讀:217 作者:Leah 欄目:云計(jì)算

這篇文章給大家分享的是Serverless實(shí)現(xiàn)移動(dòng)應(yīng)用包分發(fā)服務(wù)的過程。小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于Serverless實(shí)現(xiàn)移動(dòng)應(yīng)用包分發(fā)服務(wù)的步驟。

準(zhǔn)備工作:

1.安裝 node

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
nvm install 8

2.安裝 fun 工具

npm install @alicloud/fun -g

fun 工具的某些子命令可能會(huì)用到 docker,所以你需要安裝好 docker,具體參考文檔:Fun 安裝教程。

3.apk 包準(zhǔn)備

在這個(gè)實(shí)驗(yàn)中,我們會(huì)使用一個(gè)示例的 apk 包,可以從這里下載 qq-v2.apk。

下載 qq-v2.apk ,上傳到自己的 oss bucket中

快速開始:

1.通過 fun 模板生成項(xiàng)目骨架

使用 fun init 命令可以快捷的將本模板項(xiàng)目初始化到本地,執(zhí)行命令 :

$ fun init -n apk https://github.com/coco-super/package-distribution-service-for-serverless
start cloning...
Cloning into '.fun-init-cache-2fc2d680-eeff-11e9-a930-6fd4d1ac6506'...
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 23 (delta 0), reused 18 (delta 0), pack-reused 0
Unpacking objects: 100% (23/23), done.
finish clone.
? Please input a oss bucket name? sunfeiyu
Start rendering template...
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/.funignore
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/pom.xml
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/src
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/src/main
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/src/main/java
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/src/main/java/example
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/src/main/java/example/App.java
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/target
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/target/classes
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/target/classes/example
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/target/classes/example/App.class
+ /Users/ellison/simple-fc-uncompress-service-for-oss/apk/template.yml
finish rendering template.

其中 -n 表示要作為文件夾生成的項(xiàng)目名稱。默認(rèn)值是 fun-app。更多fun init 命令格式選項(xiàng)說明請(qǐng)參考云棲文章開發(fā)函數(shù)計(jì)算的正確姿勢(shì) —— 使用 Fun Init 初始化項(xiàng)目。

執(zhí)行 fun init后會(huì)提示:輸入一個(gè) oss 的 bucket,注意 oss Bucket 是全球唯一的,如已經(jīng)被占用了,請(qǐng)換一個(gè)新的名稱或者一個(gè)已經(jīng)創(chuàng)建好的(已經(jīng)創(chuàng)建好的,請(qǐng)確保 region 一致)。

ps: 輸入的內(nèi)容和 apk 包準(zhǔn)備中提到的 oss bucket name 是同一個(gè),本示例為:sunfeiyu

4. 編譯

在模版項(xiàng)目的根目錄下執(zhí)行 fun build 命令編譯:

$ fun build 
using template: template.yml
start building function dependencies without docker

building apk/apk
running task flow MavenTaskFlow
running task: MavenCompileTask
running task: MavenCopyDependencies
running task: CopyMavenArtifacts

Build Success

Built artifacts: .fun/build/artifacts
Built template: .fun/build/artifacts/template.yml

Tips for next step
======================
* Invoke Event Function: fun local invoke
* Invoke Http Function: fun local start
* Deploy Resources: fun deploy

開發(fā)函數(shù)計(jì)算的正確姿勢(shì) —— 使用 Fun Build 構(gòu)建函數(shù)。

5.服務(wù)部署

在模版項(xiàng)目的的根目錄下執(zhí)行 fun deploy 部署到云端。

$ fun deploy
using template: .fun/build/artifacts/template.yml
using region: cn-shanghai
using accountId: ***********8320
using accessKeyId: ***********mTN4
using timeout: 60

Waiting for service apk to be deployed...
        make sure role 'aliyunfcgeneratedrole-cn-shanghai-apk' is exist
        role 'aliyunfcgeneratedrole-cn-shanghai-apk' is already exist
        attaching policies AliyunOSSFullAccess to role: aliyunfcgeneratedrole-cn-shanghai-apk
        attached policies AliyunOSSFullAccess to role: aliyunfcgeneratedrole-cn-shanghai-apk
        Waiting for function apk to be deployed...
                Waiting for packaging function apk code...
                The function apk has been packaged. A total of 15 files files were compressed and the final size was 3.13 MB
        function apk deploy success
service apk deploy success

6.執(zhí)行函數(shù)

提供兩種方式:

  1. 登陸云函數(shù)計(jì)算控制臺(tái),手動(dòng)執(zhí)行。
  1. 項(xiàng)目根目錄下 fun invoke apk 命令遠(yuǎn)端調(diào)用:
$ fun invoke apk
using template: template.yml
========= FC invoke Logs begin =========
FC Invoke Start RequestId: 23f34cc4-0cd3-40e0-9a04-f6586cf29be6
2019-10-14 17:06:35.971 [INFO] [23f34cc4-0cd3-40e0-9a04-f6586cf29be6] cmd: java -jar /code/walle-cli-all.jar put -c aliyun-fc /tmp/input.apk /tmp/output.apk
2019-10-14 17:06:36.152 [INFO] [23f34cc4-0cd3-40e0-9a04-f6586cf29be6] Success!

FC Invoke End RequestId: 23f34cc4-0cd3-40e0-9a04-f6586cf29be6

Duration: 666.13 ms, Billed Duration: 700 ms, Memory Size: 1024 MB, Max Memory Used: 254.55 MB
========= FC invoke Logs end =========

FC Invoke Result:
Success

查看結(jié)果

登陸 oss 查看已經(jīng)生成新的 apk 包:

將 oss 中 qq-v2-signed.apk 下載到本地。

查看渠道信息是否寫入:

~/Downloads                                                                                                                                             ?
$ java -jar /Users/ellison/Downloads/walle-cli-all.jar show qq-v2-signed.apk
/Users/ellison/Downloads/qq-v2-signed.apk : {channel=aliyun-fc}

渠道信息 {channel=aliyun-fc} 已寫入,成功!

關(guān)于Serverless實(shí)現(xiàn)移動(dòng)應(yīng)用包分發(fā)服務(wù)的過程就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI