使用 Tools for PowerShell 的 Lambda 範例 - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Tools for PowerShell 的 Lambda 範例

下列程式碼範例示範如何搭配 AWS Tools for PowerShell Lambda 使用 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 Add-LMResourceTag

for PowerShell 工具

範例 1:將三個標籤 (Washington、Oregon 和 California) 及其相關聯的值新增至其 ARN 識別的指定函數。

Add-LMResourceTag -Resource "arn:aws:lambda:us-west-2:123456789012:function:MyFunction" -Tag @{ "Washington" = "Olympia"; "Oregon" = "Salem"; "California" = "Sacramento" }
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 TagResource

下列程式碼範例示範如何使用 Get-LMAccountSetting

for PowerShell 工具

範例 1:此範例會顯示以比較帳戶限制和帳戶用量

Get-LMAccountSetting | Select-Object @{Name="TotalCodeSizeLimit";Expression={$_.AccountLimit.TotalCodeSize}}, @{Name="TotalCodeSizeUsed";Expression={$_.AccountUsage.TotalCodeSize}}

輸出:

TotalCodeSizeLimit TotalCodeSizeUsed ------------------ ----------------- 80530636800 15078795
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 GetAccountSettings

下列程式碼範例示範如何使用 Get-LMAlias

for PowerShell 工具

範例 1:此範例會擷取特定 Lambda 函數別名的路由組態權重。

Get-LMAlias -FunctionName "MylambdaFunction123" -Name "newlabel1" -Select RoutingConfig

輸出:

AdditionalVersionWeights ------------------------ {[1, 0.6]}
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 GetAlias

下列程式碼範例示範如何使用 Get-LMFunctionConcurrency

for PowerShell 工具

範例 1:此範例會取得 Lambda 函數的預留並行

Get-LMFunctionConcurrency -FunctionName "MylambdaFunction123" -Select *

輸出:

ReservedConcurrentExecutions ---------------------------- 100

下列程式碼範例示範如何使用 Get-LMFunctionConfiguration

for PowerShell 工具

範例 1:此範例會傳回 Lambda 函數的版本特定組態。

Get-LMFunctionConfiguration -FunctionName "MylambdaFunction123" -Qualifier "PowershellAlias"

輸出:

CodeSha256 : uWOW0R7z+f0VyLuUg7+/D08hkMFsq0SF4seuyUZJ/R8= CodeSize : 1426 DeadLetterConfig : Amazon.Lambda.Model.DeadLetterConfig Description : Verson 3 to test Aliases Environment : Amazon.Lambda.Model.EnvironmentResponse FunctionArn : arn:aws:lambda:us-east-1:123456789012:function:MylambdaFunction123 :PowershellAlias FunctionName : MylambdaFunction123 Handler : lambda_function.launch_instance KMSKeyArn : LastModified : 2019-12-25T09:52:59.872+0000 LastUpdateStatus : Successful LastUpdateStatusReason : LastUpdateStatusReasonCode : Layers : {} MasterArn : MemorySize : 128 RevisionId : 5d7de38b-87f2-4260-8f8a-e87280e10c33 Role : arn:aws:iam::123456789012:role/service-role/lambda Runtime : python3.8 State : Active StateReason : StateReasonCode : Timeout : 600 TracingConfig : Amazon.Lambda.Model.TracingConfigResponse Version : 4 VpcConfig : Amazon.Lambda.Model.VpcConfigDetail

下列程式碼範例示範如何使用 Get-LMFunctionList

for PowerShell 工具

範例 1:此範例會顯示所有具有已排序程式碼大小的 Lambda 函數

Get-LMFunctionList | Sort-Object -Property CodeSize | Select-Object FunctionName, RunTime, Timeout, CodeSize

輸出:

FunctionName Runtime Timeout CodeSize ------------ ------- ------- -------- test python2.7 3 243 MylambdaFunction123 python3.8 600 659 myfuncpython1 python3.8 303 675
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 ListFunctions

下列程式碼範例示範如何使用 Get-LMPolicy

for PowerShell 工具

範例 1:此範例顯示 Lambda 函數的函數政策

Get-LMPolicy -FunctionName test -Select Policy

輸出:

{"Version":"2012-10-17","Id":"default","Statement":[{"Sid":"xxxx","Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-1:123456789102:function:test"}]}
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 GetPolicy

下列程式碼範例示範如何使用 Get-LMProvisionedConcurrencyConfig

for PowerShell 工具

範例 1:此範例會取得 Lambda 函數指定別名的佈建並行組態。

C:\>Get-LMProvisionedConcurrencyConfig -FunctionName "MylambdaFunction123" -Qualifier "NewAlias1"

輸出:

AllocatedProvisionedConcurrentExecutions : 0 AvailableProvisionedConcurrentExecutions : 0 LastModified : 2020-01-15T03:21:26+0000 RequestedProvisionedConcurrentExecutions : 70 Status : IN_PROGRESS StatusReason :

