2016-12-22 56 views
2

从2016年12月1日起,AWS Lambda现在支持在.NET Core 1.0运行时运行的C#中的函数。所以我使用VS AWS Lambda模板创建了该功能。我尝试通过VS中的“Publish to AWS Lambda ...”上下文菜单发布lambda函数。因此,在该对话框中配置功能(选择S3桶,区域等)后,我点击发布,并在发布过程结束时,我得到错误:发布使用.NET Core构建的AWS Lambda函数时出错

Error creating CloudFormation change set: User: arn:aws:iam::***:user/demo_user is not authorized to perform: cloudformation:CreateChangeSet on resource: arn:aws:cloudformation:us-east-1:****:stack/**** 

我想我可以只重视/将策略授予组/用户以使用云形态,但我只能在选择中看到此策略:AWSCloudFormationReadOnlyAccess

我期待看到某种ReadWrite或FullAccess。

需要帮助将函数发布到AWS lambda。谢谢!

回答

0

为Lambda Deployment提供对用户配置文件的完全访问权限。 Lambda Permission Image

+0

这是行不通的。我认为这与CloudFormation策略设置有关,但我只能看到与其相关的“AWSCloudFormationReadOnlyAccess”策略。我已经添加了该策略,但仍然出现错误。 – alltej

0

我认为这与要使用的帐户配置文件有关;这个需要被允许发布lambda。

在Visual Studio中,右键单击AWS Lambda项目 - >发布时,将看到要发布的窗口。 顶部是要使用的帐户配置文件以及要发布到的区域;默认情况下需要您在安装该插件

top of aws publish window

什么,你可以尝试是提供自己的用户的AWSLambdaFullAccess政策能够发布拉姆达使用的aws_user帐户。您可以在AWS的IAM控制台中执行此操作。

除了使用上下文菜单,您还可以尝试从dotnet cli命令行发布。

  1. 在控制台中,转到文件夹在您的.NET的核心项目是
  2. 在这里你可以使用DOTNET拉姆达控制台功能。

这是因为从该文件夹中,dotnet cli能够找到并使用位于packages子文件夹/ /或使用project.json中的AWS软件包来定位这些文件夹。

实施例:

dotnet lambda package

将建立&包要发布的文件。

dotnet lambda deploy-function

会将您的lambda函数发布到AWS Cloud。