内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

AWSLambda自動(dòng)化和PowerShell-創(chuàng)新互聯(lián)

這兩天我都在看如何使用Lambda和Python,但是平常更習(xí)慣使用PowerShell來(lái)管理各種系統(tǒng)。試試看如何在Lambda里面使用PowerShell吧。

成都創(chuàng)新互聯(lián)專注于海興網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供海興營(yíng)銷型網(wǎng)站建設(shè),海興網(wǎng)站制作、海興網(wǎng)頁(yè)設(shè)計(jì)、海興網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造海興網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供海興網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

首先在本地計(jì)算機(jī)上需要安裝下面三個(gè)模塊。

安裝PowerShell Core
https://github.com/powershell/powershell

安裝 the .NET Core Software Development Kit (SDK)
https://www.microsoft.com/net/download

安裝 AWSLambdaPSCore module
Install-Module AWSLambdaPSCore -Scope CurrentUser

安裝好了,在Powershell6的控制臺(tái) 里面執(zhí)行
New-AWSPowerShellLambda -ScriptName awstag -Template basic

他會(huì)自動(dòng)根據(jù)basic的模板創(chuàng)建一個(gè)目錄,里面用一個(gè)空白的ps文件,和一個(gè)readme文件。這個(gè)空白的ps文件自動(dòng)加載了powershellcore的模塊,如果我們需要添加其他的模塊,需要在這里修改。下面是我的一個(gè)測(cè)試腳本。這個(gè)腳本主要的功能是檢查tag,確保EC2,Volume和Snapshot都有對(duì)應(yīng)的tag,因?yàn)槊總€(gè)月我需要通過(guò)tag來(lái)顯示不同診所的賬單。另外如果snapshot如果超過(guò)60天,順便也自動(dòng)給我刪除了。

# PowerShell script file to be executed as a AWS Lambda function. 
# 
# When executing in Lambda the following variables will be predefined.
#   $LambdaInput - A PSObject that contains the Lambda function input data.
#   $LambdaContext - An Amazon.Lambda.Core.ILambdaContext object that contains information about the currently running Lambda environment.
#
# The last item in the PowerShell pipeline will be returned as the result of the Lambda function.
#
# To include PowerShell modules with your Lambda function, like the AWSPowerShell.NetCore module, add a "#Requires" statement 
# indicating the module and version.

#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.335.0'}

# Uncomment to send the input event to CloudWatch Logs
# Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)

Write-Host "Checking EC2 instance Tags status" -ForegroundColor Yellow

$all=Get-EC2Instance | select -expand instances

$return=$all | Where-Object {$_.tag.key -notcontains "Clinic"}

if($return -ne $null){
$username = "test@abc.com" 
$password = "Passwordtest" | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
$id=$return.InstanceId

Send-MailMessage -From test@abc.com -to test@abc.com -SmtpServer smtp.office365.com -Port 587 -UseSsl -Subject "EC2 instance Tag" -body "$id" -Credential $credential
exit

}
# confirm EC2 instances were tagged

$result=@()
foreach($item in $all){

    $Name=$item.tag | Where-Object {$_.Key -eq 'Name'} | select -ExpandProperty value
    $clinic=$item.tag | Where-Object {$_.Key -eq 'clinic'} | select -ExpandProperty value
    $item | add-member -NotePropertyName Description -NotePropertyValue $name
    $item | add-member -NotePropertyName Clinic -NotePropertyValue $clinic

    $item = $item | select *
    $result+=$item

}

$result | select Description, InstanceId, privateIpaddress, Clinic | Group-Object Clinic

write-host "Updating Volume Tags Status ... " -ForegroundColor Yellow 
#Tag all volumes based on their attached EC2 Clinic Tag

$allvol=Get-EC2Volume | Where-Object {$_.tag.key -notcontains "Clinic"}

foreach($item in $result){
    foreach($item2 in $allvol){

        if ($item2.attachments.instanceid -eq $item.InstanceId){
                $value=$item.Clinic
              New-EC2Tag -Resource $item2.VolumeId -Tag @{Key="Clinic";value=$value} 
           }

        }

}

Write-Host "Updating Snapshot Tags Status..." -ForegroundColor Yellow 
#Tag all snapshots based on the volume Tag
$allvol=Get-EC2Volume 
$filter= New-Object Amazon.EC2.Model.Filter -Property @{Name = "owner-id"; Values ='386115804199' } 
$snapshots=Get-EC2Snapshot -Filter $filter 

$snapshots1= $snapshots | ? {$_.Tag.key -notcontains "Clinic"} 

foreach($i in $snapshots1){
    $volid=$i.VolumeId

    foreach($j in $allvol){

        if($volid -eq $j.Volumeid){

            $value=$j.tag | Where-Object {$_.key -eq 'Clinic'} | select -ExpandProperty value

            $name=$j.Tag | Where-Object {$_.key -eq "Name"} | select -ExpandProperty value

            $snapid=$i.snapshotid
            write-host "--$snapid--"  
            New-EC2Tag -Resource $snapid -Tag @{Key="Clinic";value=$value} 
            New-EC2Tag -Resource $snapid -Tag @{Key="Name";value=$name}

        }
    }

}

write-host "Deleting Snapshots older than over 60 days !" -ForegroundColor Yellow

$date=(get-date).AddDays(-40)

foreach($snapshot in $snapshots){
    $id=$snapshot.snapshotid

    if($snapshot.starttime -lt $date){
        $snapshot
        Remove-EC2Snapshot -SnapshotId $id -Confirm:$false
    }
}

接下來(lái)在Powershell6 的控制臺(tái)執(zhí)行,他會(huì)自動(dòng)綁定iam的role,壓縮相關(guān)的模塊和執(zhí)行腳本,然后上傳到Lambda的控制臺(tái)。這里的iam role我是隨便寫的,允許訪問(wèn)ec2和 cloudwatch log。

Publish-AWSPowerShellLambda -ScriptPath .\awstag.ps1 -name awstag -iamrole 'ec2fullaccess' -Region ap-southeast-2

等個(gè)1分鐘,登錄aws 就可以看見上傳的函數(shù)了。

AWS Lambda 自動(dòng)化和 PowerShell

代碼這一塊不像Python能直接看見,直接告訴你太大 沒(méi)法顯示 但是我可以直接調(diào)用

AWS Lambda 自動(dòng)化和 PowerShell

測(cè)試一下試試,顯示成功

AWS Lambda 自動(dòng)化和 PowerShell

去對(duì)應(yīng)的cloudwatch 看看

AWS Lambda 自動(dòng)化和 PowerShell

Done!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:AWSLambda自動(dòng)化和PowerShell-創(chuàng)新互聯(lián)
瀏覽地址:http://m.rwnh.cn/article38/dsdpsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、搜索引擎優(yōu)化網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序網(wǎng)站建設(shè)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
洛扎县| 视频| 兖州市| 茌平县| 西贡区| 南漳县| 博白县| 华宁县| 星子县| 茂名市| 乾安县| 邵阳县| 武义县| 离岛区| 临沂市| 含山县| 永仁县| 彭水| 集贤县| 土默特右旗| 高尔夫| 五常市| 梅河口市| 安塞县| 凉城县| 玛纳斯县| 龙海市| 厦门市| 潞城市| 鹰潭市| 黎川县| 德州市| 遂溪县| 鄂托克前旗| 亚东县| 兴和县| 雅江县| 涡阳县| 罗平县| 定远县| 大石桥市|