下列程式碼範例示範如何使用 Get-LMProvisionedConcurrencyConfigList

for PowerShell 工具

範例 1:此範例會擷取 Lambda 函數的佈建並行組態清單。

Get-LMProvisionedConcurrencyConfigList -FunctionName "MylambdaFunction123"

下列程式碼範例示範如何使用 Get-LMResourceTag

for PowerShell 工具

範例 1:擷取目前在指定函數上設定的標籤及其值。

Get-LMResourceTag -Resource "arn:aws:lambda:us-west-2:123456789012:function:MyFunction"

輸出:

Key Value --- ----- California Sacramento Oregon Salem Washington Olympia
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 ListTags

下列程式碼範例示範如何使用 Get-LMVersionsByFunction

for PowerShell 工具

範例 1:此範例會傳回 Lambda 函數每個版本的特定版本組態清單。

Get-LMVersionsByFunction -FunctionName "MylambdaFunction123"

輸出:

FunctionName Runtime MemorySize Timeout CodeSize LastModified RoleName ------------ ------- ---------- ------- -------- ------------ -------- MylambdaFunction123 python3.8 128 600 659 2020-01-10T03:20:56.390+0000 lambda MylambdaFunction123 python3.8 128 5 1426 2019-12-25T09:19:02.238+0000 lambda MylambdaFunction123 python3.8 128 5 1426 2019-12-25T09:39:36.779+0000 lambda MylambdaFunction123 python3.8 128 600 1426 2019-12-25T09:52:59.872+0000 lambda

下列程式碼範例示範如何使用 New-LMAlias

for PowerShell 工具

範例 1:此範例會為指定的版本和路由組態建立新的 Lambda 別名,以指定其收到的調用請求百分比。

