在AWS CodeBuild中更新Lambda导致进程被占用(status error 255)的解决方案

大纲

  • [1 问题描述](#1 问题描述)
    • [1.1 错误提示](#1.1 错误提示)
    • [1.2 错误分析和解决方案](#1.2 错误分析和解决方案)
  • [2 解决方法](#2 解决方法)
    • [2.1 YMAL文件样例](#2.1 YMAL文件样例)
  • 参考文献

1 问题描述

在Lambda的部署实践中,我们尝试使用CodeBuild将代码更新到Lambda函数中。在这个过程中,偶尔会触发一个不太常见的状态:Lambda状态一直是处于Pending的状况。这个时候Lambda是被锁死的,导致CodeBuild无法更新Lambda函数的代码。很可惜,Lambda的操作界面没有提供重置Lambda状态的功能,这个时候只能借助cli工具来解决。

1.1 错误提示

构建日志页面提供的错误提示

An error occurred (ResourceConflictException) when calling the UpdateFunctionCode operation: The operation cannot be performed at this time. An update is in progress for resource: 【Lambda的arn

CodeBuild详细信息提供的错误提示

COMMAND_EXECUTION_ERROR: Error while executing command: aws lambda --region 【Lambda所在的region 】 update-function-code --function-name 【Lambda的name】 --zip-file fileb://file_name .zip. Reason: exit status 255

1.2 错误分析和解决方案

导致status 255的错误有很多种,下面列出常见的两种:

  1. IAM 权限不够。解决方案:将IAM里面的角色授予codebuild响应的权限。
  2. Lambda的被锁死在Pending状态。可能的原因是AWS的底层没有及时将Lambda状态重置。

2 解决方法

在YMAL文件里重置Lambda函数状态。命令如下:

aws lambda update-function-configuration --function-name "【lambda的name】" --description "aws:states:opt-out"

2.1 YMAL文件样例

参考文献

相关推荐
朱包林5 小时前
k8s-Pod基础管理,标签管理,rc控制器及重启策略实战
linux·运维·云原生·容器·kubernetes·云计算
m0_694845578 小时前
Docker 从入门到实践教程:docker_practice 完整学习指南
运维·服务器·docker·容器·云计算·github
zhojiew9 小时前
[INFRA] EMR集群中Hive和Spark集成Glue Data Catalog过程的深入分析
hive·hadoop·spark·aws·bigdata
亚马逊云开发者10 小时前
我用 Lambda Durable Functions 把五个 Lambda 缩成了一个,代码量砍半
aws
泡沫·10 小时前
云计算基础与虚拟化技术
云计算
wuxia211812 小时前
云计算技术与实践(微课版)
docker·kubernetes·云计算
亚马逊云开发者13 小时前
异构 GPU 混合部署 Whisper,我用 HyperPod 一个集群搞定了
aws
duoduo_sing13 小时前
如何备份天翼云/阿里云/腾讯云映射的“虚拟磁盘”?
阿里云·云计算·腾讯云·松鼠备份
gaize121313 小时前
阿里云经济型 e 实例
阿里云·云计算
亚马逊云开发者1 天前
模型搜完网页就"脑算"数字?用 Dynamic Filtering 让它老老实实写代码
aws