是的,每次通过上下文获取到的密钥都是36小时有效期。如果您使用这个密钥初始化了一个OSS客户端,并且有请求就复用这个客户端,那么在您的FC实例运行超过36小时后,该实例再处理请求时可能会出现密钥过期的情况。
为了避免这种情况发生,您可以采取以下措施:
在FC实例中定期更新密钥。您可以编写一个定时任务或者监控程序,每隔一段时间(比如35小时)就重新获取一次密钥,并更新到您的OSS客户端中。这样可以确保您始终使用的是有效的密钥。
使用长期有效的密钥。阿里云提供了一些长期有效的密钥,比如STS临时凭证和RAM角色绑定的临时安全令牌。您可以将这些长期有效的密钥用于您的OSS客户端,而不是通过上下文获取的临时密钥。
将密钥存储在外部。您可以将密钥存储在一个外部的持久化存储中,比如Redis或者数据库中。这样可以避免每次获取密钥都需要从上下文中读取,同时也可以在需要的时候方便地更新密钥。