Amazon web services 将ASP.NET核心Web API发布到AWS无服务器Lambda:';AWSLambdaFullAccess';at';policyArn'。。。成员的长度必须大于
一年多以来,我一直能够通过选择“发布到AWS Lambda…”使用Visual Studio 2019发布ASP.NET核心Web API应用程序,而不会发生任何意外(通过右键单击项目)。直到昨天。现在它一直无法发布并回滚 下面给出了失败的两个原因Amazon web services 将ASP.NET核心Web API发布到AWS无服务器Lambda:';AWSLambdaFullAccess';at';policyArn'。。。成员的长度必须大于,amazon-web-services,aws-lambda,visual-studio-2019,asp.net-core-webapi,aws-serverless,Amazon Web Services,Aws Lambda,Visual Studio 2019,Asp.net Core Webapi,Aws Serverless,一年多以来,我一直能够通过选择“发布到AWS Lambda…”使用Visual Studio 2019发布ASP.NET核心Web API应用程序,而不会发生任何意外(通过右键单击项目)。直到昨天。现在它一直无法发布并回滚 下面给出了失败的两个原因 检测到1个验证错误:“policyArn”处的值“AWSLambdaFullAccess”未能满足约束:成员的长度必须大于或等于20(服务:AmazonIdentityManagement;状态代码:400;错误代码:ValidationError;
AWSLambdaFullAccess
的角色AWSLambdaFullAccess
参考更改为AWSLambda_FullAccess
希望这能帮助到别人 这可能不是正确或理想的解决方案,我尝试了这种方法,效果很好 步骤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执行角色。(以前我不记得明确添加了这个角色)虽然我最终在Visual Studio中创建了一个同名的应用程序,并将代码文件复制到其中,然后安装了软件包,但我发现这是一个奇怪的问题,会自动发生,因此如果你有答案,我相信将来会有其他人遇到同样的问题,他们希望知道一种更简单的方法。我在我项目的失败版本上测试了它,没有更改,它就失败了,而且更改成功了。这与我当前的工作版本一致,通过一个新的项目创建,保留了新创建的serverless.template。谢谢!这是指向AWS doco的链接,与执行回滚时跳过资源有关: