要解决“AWS Lambda的设计师不显示函数角色”的问题,您可以按照以下步骤进行操作:
下面是一个使用AWS SDK for Python(Boto3)的示例代码,用于创建一个具有所需权限的Lambda函数角色:
import boto3
# 创建IAM客户端
iam_client = boto3.client('iam')
# 定义角色策略
role_policy_document = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
}
]
}
# 创建角色
response = iam_client.create_role(
RoleName='lambda-execution-role',
AssumeRolePolicyDocument=json.dumps({
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
})
)
# 附加策略到角色
response = iam_client.put_role_policy(
RoleName='lambda-execution-role',
PolicyName='lambda-execution-policy',
PolicyDocument=json.dumps(role_policy_document)
)
# 获取角色ARN
role_arn = response['Role']['Arn']
# 更新Lambda函数的执行角色
lambda_client = boto3.client('lambda')
response = lambda_client.update_function_configuration(
FunctionName='your-lambda-function',
Role=role_arn
)
请注意,上述代码中的your-lambda-function
应替换为您的Lambda函数的名称。
运行此代码后,您将为Lambda函数创建一个名为lambda-execution-role
的角色,并在Lambda函数配置中更新引用的角色。这样,您应该能够在AWS Lambda控制台中看到函数角色选项。