开发者社区 > 云原生 > Serverless > 正文

函数计算的python代码需要做什么配置?

使用阿里云函数计算,函数计算环境变量配置了AccessKey,报错code 128, message:key has been revoked,函数计算的python代码需要做什么配置?

展开
收起
三分钟热度的鱼 2024-05-22 21:37:13 44 0
1 条回答
写回答
取消 提交回答
  • 面对您遇到的错误 code 128, message:key has been revoked,这意味着您配置的访问密钥(AccessKey)已经被撤销或失效。在阿里云函数计算(Function Compute,简称 FC)环境中,当您通过环境变量配置 AccessKey 时,如果遇到此类错误,通常需要采取以下措施进行解决:
    解决方案步骤:

    确认密钥状态:
    首先,您需要登录阿里云控制台,检查当前配置的 AccessKey 状态,确认它确实已被撤销或是否已过期。如果是这种情况,您需要生成新的 AccessKey。

    生成新的 AccessKey:
    在阿里云 IAM 控制台,生成一个新的 AccessKey 对(AccessKeyID 和 AccessKeySecret),确保它是有效的并且具有必要的权限来访问您函数所需的阿里云服务。

    更新环境变量:
    在函数计算服务中,找到您的函数,更新环境变量。将原有的 AccessKeyID 和 AccessKeySecret 替换为新生成的密钥对。确保您更新的是正确的环境变量名称,通常这些变量名为 ACCESS_KEY_ID 和 ACCESS_KEY_SECRET。如果您的函数代码中通过特定的变量名引用这些密钥,请确保更新的环境变量名称与此相匹配。

    代码验证:
    如果您的 Python 函数代码中直接或间接使用了这些密钥(例如,通过 SDK 进行服务调用),确保代码逻辑能够正确读取这些环境变量。在 Python 中,您通常可以通过 os.getenv 方法来获取环境变量的值,例如:
    import os
    from aliyunsdkcore.profile import region_provider
    from aliyunsdkcore.client import AcsClient
    from aliyunsdksts.request.v20150401 import AssumeRoleRequest
    access_key_id = os.getenv('ACCESS_KEY_ID')
    access_key_secret = os.getenv('ACCESS_KEY_SECRET')
    初始化客户端时使用从环境变量获取的密钥
    client = AcsClient(access_key_id, access_key_secret, '')

    测试函数:
    更新配置后,重新部署您的函数,并进行测试,确保新的 AccessKey 已经生效且函数能够正常工作。

    注意事项:

    安全最佳实践:避免在代码中硬编码任何敏感信息,如 AccessKey。使用环境变量是一种更安全的做法。
    最小权限原则:为函数计算服务配置的 AccessKey 应遵循最小权限原则,仅赋予执行该函数所需的服务访问权限。
    定期轮换密钥:出于安全考虑,定期更换 AccessKey 是个好习惯。确保更换过程不会影响到线上服务的稳定性。

    按照上述步骤操作,您应该能够解决由于密钥失效导致的问题,并确保您的函数计算服务恢复正常运行。 此回答整理自钉群“阿里函数计算客户【已满,加2群:64970014484】”

    2024-05-23 08:23:10
    赞同 1 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载
    All in Serverless 阿里云核心产品全面升级 立即下载