2016-12-22 30 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。