gpt4 book ai didi

c# - AWS Lambda C# CloudFormation 配置

转载 作者:行者123 更新时间:2023-12-03 07:45:56 25 4
gpt4 key购买 nike

我尝试使用 C# 制作一个简单的 lambda 函数并使用 CloudFoundation 进行部署

我有这个配置:

{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "My PoC.",

"Resources": {
"MyPocLambda": {
"Type": "AWS::Lambda::Function",
"Description": "Just a lambda for a Hello world",
"Properties": {
"Runtime": "dotnetcore1.0",
"FunctionName": "HandleGet",
"Handler": "MyPoc::MyPoc.Function::HandleGet",
"MemorySize": 256,
"Timeout": 30,
"Role": { "Fn::GetAtt": ["LambdaExecutionRole", "Arn"]},
"Code": {
"ZipFile": "./bin/Release/netcoreapp1.0/MyPoc.zip"
}
}
},
"LambdaExecutionRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": ["lambda.amazonaws.com"] },
"Action": ["sts:AssumeRole"]
}]
},
"ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]
}
}
}
}

由于代码属性,部署不起作用。我应该在 C# 中用它做什么?

谢谢

最佳答案

一个符号。我相当确定您无法使用此过程来部署 dotnetcore1.0 或除使用 Code 的 zipfile 属性的 node.js 之外的任何运行时。我知道有两个选择。

  1. 使用 Visual Studio 2015 SP3/2017 中提供的 dotnet cli 进行部署。这将是:

dotnet lambda 部署函数

使用此 cli 调用时,您应该确保项目中的 aws-lambda-tools-defaults.json 文件设置类似于以下内容:

{ 
"Information" : [ some information ],
"profile":"YourDefaultProfile",
"region" : "us-east-1",
"configuration" : "Release",
"framework" : "netcoreapp1.0",
"function-runtime":"dotnetcore1.0",
"function-memory-size" : 256,
"function-timeout" : 30,
"function-handler" : "AWSLambdas::AWSLambdas.Function::FunctionHandler"
}

这将在您拥有项目文件和资源的文件夹中执行;不是 bin 文件夹。您还可以指定其他参数(例如角色等),以缩短此默认 cli 部署调用之外的提示。此调用还有一个 cli 帮助热线:

dotnet lambda 帮助

  • 能够使用 SAM 部署 Lambda;无服务器应用程序模型于 2016 年底推出。示例 CloudFormation 部署位于 AWS 网站上:
  • http://docs.aws.amazon.com/lambda/latest/dg/deploying-lambda-apps.html

    祝你好运!

    关于c# - AWS Lambda C# CloudFormation 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44139725/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com