New-LMAlias -FunctionName "MylambdaFunction123" -RoutingConfig_AdditionalVersionWeight @{Name="1";Value="0.6} -Description "Alias for version 4" -FunctionVersion 4 -Name "PowershellAlias"
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 CreateAlias

下列程式碼範例示範如何使用 Publish-LMFunction

for PowerShell 工具

範例 1:此範例會建立新的 C# (dotnetcore1.0 執行期) 函數,命名為 AWS Lambda 中的 MyFunction ,提供從本機檔案系統上的 zip 檔案 (可使用相對或絕對路徑) 編譯的函數二進位。C# Lambda 函數會使用 designation AssemblyName::Namespace.ClassName::MethodName 指定函數的處理常式。您應該適當地取代處理常式規格的組件名稱 (不含 .dll 尾碼)、命名空間、類別名稱和方法名稱部分。新函數將從提供的值設定環境變數 'envvar1' 和 'envvar2'。

Publish-LMFunction -Description "My C# Lambda Function" ` -FunctionName MyFunction ` -ZipFilename .\MyFunctionBinaries.zip ` -Handler "AssemblyName::Namespace.ClassName::MethodName" ` -Role "arn:aws:iam::123456789012:role/LambdaFullExecRole" ` -Runtime dotnetcore1.0 ` -Environment_Variable @{ "envvar1"="value";"envvar2"="value" }

輸出:

CodeSha256 : /NgBMd...gq71I= CodeSize : 214784 DeadLetterConfig : Description : My C# Lambda Function Environment : Amazon.Lambda.Model.EnvironmentResponse FunctionArn : arn:aws:lambda:us-west-2:123456789012:function:ToUpper FunctionName : MyFunction Handler : AssemblyName::Namespace.ClassName::MethodName KMSKeyArn : LastModified : 2016-12-29T23:50:14.207+0000 MemorySize : 128 Role : arn:aws:iam::123456789012:role/LambdaFullExecRole Runtime : dotnetcore1.0 Timeout : 3 Version : $LATEST VpcConfig :

範例 2:此範例類似於上一個範例,但函數二進位檔案會先上傳到 Amazon S3 儲存貯體 (必須與預期的 Lambda 函數位於相同區域),然後在建立函數時參考產生的 S3 物件。

Write-S3Object -BucketName amzn-s3-demo-bucket -Key MyFunctionBinaries.zip -File .\MyFunctionBinaries.zip Publish-LMFunction -Description "My C# Lambda Function" ` -FunctionName MyFunction ` -BucketName amzn-s3-demo-bucket ` -Key MyFunctionBinaries.zip ` -Handler "AssemblyName::Namespace.ClassName::MethodName" ` -Role "arn:aws:iam::123456789012:role/LambdaFullExecRole" ` -Runtime dotnetcore1.0 ` -Environment_Variable @{ "envvar1"="value";"envvar2"="value" }
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 CreateFunction

下列程式碼範例示範如何使用 Publish-LMVersion

for PowerShell 工具

範例 1:此範例會為 Lambda 函數程式碼的現有快照建立版本

Publish-LMVersion -FunctionName "MylambdaFunction123" -Description "Publishing Existing Snapshot of function code as a new version through Powershell"
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 PublishVersion

下列程式碼範例示範如何使用 Remove-LMAlias

for PowerShell 工具

範例 1:此範例會刪除 命令中提到的 Lambda 函數別名。

Remove-LMAlias -FunctionName "MylambdaFunction123" -Name "NewAlias"
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 DeleteAlias

下列程式碼範例示範如何使用 Remove-LMFunction

for PowerShell 工具

範例 1:此範例會刪除 Lambda 函數的特定版本

Remove-LMFunction -FunctionName "MylambdaFunction123" -Qualifier '3'
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 DeleteFunction

下列程式碼範例示範如何使用 Remove-LMFunctionConcurrency

for PowerShell 工具

範例 1:此範例會移除 Lambda 函數的函數並行。

Remove-LMFunctionConcurrency -FunctionName "MylambdaFunction123"

下列程式碼範例示範如何使用 Remove-LMPermission

for PowerShell 工具

範例 1:此範例會移除 Lambda 函數指定 StatementId 的函數政策。

$policy = Get-LMPolicy -FunctionName "MylambdaFunction123" -Select Policy | ConvertFrom-Json| Select-Object -ExpandProperty Statement Remove-LMPermission -FunctionName "MylambdaFunction123" -StatementId $policy[0].Sid
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 RemovePermission

下列程式碼範例示範如何使用 Remove-LMProvisionedConcurrencyConfig

for PowerShell 工具

範例 1:此範例會移除特定別名的佈建並行組態。

Remove-LMProvisionedConcurrencyConfig -FunctionName "MylambdaFunction123" -Qualifier "NewAlias1"

下列程式碼範例示範如何使用 Remove-LMResourceTag

for PowerShell 工具

範例 1:從函數中移除提供的標籤。除非已指定 -Force 切換,否則 cmdlet 會在繼續之前提示確認。對服務進行單一呼叫以移除標籤。

Remove-LMResourceTag -Resource "arn:aws:lambda:us-west-2:123456789012:function:MyFunction" -TagKey "Washington","Oregon","California"

範例 2:從函數中移除提供的標籤。除非已指定 -Force 切換,否則 cmdlet 會在繼續之前提示確認。對服務進行呼叫後,會依提供的標籤進行。

"Washington","Oregon","California" | Remove-LMResourceTag -Resource "arn:aws:lambda:us-west-2:123456789012:function:MyFunction"
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 UntagResource

下列程式碼範例示範如何使用 Update-LMAlias

for PowerShell 工具

範例 1:此範例會更新現有 Lambda 函數別名的組態。它會更新 RoutingConfiguration 值,將 60% (0.6) 的流量轉移到第 1 版

Update-LMAlias -FunctionName "MylambdaFunction123" -Description " Alias for version 2" -FunctionVersion 2 -Name "newlabel1" -RoutingConfig_AdditionalVersionWeight @{Name="1";Value="0.6}
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 UpdateAlias

下列程式碼範例示範如何使用 Update-LMFunctionCode

for PowerShell 工具

範例 1:將名為 'MyFunction' 的函數更新為包含在指定 zip 檔案中的新內容。對於 C# .NET 壓縮檔案應包含編譯組件的核心 Lambda 函數。

Update-LMFunctionCode -FunctionName MyFunction -ZipFilename .\UpdatedCode.zip

範例 2:此範例類似於上一個範例,但使用包含更新程式碼的 Amazon S3 物件來更新函數。

Update-LMFunctionCode -FunctionName MyFunction -BucketName amzn-s3-demo-bucket -Key UpdatedCode.zip
  • 如需 API 詳細資訊,請參閱 AWS Tools for PowerShell Cmdlet 參考中的 UpdateFunctionCode

下列程式碼範例示範如何使用 Update-LMFunctionConfiguration

for PowerShell 工具

範例 1:此範例會更新現有的 Lambda 函數組態

Update-LMFunctionConfiguration -FunctionName "MylambdaFunction123" -Handler "lambda_function.launch_instance" -Timeout 600 -Environment_Variable @{ "envvar1"="value";"envvar2"="value" } -Role arn:aws:iam::123456789101:role/service-role/lambda -DeadLetterConfig_TargetArn arn:aws:sns:us-east-1: 123456789101:MyfirstTopic

下列程式碼範例示範如何使用 Write-LMFunctionConcurrency

for PowerShell 工具

範例 1:此範例會套用函數的整體並行設定。

Write-LMFunctionConcurrency -FunctionName "MylambdaFunction123" -ReservedConcurrentExecution 100

下列程式碼範例示範如何使用 Write-LMProvisionedConcurrencyConfig

for PowerShell 工具

範例 1:此範例會將佈建並行組態新增至函數的別名

Write-LMProvisionedConcurrencyConfig -FunctionName "MylambdaFunction123" -ProvisionedConcurrentExecution 20 -Qualifier "NewAlias1"