當前位置:首頁 » 編程軟體 » 雲函數能反編譯嗎

雲函數能反編譯嗎

發布時間: 2023-03-24 01:09:24

A. 騰訊雲函數不支持C#

C#語言由於需要編譯後才可以在 CoreCLR 虛擬機中運行。因此在 SCF 中的使用方式,和 python、Node.js 這類腳本型語言不同,和Java一樣有如下限制:

  • 不支持上傳代碼:使用 C# 語言,僅支持上傳已經開發完成,編譯打包後的 zip 包。SCF 環境不提供 C# 的編譯能力。

  • 不支持在線編輯:不能上傳代碼,所以不支持在線編輯代碼。CoreCLR 運行時的函數,在代碼頁面僅能看到再次通過頁面上傳或 COS 提交代碼的方法。

  • 自定義.NET Custom runtime

    Custom Runtime的封裝工作就是要把各種trigger 的事件封裝一個.NET Standard庫,開發雲函數。自 .NET Core 2.0 開始, 提供了名為IHostedService的新介面,有助於輕松實現託管服務,文章《ASP.NET Core 3.x控制IHostedService啟動順序淺探》有深入的實現分析,基於IHostedService實現一個SCFHostService:

    這里我們把SCF的Custom Runtime 抽象到ISCFHost 中

    在SCFHost 類中完成Custom Runtime的業務處理,接收來自SCF 的事件,轉發給函數進行處理,函數處理的介面 IFunctionInvoker:

    默認實現了FunctionInvoker 把請求信息 返回給 SCF:

    responseBody 代表了SCF函數的不同Trigger事件信息,我們可以根據不同的Trigger 定義不同的處理函數,例如我們處理HttpTrigger的函數為HttpFunctionInvoker:

    上面我們已經完成了最小的MVP封裝,利用.NET Core的依賴注入容器封裝起來,我們定義了一個ISCFBuilder 來組裝函數的配置和服務:

    SCF 雲函數開發

    我們使用.NET Core的控制台程序來開發雲函數,創建一個控制台程序, 引用Yhd.TencentCloud.SCF 包,把Program.cs 替換成類似代碼:

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;
    using Microsoft.Extensions.Logging;
    using System.Threading.Tasks;
    using Yhd.FindJob;
    using Yhd.TencentCloud.SCF.Executors;

    public class Index
    {
    static async Task Main(string[] args)
    {
    var builder = new HostBuilder()
    .ConfigureSCF((context, scfbuilder) =>
    {
    var configuration = scfbuilder.Configuration;

    scfbuilder.Services.AddFindJob(configuration);
    scfbuilder.Services.AddEasyCaching(options =>
    {
    options.UseInMemory();
    //use redis cache that named redis
    options.UseRedis(configuration)
    .WithJson()
    ;
    });
    scfbuilder.Services.AddTransient<IFunctionInvoker, JobsHttpFunctionInvoker>();

    })
    .UseConsoleLifetime();

    var host = builder.Build();

    using (host)
    {
    await host.RunAsync();
    }

    }
    }

    通過ConfigureSCF 可以添加函數的依賴服務,例如上面例子中的EasyCaching 以及函數的服務, 關鍵的一句是 scfbuilder.Services.AddTransient<IFunctionInvoker, JobsHttpFunctionInvoker>(); 把函數的處理邏輯使用JobsHttpFunctionInvoker 進行注入。把函數的配置放到appsettings.json。

    現在SCF 雲函數有個問題是本地Windows開發問題,本地的函數邏輯的測試可以通過單元測試進行。還有函數打包必須在linux環境下進行。

    雲函數部署

    創建 bootstrap 文件

    bootstrap 是運行時入口引導程序文件,Custom Runtime 載入函數時固定檢索 bootstrap 同名文件,並執行該程序來啟動 Custom Runtime 運行時。Custom Runtime 支持任意語言及版本開發運行函數,主要基於 bootstrap 引導程序由開發者自定義實現。其中,bootstrap 需具備以下條件:

  • 需具有可執行許可權。

  • 能夠在 SCF 系統環境(CentOS 7.6)中運行。

  • 下面這個是 .NET Core 3.1的雲函數 bootstrap 文件

    #!/bin/sh
    echo "Start dotnet bootstrap ~~~"
    export DOTNET_ROOT=/opt/rt
    export PATH=$(pwd):/opt/rt:${PATH}
    dotnet ./index/bin/Release/netcoreapp3.1/index.dll

    index.dll 就是我們開發的函數文件。

    成功創建bootstrap和函數文件後,目錄結構如下所示:

    ├ bootstrap
    └ index

    需要在Linux 下執行以下命令,設置文件可執行許可權,並將其添加至 ZIP 包

    部署包準備好後,可以通過雲函數控制台來創建和發布函數

    在騰訊雲雲函數計算上部署.NET Core 3.1的更多相關文章

  • 阿里雲函數計算上部署.NET Core 3.1

    使用阿里雲ECS或者其他常見的VPS服務部署應用的時候,需要手動配置環境,並且監測ECS的行為,做補丁之類的,搞得有點復雜.好在很多雲廠商(阿里雲.Azure等)提供了Serverless服務,藉助於 ...

  • IIS上部署Net.Core

    部署: 1.安裝vc_redist.x64vc_redist.x64 2.安裝DotNetCore.1.0.0.RC2-WindowsHosting 3.安裝DotNetCore.1.0.0-SDK. ...

  • So Easy - 在Linux伺服器上部署 .NET Core App

    .NET Core是微軟提供的免費.跨平台和開源的開發框架,可以構建桌面應用程序.移動端應用程序.網路應用程序.物聯網應用程序和游戲應用程序等.如果你是 Windows 平台下的 dotnet 開發 ...

  • 在IIS上部署 .Net Core 3.0 項目踩坑實錄

    在IIS上部署 .Net Core 3.0 項目的主要流程有: 安裝並啟用IIS 安裝AspNetCoreMoleV2 添加.配置網站 設置應用程序池 通過VS發布 一.安裝並啟用IIS: 安裝了 ...

  • 在CentOS 8 上 部署 .Net Core 應用程序

    在Centos 8 上 部署 .Net Core 應用程序 -- 記錄篇 1.更新dnf 源 1 dnf update 2.安裝 Asp.Net Core 運行時 1 dnf install ...

  • 在騰訊雲&amp;阿里雲上部署JavaWeb項目(Tomcat+MySQL)

    之前做項目都是在本地跑,最近遇到需要在在雲伺服器(阿里雲或者騰訊雲都可以,差不多)上部署Java Web項目的問題,一路上遇到了好多坑,在成功部署上去之後寫一下部署的步驟與過程,一是幫助自己總結記憶, ...

  • ASP.NET Core學習之四 在CentOS上部署.net core

    一.安裝CentOs 以前在大學學過linux,但是對命令行總是有一種深深的排斥感,幾年之後,還是又回來了. 1.下載 現在沒法FQ,就算是FQ網速也是蝸牛一樣慢,我使用阿里雲的鏡像站進行下載速度還是 ...

  • 【netcore入門】在Windows IIS上部署.NET Core 2.1項目

    部署之前先檢查下面2個先決條件是否滿足 1.安裝了 IIS 模塊 win7 在 控制面板→程序和功能→打開或關閉Windows功能→勾選Internet 信息服務(Internet Informati ...

  • CentOS7系統上部署.net core程序

    一.准備工作 首先安裝 xshell和 xftp ,前者用於SSH連接Linux伺服器,後者用於FTP上傳下載文件. xshell和xftp個人使用是免費的,下載地址 之後分別輸入用戶名和密碼登錄主 ...

B. c語言生成的exe文件還能不能反編譯成源程序

不能!!!!!!
只能人為的翻譯。

沒有這樣的軟體!!!!!!

如果要是能反編譯,這個世界的程序員就全失業了!

C. 微信小程序雲開發和普通開發有什麼區別,有事在哪裡

開發者可以使用雲開發開發微信小程序、小游戲,無需搭建伺服器,即可使用雲端能力。(雲端說白了也就是服務端啦,說的那麼高大上,對新手朋友可不太友好。)

小程序·雲開發提供了三個基礎能力:資料庫存儲和雲函數。

  • 資料庫:json資料庫,就理解為往裡面存的是json,取出來的也是json。

  • 存儲:就是把你的圖片、音頻和視頻之類的資源文件,存儲到裡面,幫你生成鏈接,直接拿鏈接就可以用,就好像一個網盤一樣。

  • 雲函數:這個雲函數,就是服務端的介面,你調用這個函數,也就是調用介面。雲函數可以在客戶端寫,也可以在雲開發控制台寫,寫完之後同步一下,兩端就都有了。在雲函數里,你可以進行計算,也可以操作資料庫,把想要的結果以同步或者非同步的方式返回給客戶端。

而普通開發就不一樣了,普通開發需要准備以上所有條件。所以,雲開發要比普通開發更方便、更高效。

D. 安卓如何調用騰訊雲函數

1、首先打開騰訊雲,點擊「雲產品」然後選擇「雲函數」。
2、其次點擊「函數服務」然後新建雲函數,設置好函數名稱。
3、最後選擇python3.6的版本,選擇空白函數,即可調用騰訊雲函數。

熱點內容
androidsocket服務 發布:2024-04-26 22:49:53 瀏覽:980
python編譯時加密 發布:2024-04-26 22:49:20 瀏覽:246
買車看哪些配置參數 發布:2024-04-26 22:45:50 瀏覽:835
linux顯示圖像 發布:2024-04-26 22:45:41 瀏覽:493
flash腳本格式 發布:2024-04-26 22:43:41 瀏覽:452
c語言求三位數 發布:2024-04-26 22:43:39 瀏覽:690
c語言點陣字模 發布:2024-04-26 22:19:35 瀏覽:919
光加密 發布:2024-04-26 22:15:28 瀏覽:353
aspnet經典源碼 發布:2024-04-26 22:14:46 瀏覽:136
linux編譯提示缺少build 發布:2024-04-26 22:14:34 瀏覽:416