You can migrate F# ASP.NETCore projects by using the Custom Runtime and HTTP triggers of Function Compute. You can access a function by using a browser or HTTP client tools such as curl.
- The examples in this topic apply to scenarios where Docker is installed. If you do not want to use Docker, you need to install .NET Core 3.1. For more information about installation, see dot.net.core3.1. For more information about the command, see fc-custom-demo.
- If you have installed Funcraft, go to Step 2: Deploy and call a function.
Step 1: Prepare the environment
The easiest way to install Funcraft is to download the executable binary files.
- Install Funcraft on the local machine. For more information, see Install Funcraft.
- Run the
fun --versioncommand to check whether the installation is successful.
- Run the
fun configcommand to configure Funcraft. Set the Account ID, Access Key ID, Access Key Secret, and Default region name parameters as prompted.
fun config Aliyun Account ID 1234xxx Aliyun Access Key ID xxxx Aliyun Access Key Secret xxxx Default region name cn-xxxx The timeout in seconds for each SDK client invoking 300 The maximum number of retries for each SDK client 5 Allow to anonynously report usage statistics to improve the tool over time? (Y/n)
Step 2: Deploy and call a function
- Run the following command to clone the sample project to your local device.
git clone https://github.com/awesome-fc/fc-custom-demoNote If you have not installed Git, download it from https://github.com/awesome-fc/fc-custom-demo and install it.
- Run the following command to access the cloned sample project:
cd fc-custom-demo cd FSharp-demo
- Run the following command to deploy the function:
make deployThe following result is returned:
docker run -it -v $(pwd):/tmp mcr.microsoft.com/dotnet/core/sdk:3.1 bash -c "cd /tmp/FSharpDemo && dotnet publish -r linux-x64 -c Release --self-contained true && cd /tmp/FSharpDemo/bin/Release/netcoreapp3.1/linux-x64/publish && mv FSharpDemo bootstrap && chmod +x bootstrap" Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. Restore completed in 15.2 sec for /tmp/FSharpDemo/FSharpDemo.fsproj. FSharpDemo -> /tmp/FSharpDemo/bin/Release/netcoreapp3.1/linux-x64/FSharpDemo.dll FSharpDemo -> /tmp/FSharpDemo/bin/Release/netcoreapp3.1/linux-x64/publish/ fun deploy -y ... Waiting for service fsharp_demo to be deployed... Waiting for function fc_fsharp to be deployed... Waiting for packaging function fc_fsharp code... The function fc_fsharp has been packaged. A total of 338 files were compressed and the final size was 39.3 MB Waiting for HTTP trigger http_t to be deployed... triggerName: http_t methods: [ 'GET', 'POST', 'PUT', 'DELETE' ] url: https://19861144305****.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/fsharp_demo/fc_fsharp/ Http Trigger will forcefully add a 'Content-Disposition: attachment' field to the response header, which cannot be overwritten and will cause the response to be downloaded as an attachment in the browser. This issue can be avoided by using CustomDomain. trigger http_t deploy success function fc_fsharp deploy success service fsharp_demo deploy success Detect 'DomainName:Auto' of custom domain 'my_domain' Fun will reuse the temporary domain 16225220-19861144****.test.functioncompute.com, expired at 2020-04-17 10:07:00, limited by 1000 per day. Waiting for custom domain my_domain to be deployed... custom domain my_domain deploy success
- Run the following command to call the deployed function:
In this example, directly use curl or the browser to access the temporary domain name
16225220-198611443****.test.functioncompute.comafter the function is deployed.
curl 16225220-1986114430****.test.functioncompute.com/weatherforecastThe following result is returned: