AWS的Cloud Whisperer指南:与Lambdas交谈
#aws #python #devops #云

啊,晴朗的蓝天的美丽,充满蓬松的白云。但是,让我们承认,我们不是在这里谈论大气凝结。我们在这里对另一种云小声说:Amazon Web Services(AWS)云。您会看到,AWS是名为Lambdas的神秘实体的家园。他们是很好的听众,但是就像任何被误解的生物一样,您必须知道如何与他们交谈。今天,我们将学习如何对三个特定的Lambdas窃窃私语,并管理一个称为红移成本的讨厌的事情。好吧,让我们开始!

破译云语

在进入以太之前,您必须熟悉云的术语:

  1. aws lambda :这些是云的神奇精神,等待在我们的命令下执行任务。我们今天正在处理Lambda0_Redshift_QueueLambda1_TurnON_Lambda0Lambda2_TurnOFF_Lambda0

  2. eventbridge调度程序:一个精美的云闹钟时钟,在我们需要时唤醒我们的lambdas。

  3. 并发:决定兰伯达可以同时执行多少任务的魔术汁。

  4. RedShift :一个数据ho积,尽管名称很酷,但要花钱才能运行。

  5. sqs队列:一个永无止境的自助餐线将任务馈送到我们的Lambda0_Redshift_Queue,然后将它们塞入红移中。

呼吁兰伯达

让我们召唤我们的兰伯达精神。我们将使用称为AWS管理控制台的魔法工件:

  1. 冒险进入控制台的Lambda部分。
  2. Click Create function.
  3. Lambda0_Redshift_QueueLambda1_TurnON_Lambda0Lambda2_TurnOFF_Lambda0的名称授予您的功能。
  4. Runtime下,选择像Python这样的咒语语言。
  5. Click Create function.
  6. 重复其他lambdas。

我们的lambdas被召唤并准备好拥有能力!

授权lambda1_turnon_lambda0:早晨公鸡

Lambda1_TurnON_Lambda0是我们的早晨公鸡。它的乌鸦是一种咒语,可以提高Lambda0_Redshift_Queue从SQS Buffet Line处理更多任务。这是它的颂歌:

import boto3

def lambda_handler(event, context):
    lambda_client = boto3.client('lambda')

    response = lambda_client.put_function_concurrency(
        FunctionName='Lambda1_TurnON_Lambda0',  # replace with your function name
        ReservedConcurrentExecutions=40     # replace with the number of concurrent executions you want to reserve
    )

    return {
        'statusCode': 200,
        'body': response
    }

现在,Lambda1_TurnON_Lambda0准备好在40并发时醒来Lambda0_Redshift_Queue

授权lambda2_turnoff_lambda0:夜猫子

Lambda2_TurnOFF_Lambda0是我们的夜猫子。它可以通过将其功率降低到零来舒缓Lambda0_Redshift_Queue睡眠,从而为我们节省了一些神奇的便士。 Lambda2_TurnOFF_Lambda0的催眠曲是这样的:

import boto3

def lambda_handler(event, context):
    lambda_client = boto3.client('lambda')

    response = lambda_client.put_function_concurrency(
        FunctionName='Lambda2_TurnOFF_Lambda0',  # replace with your function name
        ReservedConcurrentExecutions=0     # replace with the number of concurrent executions you want to reserve
    )

    return {
        'statusCode': 200,
        'body': response
    }

Lambda2_TurnOFF_Lambda0现在设置为Serenade Lambda0_Redshift_Queue睡觉!

自助线:SQS队列和lambda0_redshift_queue

Lambda0_Redshift_Queue,我们的主力军,从SQS队列中处理任务,并将其输入红移。但是请记住,云中没有免费的午餐,这种连续的喂食可以增加红移的费用。这就是为什么我们需要我们的公鸡和猫头鹰Lambda1_TurnON_Lambda0Lambda2_TurnOFF_Lambda0来规范Lambda0_Redshift_Queue的喂养习惯。

设置闹钟:EventBridge调度程序

我们的公鸡和猫头鹰需要他们的睡眠时间表。值得庆幸的是,我们有EventBridge调度程序,一个相当精确的闹钟。

设置公鸡的警报:

  1. 转到AWS管理控制台中的EventBridge部分。
  2. Click Create rule.
  3. 给它一个像InvokeRooster一样引人入胜的名字。
  4. Schedule中,选择Recurring schedule然后选择Cron-based schedule和hisper:0 0 * *? *。这种魅力将在午夜每天引起我们的公鸡Lambda1_TurnON_Lambda0
  5. Targets下,选择Lambda function,然后选择Lambda1_TurnON_Lambda0
  6. Click Create.

EventBridge Scheduler Settings

设置猫头鹰的警报:

遵循相同的步骤,但略有不同:

  1. 命名它像InvokeOwl一样引人入胜的东西。
  2. 将Cron表达式更改为30 1 * *? *在上午1:30唤起我们的猫头鹰Lambda2_TurnOFF_Lambda0
  3. Targets下,选择Lambda function并选择Lambda2_TurnOFF_Lambda0

EventBridge Scheduler Settings

荣誉,您现在是云窃窃私语者!

做得好,你!随着Lambda1_TurnON_Lambda0,我们的公鸡,在午夜crow绕Lambda0_Redshift_Queue行动,而Lambda2_TurnOFF_Lambda0和我们的猫头鹰在上午1:30将Lambda0_Redshift_Queue拖累了休息,我们已经掌握了经济高效的云窃窃私语的艺术。

在这个云窃窃私语的世界中,我们不仅要命令我们的兰巴斯。我们学会倾听,理解,然后进行有效的沟通。我们刚刚开始刮擦这个神奇世界的表面。不要停止对那些云的窃窃私语!

记住,即使是最好的耳语,有时也需要大喊大叫寻求帮助。如果您迷失在云层中或努力理解Lambda的耳语,请随时喊叫。毕竟,我们都只是在试图理解这一美丽的复杂云。欢乐的窃窃私语,云窃窃私语!