国际上备考所有AWS云计算/IT证书的五大优质免费课程网站

最近越来越多的小伙伴来问小李哥,小李哥亚马逊云科技AWS认证大满贯是在哪里上课复习的呢?全部上付费课程那不是一笔巨款吗?小李哥这次来盘点备考国际上IT证书的5大优质免费课程网站(不只是亚马逊云科技AWS的课程,其他课程同样可以在这里免费上),由于小李哥身在海外,所有的课程都是使用英文学习,这些资料对于小伙伴们的英语水平有一定的要求,小伙伴们学了考不过算我的。欢迎大家关注小李哥,了解更多的亚马逊云科技、谷歌云备考攻略、免费资源和最新证书折扣优惠活动

1️⃣ 亚马逊云科技AWS Skill Builder

AWS官方的课程平台,内含500+门免费课程和免费AWS题库,可用于学习AWS和备考AWS证书。证书课程搜索"Exam Readiness",考试练习题搜索"Practice Exam"

2️⃣ 亚马逊云科技官方直播平台Twitch TV


亚马逊自家的直播平台,上面有AWS培训与认证的老师给大家讲证书备考课程。课程名为AWS Power Hour。大家也在下图搜索框搜索AWS,进入AWS账号主页,点击第三个红框内的Schedule查看其他AWS课程的直播。


 

3️⃣ Freecodecamp on YT

这个网站是一个非盈利的课程平台,上面有很多免费的AWS考证经验分享和Youtube课程视频,大家进入网站后搜索AWS证书名字就能看到相应免费课程。


4️⃣ Cloud Guru

这是一家非常有名的学习AWS的网课平台,身边很多小伙伴都是在这里上的AWS课程。大家可以在主页左侧红框处选择自己想上的课程。大家想上免费课程需要点击Price,注册Free Plan。


5️⃣ LinkedIn Learning

LinkedIn Premium会员(239🔪一年)可以免费上LinkedIn Learning内的所有课程。内含170多个AWS学习及证书备考课程和其他IT证书备考课程。

6. 亚马逊云科技Workshop

亚马逊云科技Workshop是给云计算从业者提升动手实操技能的网站,里面包括了搭建一个大型软件开发项目的所有操作细节和代码,大家只需要照着操作就可以自己搭建出一个大型软件项目,对技能提升非常有帮助。下面小李哥展示的就是如何搭建一个文字转语音的AI服务。

下面展示workshop里面提供的应用代码。

第一段代码是如何将收到的文本内容存到亚马逊云科技的NoSQL数据库DynamoDB中:

import boto3
import os
import uuid

def lambda_handler(event, context):

    recordId = str(uuid.uuid4())
    voice = event["voice"]
    text = event["text"]

    print('Generating new DynamoDB record, with ID: ' + recordId)
    print('Input Text: ' + text)
    print('Selected voice: ' + voice)

    # Creating new record in DynamoDB table
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])
    table.put_item(
        Item={
            'id' : recordId,
            'text' : text,
            'voice' : voice,
            'status' : 'PROCESSING'
        }
    )

    # Sending notification about new post to SNS
    client = boto3.client('sns')
    client.publish(
        TopicArn = os.environ['SNS_TOPIC'],
        Message = recordId
    )

    return recordId

将文本转为语音文件的代码:

import boto3
import os
from contextlib import closing
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):

    postId = event["Records"][0]["Sns"]["Message"]

    print ("Text to Speech function. Post ID in DynamoDB: " + postId)

    # Retrieving information about the post from DynamoDB table
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])
    postItem = table.query(
        KeyConditionExpression=Key('id').eq(postId)
    )


    text = postItem["Items"][0]["text"]
    voice = postItem["Items"][0]["voice"]

    rest = text

    # Because single invocation of the polly synthesize_speech api can
    # transform text with about 3000 characters, we are dividing the
    # post into blocks of approximately 2500 characters.
    textBlocks = []
    while (len(rest) > 2600):
        begin = 0
        end = rest.find(".", 2500)

        if (end == -1):
            end = rest.find(" ", 2500)

        textBlock = rest[begin:end]
        rest = rest[end:]
        textBlocks.append(textBlock)
    textBlocks.append(rest)

    # For each block, invoke Polly API, which transforms text into audio
    polly = boto3.client('polly')
    for textBlock in textBlocks:
        response = polly.synthesize_speech(
            OutputFormat='mp3',
            Text = textBlock,
            VoiceId = voice
        )

        # Save the audio stream returned by Amazon Polly on Lambda's temp
        # directory. If there are multiple text blocks, the audio stream
        # is combined into a single file.
        if "AudioStream" in response:
            with closing(response["AudioStream"]) as stream:
                output = os.path.join("/tmp/", postId)
                with open(output, "wb") as file:
                    file.write(stream.read())

    s3 = boto3.client('s3')
    s3.upload_file('/tmp/' + postId,
      os.environ['BUCKET_NAME'],
      postId + ".mp3")
    s3.put_object_acl(ACL='public-read',
      Bucket=os.environ['BUCKET_NAME'],
      Key= postId + ".mp3")

    location = s3.get_bucket_location(Bucket=os.environ['BUCKET_NAME'])
    region = location['LocationConstraint']

    if region is None:
        url_beginning = "https://s3.amazonaws.com/"
    else:
        url_beginning = "https://s3-" + str(region) + ".amazonaws.com/"

    url = url_beginning \
            + str(os.environ['BUCKET_NAME']) \
            + "/" \
            + str(postId) \
            + ".mp3"

    # Updating the item in DynamoDB
    response = table.update_item(
        Key={'id':postId},
          UpdateExpression=
            "SET #statusAtt = :statusValue, #urlAtt = :urlValue",
          ExpressionAttributeValues=
            {':statusValue': 'UPDATED', ':urlValue': url},
        ExpressionAttributeNames=
          {'#statusAtt': 'status', '#urlAtt': 'url'},
    )

    return

以上就是关于IT学习、备考的全部资料,以及提升实操技能的动手实验,希望对大家有帮助。

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值