在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文件样例

参考文献

相关推荐
做运维的阿瑞9 小时前
公有云算力布局的技术逻辑与工程实践
微服务·云计算·csdn开发云
朱包林10 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
酒神dnspup13 小时前
IPv6 网站访问异常怎么查?DNSPup 双栈检测、DNS 与端口排障指南
运维·云计算·域名·dns·dnspup
workflower1 天前
矿用机器人人工智能安全与治理体系
人工智能·安全·机器学习·机器人·云计算·无人机
怪奇云呼军1 天前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
yichengerp2 天前
国内中小电子工厂用哪个erp系统好?
大数据·运维·人工智能·云计算·制造
sbjdhjd2 天前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
GPU实战笔记2 天前
项目网盘大文件上传:暂停与取消的事实边界
云计算·文件上传·项目网盘·gpu云服务器
workflower2 天前
汽车自动驾驶9 要素
人工智能·机器学习·重构·云计算·汽车·无人机
阿乔外贸日记2 天前
全球电子产业高度集中:中、韩、日和中国台湾地区占全球数字硬件产能八成
大数据·服务器·人工智能·物联网·云计算