最近越来越多的小伙伴来问小李哥,小李哥亚马逊云科技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学习、备考的全部资料,以及提升实操技能的动手实验,希望对大家有帮助。