Skip to content

Commit 73228b9

Browse files
Ticket #1 : Add "getSql" & "transform" functions
1 parent 1417e72 commit 73228b9

31 files changed

+458
-43
lines changed

FaasNet.sln

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@ VisualStudioVersion = 16.0.29503.13
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01. Core", "01. Core", "{1064A767-7322-4A14-BFD4-97FDD40E76B4}"
77
EndProject
8-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "02. Startup", "02. Startup", "{B0C38F6D-3F83-458A-A493-428AB3DD9F85}"
8+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03. Startup", "03. Startup", "{B0C38F6D-3F83-458A-A493-428AB3DD9F85}"
99
EndProject
1010
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.Runtime.Startup", "src\FaasNet.Runtime.Startup\FaasNet.Runtime.Startup.csproj", "{892918CD-9BE2-4023-9026-FAFE03BC77BE}"
1111
EndProject
1212
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.Kubernetes", "src\FaasNet.Kubernetes\FaasNet.Kubernetes.csproj", "{2B6F7B44-91D5-44DD-8615-4EE8447F4839}"
1313
EndProject
14+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaasNet.Runtime", "src\FaasNet.Runtime\FaasNet.Runtime.csproj", "{74F28744-9578-4547-8CE8-A388EFED1DB6}"
15+
EndProject
16+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "02. Functions", "02. Functions", "{E407AB8F-BDC8-4084-BE20-B4442CFE5EE9}"
17+
EndProject
18+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.Runtime.GetSql", "src\FaasNet.Runtime.GetSql\FaasNet.Runtime.GetSql.csproj", "{39083E6B-D9AE-41A7-A364-82681B781A8B}"
19+
EndProject
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.Runtime.Transform", "src\FaasNet.Runtime.Transform\FaasNet.Runtime.Transform.csproj", "{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51}"
21+
EndProject
1422
Global
1523
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1624
Debug|Any CPU = Debug|Any CPU
@@ -25,13 +33,28 @@ Global
2533
{2B6F7B44-91D5-44DD-8615-4EE8447F4839}.Debug|Any CPU.Build.0 = Debug|Any CPU
2634
{2B6F7B44-91D5-44DD-8615-4EE8447F4839}.Release|Any CPU.ActiveCfg = Release|Any CPU
2735
{2B6F7B44-91D5-44DD-8615-4EE8447F4839}.Release|Any CPU.Build.0 = Release|Any CPU
36+
{74F28744-9578-4547-8CE8-A388EFED1DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{74F28744-9578-4547-8CE8-A388EFED1DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{74F28744-9578-4547-8CE8-A388EFED1DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
39+
{74F28744-9578-4547-8CE8-A388EFED1DB6}.Release|Any CPU.Build.0 = Release|Any CPU
40+
{39083E6B-D9AE-41A7-A364-82681B781A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41+
{39083E6B-D9AE-41A7-A364-82681B781A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
42+
{39083E6B-D9AE-41A7-A364-82681B781A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
43+
{39083E6B-D9AE-41A7-A364-82681B781A8B}.Release|Any CPU.Build.0 = Release|Any CPU
44+
{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45+
{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51}.Debug|Any CPU.Build.0 = Debug|Any CPU
46+
{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51}.Release|Any CPU.ActiveCfg = Release|Any CPU
47+
{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51}.Release|Any CPU.Build.0 = Release|Any CPU
2848
EndGlobalSection
2949
GlobalSection(SolutionProperties) = preSolution
3050
HideSolutionNode = FALSE
3151
EndGlobalSection
3252
GlobalSection(NestedProjects) = preSolution
3353
{892918CD-9BE2-4023-9026-FAFE03BC77BE} = {B0C38F6D-3F83-458A-A493-428AB3DD9F85}
3454
{2B6F7B44-91D5-44DD-8615-4EE8447F4839} = {B0C38F6D-3F83-458A-A493-428AB3DD9F85}
55+
{74F28744-9578-4547-8CE8-A388EFED1DB6} = {1064A767-7322-4A14-BFD4-97FDD40E76B4}
56+
{39083E6B-D9AE-41A7-A364-82681B781A8B} = {E407AB8F-BDC8-4084-BE20-B4442CFE5EE9}
57+
{E1FBEF1B-892D-4F3B-ADB2-A150152F4E51} = {E407AB8F-BDC8-4084-BE20-B4442CFE5EE9}
3558
EndGlobalSection
3659
GlobalSection(ExtensibilityGlobals) = postSolution
3760
SolutionGuid = {46764455-0D10-4266-9C37-35D7BD67517C}

FaasNetDoc.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ Cette API REST gère le déploiement des fonctions dans Kubernetes.
3636

3737
La gateway est utilisée pour déployer les fonctions mais aussi appeler des APIs.
3838

39-
4039
Example de workflow :
4140

4241
provider:

RuntimeGetSqlDockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM mcr.microsoft.com/dotnet/aspnet:5.0
2+
3+
COPY build/results/services/RuntimeGetSql/ App/
4+
ENV ASPNETCORE_URLS=http://*:8080
5+
6+
EXPOSE 8080
7+
8+
WORKDIR /App
9+
10+
ENTRYPOINT ["dotnet", "FaasNet.Runtime.GetSql.dll"]

RuntimeTransformDockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM mcr.microsoft.com/dotnet/aspnet:5.0
2+
3+
COPY build/results/services/RuntimeTransform/ App/
4+
ENV ASPNETCORE_URLS=http://*:8080
5+
6+
EXPOSE 8080
7+
8+
WORKDIR /App
9+
10+
ENTRYPOINT ["dotnet", "FaasNet.Runtime.Transform.dll"]

default.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ task ci -depends clean, release, local, pack, publish
1919

2020
task publish {
2121
exec { dotnet publish $source_dir\FaasNet.Runtime.Startup\FaasNet.Runtime.Startup.csproj -c $config -o $result_dir\services\Runtime }
22+
exec { dotnet publish $source_dir\FaasNet.Runtime.GetSql\FaasNet.Runtime.GetSql.csproj -c $config -o $result_dir\services\RuntimeGetSql }
23+
exec { dotnet publish $source_dir\FaasNet.Runtime.Transform\FaasNet.Runtime.Transform.csproj -c $config -o $result_dir\services\RuntimeTransform }
2224
exec { dotnet publish $source_dir\FaasNet.Kubernetes\FaasNet.Kubernetes.csproj -c $config -o $result_dir\services\Kubernetes }
2325
}
2426

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
2+
<PropertyGroup>
3+
<OutputType>Exe</OutputType>
4+
<TargetFramework>net5.0</TargetFramework>
5+
</PropertyGroup>
6+
<ItemGroup>
7+
<ProjectReference Include="..\FaasNet.Runtime\FaasNet.Runtime.csproj" />
8+
</ItemGroup>
9+
<ItemGroup>
10+
<PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
11+
</ItemGroup>
12+
</Project>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using FaasNet.Runtime.Parameters;
2+
using Newtonsoft.Json.Linq;
3+
using System.Data.SqlClient;
4+
using System.Threading.Tasks;
5+
6+
namespace FaasNet.Runtime.GetSql
7+
{
8+
public class FunctionHandler
9+
{
10+
public async Task<JObject> Handle(FunctionParameter<GetSqlConfiguration> parameter)
11+
{
12+
var jArr = new JArray();
13+
using (var connection = new SqlConnection(parameter.Configuration.ConnectionString))
14+
{
15+
var command = new SqlCommand(parameter.Configuration.SqlQuery, connection);
16+
await connection.OpenAsync();
17+
var reader = await command.ExecuteReaderAsync();
18+
var columns = reader.GetColumnSchema();
19+
while(await reader.ReadAsync())
20+
{
21+
var record = new JObject();
22+
for(int i = 0; i < columns.Count; i++)
23+
{
24+
var column = columns[i];
25+
record.Add(column.ColumnName, reader[i].ToString());
26+
}
27+
28+
jArr.Add(record);
29+
}
30+
}
31+
32+
var result = new JObject();
33+
result.Add("content", jArr);
34+
return result;
35+
}
36+
}
37+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using FaasNet.Runtime.Attributes;
2+
3+
namespace FaasNet.Runtime.GetSql
4+
{
5+
[FuncInfo("GetSql", "v1")]
6+
public class GetSqlConfiguration
7+
{
8+
[Translation("fr", "Chaîne de connection")]
9+
[Translation("en", "ConnectionString")]
10+
public string ConnectionString { get; set; }
11+
[Translation("fr", "Requête SQL")]
12+
[Translation("en", "SQL Query")]
13+
public string SqlQuery { get; set; }
14+
}
15+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using Microsoft.AspNetCore;
2+
using Microsoft.AspNetCore.Hosting;
3+
4+
namespace FaasNet.Runtime.GetSql
5+
{
6+
public class Program
7+
{
8+
public static void Main(string[] args)
9+
{
10+
BuildWebHost(args).Run();
11+
}
12+
13+
public static IWebHost BuildWebHost(string[] args) =>
14+
WebHost.CreateDefaultBuilder(args)
15+
.UseStartup<Startup>()
16+
.Build();
17+
}
18+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"iisSettings": {
3+
"windowsAuthentication": false,
4+
"anonymousAuthentication": true,
5+
"iisExpress": {
6+
"applicationUrl": "http://localhost:50458/",
7+
"sslPort": 44307
8+
}
9+
},
10+
"profiles": {
11+
"IIS Express": {
12+
"commandName": "IISExpress",
13+
"launchBrowser": true,
14+
"environmentVariables": {
15+
"ASPNETCORE_ENVIRONMENT": "Development"
16+
}
17+
},
18+
"FaasNet.Runtime.Startup": {
19+
"commandName": "Project",
20+
"launchBrowser": true,
21+
"environmentVariables": {
22+
"ASPNETCORE_ENVIRONMENT": "Development"
23+
},
24+
"applicationUrl": "https://localhost:5001;http://localhost:5000"
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)