当AWS Lambda在部署为层后出现身份验证问题时,可能是因为层中使用的访问密钥没有足够的权限。为了解决此问题,可以在层中使用环境变量来存储访问密钥,并将其传递到Lambda函数中。
以下是一个示例代码,演示如何在层中使用环境变量来存储访问密钥:
import os
import boto3
# Set AWS credentials from environment variables
AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_REGION = os.getenv('AWS_REGION')
# Create a Boto3 client using the credentials
client = boto3.client(
'lambda',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name=AWS_REGION
)
def lambda_handler(event, context):
response = client.invoke(
FunctionName='function_name',
InvocationType='RequestResponse',
Payload=json.dumps(event)
)
return json.load(response['Payload'])
在上述示例代码中,AWS访问密钥和区域是从环境变量中读取的,并使用它们来创建Boto3客户端。这将确保访问密钥具有足够的权限,以便层可以成功地进行身份验证。
请确保在部署层时设置正确的密钥和区域,并将其传递到Lambda函数中。
上一篇:AWSLambda在部署后出现身份验证问题,当我们将其作为Layer部署时。
下一篇:AWSLambda在尝试上传图像到S3并通过APIGateway更新DynamoDB表时返回关键错误(KeyError)。