【问题标题】:Error in publishing an AWS Lambda function built in .NET Core发布内置于 .NET Core 的 AWS Lambda 函数时出错
【发布时间】:2017-05-08 15:17:43
【问题描述】:

自 2016 年 12 月 1 日起,AWS Lambda 现在支持在 .NET Core 1.0 运行时中运行的 C# 函数。所以我使用 VS AWS Lambda 模板创建了这个函数。我尝试通过 VS 中的“发布到 AWS Lambda ...”上下文菜单发布 lambda 函数。因此,在对话框中配置功能(选择 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。谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 那行不通。我认为这与 CloudFormation 策略设置有关,但我只能看到与之相关的 AWSCloudFormationReadOnlyAccess 策略。我已经添加了该策略,但仍然收到错误。
    【解决方案2】:

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

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

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

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

    1. 在控制台中,转到您的 .net 核心项目所在的文件夹
    2. 您可以在此处使用 dotnet lambda 控制台功能。

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

    例子:

    dotnet lambda 包

    将构建和打包要发布的文件。

    dotnet lambda 部署函数

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

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2018-05-16
      相关资源
      最近更新 更多