You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Lambda函数检查Secrets Manager密钥复制状态问题

AWS Secrets Manager密钥复制状态检查的Lambda代码修改

你需要遍历replication_status返回的列表,逐个检查每个复制对象的Status和StatusMessage字段,判断是否存在符合条件的条目。以下是修改后的Lambda函数示例:

import boto3

def lambda_handler(event, context):
    secretsmanager = boto3.client('secretsmanager')
    secret_name = event['secret_name']  # 可从事件传入或直接指定密钥名称
    
    try:
        response = secretsmanager.describe_secret(SecretId=secret_name)
        replication_status = response.get('ReplicationStatus', [])
        
        # 判断是否存在状态正常的复制条目
        replication_healthy = any(
            item.get('Status') == 'InSync' or item.get('StatusMessage') == 'Replication succeeded'
            for item in replication_status
        )
        
        return {
            'statusCode': 200,
            'body': {
                'secret_name': secret_name,
                'replication_healthy': replication_healthy
            }
        }
    except Exception as e:
        return {
            'statusCode': 500,
            'body': f'检查密钥复制状态失败: {str(e)}'
        }
  • 用response.get('ReplicationStatus', [])获取复制状态列表,避免密钥未开启复制时触发KeyError
  • 借助Python内置的any()函数遍历列表,只要有一个元素满足条件就返回True,写法简洁高效
  • 用item.get('字段名')取值,避免字段不存在时抛出异常
  • 最终replication_healthy返回布尔值:True表示复制已启用且状态正常,False表示未开启复制或状态异常

内容的提问来源于stack exchange,提问作者brianbelden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:02:33