发布.NET Core内置的AWS Lambda函数时出错

时间:2016-12-22 22:33:02

标签: amazon-web-services .net-core aws-lambda aws-sdk

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

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/****

我想我可以将一个策略附加/授予组/用户进行cloudformation,但我只能在选择中看到此政策:AWSCloudFormationReadOnlyAccess

我期待看到某种ReadWrite或FullAccess。

需要帮助将功能发布到AWS lambda。谢谢!

2 个答案:

答案 0 :(得分:0)

提供对Lambda部署的用户个人资料的完全访问权限。Lambda Permission Image

答案 1 :(得分:0)

我认为这与要使用的帐户资料有关;需要允许这个发布lambda。

在Visual Studio中,右键单击AWS Lambda项目 - >发布,您会看到要发布的窗口。 顶部是要使用的帐户配置文件和要发布到的区域; default采用您在安装插件时使用的aws_user帐户

top of aws publish window

您可以尝试的是为您自己的用户提供AWSLambdaFullAccess策略以便能够发布lambda。您可以在AWS的IAM控制台中执行此操作。

您也可以尝试从dotnet cli命令行发布,而不是使用上下文菜单。

  1. 在控制台中,转到.net核心项目所在的文件夹
  2. 在这里你可以使用dotnet lambda控制台功能。
  3. 这是因为从这个文件夹中,dotnet cli能够找到并使用位于packages子文件夹中的AWS包,或者使用project.json来定位它们。

    示例:

      

    dotnet lambda package

    将构建&打包待发布的文件。

      

    dotnet lambda deploy-function

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