簡體   English   中英

Error publishing ASP.NET Core Web API to AWS Serverless Lambda: 'AWSLambdaFullAccess' at 'policyArn' … Member must have length greater than

[英]Error publishing ASP.NET Core Web API to AWS Serverless Lambda: 'AWSLambdaFullAccess' at 'policyArn' … Member must have length greater than

For over a year I have been able to publish a ASP.NET Core Web API application using Visual Studio 2019 by selecting "Publish to AWS Lambda..." without incident (via a right click on the project). 直到昨天。 現在它始終無法發布並回滾。

關於它失敗的原因,給出了以下兩個原因。

  1. 檢測到 1 個驗證錯誤:“policyArn”處的值“AWSLambdaFullAccess”未能滿足約束:成員的長度必須大於或等於 20(服務:AmazonIdentityManagement;狀態代碼:400;錯誤代碼:ValidationError;請求 ID:...;代理:空)

  2. 未能創建以下資源:[AspNetCoreFunctionRole, Bucket]。 用戶請求回滾。

上傳進度圖片

我已經查看了 AWSLambdaFullAccess 和 AWSLambda_FullAccess 以及其他內容,只是沒有 model 可以遵循,甚至在任何意義上都知道它指的是什么,我可以想象一條富有成效的前進道路。 它所指的“會員”究竟是什么? 廣泛的研究沒有產生任何用處。

我想成功發布我的 Web API。 我可以查看哪些內容才能繼續?

根據https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html AWSLambdaFullAccess 策略剛剛被棄用,因此我試圖更新的堆棧卡在了UPDATE_ROLLBACK_FAILED。

為了解決這個問題,我必須采取以下步驟:

  1. 從 CloudFormation 頁面手動繼續回滾堆棧,並確保我跳過了引用AWSLambdaFullAccess的角色。
  2. 在 CloudFormation 模板中將我的AWSLambdaFullAccess引用更改為AWSLambda_FullAccess
  3. 使用我新更新的 CloudFormation 模板更新堆棧

希望這可以幫助某人!

這可能不是正確或理想的解決方案,我嘗試了這種方法並且它有效

步驟1:

在 serverless.template 中將訪問從“AWSLambdaFullAccess”更改為“AWSLambda_FullAccess”

"Resources": {
"AspNetCoreFunction": {
  "Type": "AWS::Serverless::Function",
  "Properties": {
    "Handler": "SampleAPI::SampleAPI.LambdaEntryPoint::FunctionHandlerAsync",
    "Runtime": "dotnetcore3.1",
    "CodeUri": "",
    "MemorySize": 256,
    "Timeout": 30,
    "Role": null,
    "Policies": [
      "AWSLambda_FullAccess"
    ],
    "Environment": {
      "Variables": {
        "AppS3Bucket": {

Lambda 此步驟后發布成功。

第2步:

然后我在訪問 DynamoDb 表時遇到了問題。 我去 IAM 角色添加了 DynamoDb 執行角色。 (以前我不記得明確添加了這個角色)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM