首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Mono为AWS函数创建.NET函数代码压缩文件?

如何使用Mono为AWS函数创建.NET函数代码压缩文件?
EN

Stack Overflow用户
提问于 2018-11-23 10:52:08
回答 2查看 2.9K关注 0票数 3

总的来说,我对Mono和.NET生态系统并不熟悉,而官方指南似乎并不适用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-23 11:47:21

实际上,指南是适用的,但我必须先安装dotnet-cli (看看如何),这是在OS上没有随Mono发行版附带的。

另外,我需要一个函数压缩文件本身,而不是创建一个函数的能力,这当然不是通常或推荐的工作流程。

从码头集装箱中构建这样的拉链:

代码语言:javascript
复制
FROM mono
RUN curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin
COPY src /src
WORKDIR /src
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT 1
RUN /root/.dotnet/dotnet publish LambdaTest/LambdaTest.csproj
RUN zip -r -j dotnet.zip LambdaTest/bin/Debug/netcoreapp2.1/publish/

档案结构:

代码语言:javascript
复制
src/LambdaTest
├── Function.cs
└── LambdaTest.csproj

Function.cs

代码语言:javascript
复制
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;

    using Amazon.Lambda.Core;

    // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
    [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]

    namespace dotnet
    {
        public class Function
        {

            /// <summary>
            /// A simple function that takes a string and does a ToUpper
            /// </summary>
            /// <param name="input"></param>
            /// <param name="context"></param>
            /// <returns></returns>
            public string FunctionHandler(string input, ILambdaContext context)
            {
                return input?.ToUpper();
            }
        }
    }

LambdaTest.csproj

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    <AWSProjectType>Lambda</AWSProjectType>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Amazon.Lambda.Core" Version="1.0.0" />
    <PackageReference Include="Amazon.Lambda.Serialization.Json" Version="1.4.0" />
  </ItemGroup>

</Project>
票数 3
EN

Stack Overflow用户

发布于 2018-11-23 11:04:48

由于您是"Mono和.NET eco系统“的新手,我强烈建议您使用.NET Core

.NET Core生态系统能够部署一个自包含的环境,这是大多数云服务(如AWS )所需要的(正如您在所提供的指南中所看到的那样)。

在使用VisualStudio2017时,您可以立即启动.NET Core项目,而且努基特上也有可用的模板包。

更多信息可以在这里找到,在AWS博士中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53445281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档