将 ASP.NET Core Web API 发布到 AWS Serverless Lambda 时出错:'AWSLambdaFullAccess' at 'policyArn' ...成员的长度必须大于
Error publishing ASP.NET Core Web API to AWS Serverless Lambda: 'AWSLambdaFullAccess' at 'policyArn' ... Member must have length greater than
一年多来,我已经能够通过选择“发布到 AWS Lambda...”使用 Visual Studio 2019 发布 ASP.NET Core Web API 应用程序而没有发生任何事故(通过右键单击项目)。直到昨天。现在它始终无法发布并回滚。
失败的原因有以下两个。
1 检测到验证错误:'policyArn' 处的值 'AWSLambdaFullAccess' 未能满足约束:成员的长度必须大于或等于 20(服务:AmazonIdentityManagement;状态代码: 400;错误代码:ValidationError;请求 ID:...;代理:null)
以下资源创建失败:[AspNetCoreFunctionRole, Bucket]。用户请求回滚。
我查看了 AWSLambdaFullAccess 和 AWSLambda_FullAccess 以及其他内容,只是没有可遵循的模型,甚至不知道它在任何意义上指的是什么,我可以想象一条富有成果的前进道路。它指的“会员”到底是什么?广泛的研究没有任何用处。
我想成功发布我的网站API。我可以调查什么以继续?
根据 https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html AWSLambdaFullAccess 策略刚刚被弃用,因此我尝试更新的堆栈卡在了 UPDATE_ROLLBACK_FAILED。
要解决这个问题,我必须采取以下步骤:
- 从 CloudFormation 页面手动继续回滚堆栈并确保我跳过了引用
AWSLambdaFullAccess
. 的角色
- 在 CloudFormation 模板中将我的
AWSLambdaFullAccess
引用更改为 AWSLambda_FullAccess
- 使用我新更新的 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 时遇到问题 table。我去了 IAM 角色,添加了 DynamoDb 执行角色。 (以前我不记得明确添加过这个角色)
一年多来,我已经能够通过选择“发布到 AWS Lambda...”使用 Visual Studio 2019 发布 ASP.NET Core Web API 应用程序而没有发生任何事故(通过右键单击项目)。直到昨天。现在它始终无法发布并回滚。
失败的原因有以下两个。
1 检测到验证错误:'policyArn' 处的值 'AWSLambdaFullAccess' 未能满足约束:成员的长度必须大于或等于 20(服务:AmazonIdentityManagement;状态代码: 400;错误代码:ValidationError;请求 ID:...;代理:null)
以下资源创建失败:[AspNetCoreFunctionRole, Bucket]。用户请求回滚。
我查看了 AWSLambdaFullAccess 和 AWSLambda_FullAccess 以及其他内容,只是没有可遵循的模型,甚至不知道它在任何意义上指的是什么,我可以想象一条富有成果的前进道路。它指的“会员”到底是什么?广泛的研究没有任何用处。
我想成功发布我的网站API。我可以调查什么以继续?
根据 https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html AWSLambdaFullAccess 策略刚刚被弃用,因此我尝试更新的堆栈卡在了 UPDATE_ROLLBACK_FAILED。
要解决这个问题,我必须采取以下步骤:
- 从 CloudFormation 页面手动继续回滚堆栈并确保我跳过了引用
AWSLambdaFullAccess
. 的角色
- 在 CloudFormation 模板中将我的
AWSLambdaFullAccess
引用更改为AWSLambda_FullAccess
- 使用我新更新的 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 时遇到问题 table。我去了 IAM 角色,添加了 DynamoDb 执行角色。 (以前我不记得明确添加过这个角色)