AWSCLIを使用した作成とデプロイ

AWS CLIAWSサービスの操作に役立つコマンドラインツールです。これを使用して、aws lambda関数を作成、更新、削除、呼び出すことができます。この章では、AWSCLIのインストールと使用法について詳しく説明します。

AWSCLIのインストール

このセクションでは、さまざまなオペレーティングシステムへのAWSCLIのインストールについて説明します。与えられた手順に従い、添付されている場所で対応するスクリーンショットを観察します。

Windowsの場合

Windows構成を確認し、AWS CLIMSIをインストールするための次のリンクのいずれかを選択します-

  • Windows64ビットの場合-Windows用のAWSCLI MSIインストール(64ビット)

  • Windows32ビットの場合-Windows用のAWSCLI MSIインストール(32)

対応するリンクを選択してクリックすると、次のようなウィンドウが表示されます-

次に、 Environment path in windows 以下のスクリーンショットに示すように-

完了したら、コマンドプロンプトで次のコマンドを使用して、次のことを確認できます。 aws cli インストールされている-

aws --version

次のスクリーンショットに示すように、aws-cliバージョンの詳細が表示されます-

Linux / Macの場合

LinuxおよびMacにインストールするには、Python2.6.3以降のバージョンが必要です。次に、次のコマンドを使用して、さらにインストールプロセスを実行します-

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

次に、AWS設定を構成する必要があります。この目的のために次のコマンドを使用できます-

aws configure

この目的のために、次のような詳細が必要です。

  • AWSアクセスキーID
  • AWSシークレットアクセスキー
  • デフォルトのリージョン名
  • フォーマットからのデフォルト出力

これらの詳細は、AWSコンソールから取得できます。図のように右上隅にあるアカウント名に移動します-

次に、をクリックします My Security Credentials左側からユーザーを選択します。求められた詳細をユーザーに追加します。

ユーザーを追加し、アクセスキーと秘密キーを取得します。新しいアクセスキーを表示するには、Show。資格情報は次のようになります-

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

AWSCLISのリファレンスコマンド

次の表に、操作に使用できるコマンドリファレンスを示します。 aws cli

awscliコマンドの名前 コマンドリファレンス
create-function create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < value>] [--memory-size <value>] [--environment <value>] [--kms-key-arn <value>] [--tags <value>] [--zip-file <value> ] [--cli-input-json <値>]
list-functions list-functions [--master-region <value>] [--function-version <value>] [--max-items <value>] [--cli-input-json <value>] [--starting-トークン<値>] [-ページサイズ<値>] [-generate-cli-skeleton <値>]
get-function get-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-function-configuration get-function-configuration --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-account-settings get-account-settings [--cli-input-json <value>] [--generate-cli-skeleton <value>]
update-function-configuration update-function-configuration --function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory-サイズ<値>] [-vpc-config <値>] [-環境<値>] [-ランタイム<値>] [-dead-letter-config <値>] [-kms-key- arn <value>] [--tracing-config <value>] [--revision-id <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
update-function-code update-function-code --function-name <value> [--zip-file <value>] [--s3-bucket <value>] [--s3-key <value>] [--s3-object-バージョン<値>] [-publish | --no-publish] [--dry-run | --no-dry-run] [--revision-id <value>] [-cli-input-json <value>] [-generate-cli-skeleton <value>]
delete-function delete-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

ここで、これらのコマンドについて1つずつ詳しく説明します。

作成機能

このAPIは、新しいラムダ関数を作成します。コードはzip形式で指定する必要があります。作成する関数がすでに存在する場合、APIは失敗します。関数名では大文字と小文字が区別されることに注意してください。

含まれているコマンド

create-functionで使用できるコマンドのリストを以下に示します-

create-function 
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>] 
[--description <value>] 
[--timeout <value>] 
[--memory-size <value>] 
[--environment <value>] 
[--kms-key-arn <value>] 
[--tags <value>] 
[--zip-file <value>] 
[--cli-input-json <value>]

含まれているオプション

上記の機能で使用できるさまざまなオプションは次のとおりです。

--function-name (string)−これは関数の名前を取ります。名前は64ビット文字にすることができます。

--runtime(string)−ここでは、ランタイム環境、つまり言語の選択を指定する必要があります。ランタイムの詳細は以下のとおりです-

利用可能なオプション ランタイム
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C#1 dotnetcore1.0
C#2 dotnetcore2.0
行く go1.x

--role(string)−これはラムダポリシーの名前、つまり他のサービスにアクセスするためにラムダ関数に与えられるロールになります。指定された役割に従って権限が与えられます。

--handler (string) −これはラムダコードの実行を開始するハンドラーの名前です。

  • nodejsの場合、ハンドラー名はエクスポートするモジュール名です。
  • Javaの場合、package.classname ::ハンドラーまたはpackage.classnameです。
  • Pythonの場合、ハンドラーはnameofthefileです。

--code (structure) −AWSLambdaコード

--description (string) − AWSLambda関数の説明

--timeout (integer)−タイムアウトには、ラムダ関数が実行を終了する必要がある時間があります。デフォルトは3秒です。

--memory-size (integer)−これはawslambda関数に与えられたメモリです。AWSは、指定されたメモリに基づいてCPUとメモリの割り当て量を割り当てます。

--environment (structure) −awsラムダ関数で必要な環境の詳細を含むオブジェクト。

e.g : Variables = {Name1 = string, Name2 = string}

--kms-key-arn (string)−これは、環境変数の暗号化に使用されるAmazonリソース名(ARN)です。指定しない場合、暗号化にはデフォルト設定が使用されます。

--zip-file (blob) −コードの詳細が含まれているzipファイルのパス。

--cli-input-json (string):提供されたJSON文字列に基づいてサービス操作を実行します。JSON文字列は、-generate-cli-skeletonによって提供される形式に従います。コマンドラインで他の引数が指定されている場合、CLI値はJSONで提供された値をオーバーライドします。

ここで、ランタイムをnodejsとして使用して単純なAWS Lambda関数を作成し、出力するconsole.logをいくつか追加しましょう。

同じことを理解するためのサンプルコードを考えてみましょう-

exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};

次に、ファイルをzipして、次のように保存します。 awscli.zip

ARNの取得

役割については、 arn私たちが作成した既存の役割から。ARNを取得するには、ここに示す手順に従う必要があります。添付されている場所でそれぞれのスクリーンショットを観察します-

ステップ1

IAMに移動し、必要な役割を選択します Roles。ロールのARNの詳細は、次のように表示されます。使用するRole ARNcreate-functionaws cli

ここで、ロールarnが:arn:aws:iam :: 625297745038:role / lambdaapipolicyであることに注意してください。

の値を持つコマンド create-function 次のとおりです-

aws lambda create-function 
--function-name "awslambdausingcli" 
--runtime "nodejs8.10" 
--role "arn:aws:iam::625297745038:role/lambdaapipolicy" 
--handler "awscli.handler" 
--timeout 5 
--memory-size 256 
--zip-file "fileb://awscli.zip"

ここで、aws cliでコマンドを実行すると、次のような出力が表示されます。

AWSコンソールでは、Lambda関数は次​​のように表示されます-

機能の詳細は以下のとおりです。

構成の詳細は以下のとおりです。

図のように、関数をテストして出力を確認できます。

対応するログ出力をここに示します-

リスト関数

このAPIは、AWSLambdaでこれまでに作成された関数のリストを提供します。

含まれているコマンド

以下は、このAPIに関連付けられたコマンドです-

list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

リスト関数の下のオプション

以下は、このリストで使用できるさまざまなオプションです-functions api −

--master-region(string)−オプション。関数を表示する必要がある領域。

--function-version(string)−オプション。これにより、関数バージョンが提供されます。

--max-items(integer)−オプション。これにより、指定された値に従ってアイテムが提供されます。

--cli-input-json(string)−オプション。提供されたjsonファイルに基づいて操作を実行します。

値を持つコマンド list-functions 次のとおりです-

aws lambda list-functions --max-items 3

コマンドは次のように詳細を表示します-

get-function

このAPIは、関数の詳細と、create-functionを使用してアップロードされたzipファイルを含むURLリンクを提供します。zipの詳細を含むURLは10分間のみ有効です。

含まれているコマンド

以下は、このAPIに関連付けられているコマンドです。

get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

含まれているオプション

--function-name− AWSLambda関数の名前。関数のAmazonリソース名を指定することもできます。

--qualifier(string)−オプション。関数バージョンを使用して、関数の詳細を取得できます。

get-functionの値を持つコマンドは次のとおりです。

aws lambda get-function --function-name awslambdausingcli

コマンド表示内容は以下のとおりです。

郵便番号がアップロードされたURLを提供します。上記の場合、URLは-です。

https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa

get-function-configuration

これにより、AWSLambda関数の設定の詳細がわかります。

以下は、このAPIとともに使用されるコマンドです-

get-function-configuration
--function-name <value>
[--qualifier <value>]

The following are the options used with

--function-name (string) −awsラムダ関数の名前。関数のAmazonリソース名を指定することもできます。

--qualifier(string) − オプション。関数バージョンを使用して、関数の詳細を取得できます。

get-functionの値を持つコマンドは次のとおりです。

aws lambda get-function-configuration --function-name awslambdausingcli

コマンドは次のように詳細を表示します-

get-account-settings

このAPIはアカウント設定を提供します。

関係するコマンド

このAPIで使用できるコマンドは次のとおりです。

get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

関係するオプション

このAPIでは次のオプションを使用できます-

--cli-input-json(string) − 提供されたjson文字列に基づいてサービスを実行します。

--generate-cli-skeleton(string) − APIリクエストを送信せずにjson出力を出力します。

get-account-settingsに次のコマンドを使用できます-

aws lambda get-account-settings

上記のコマンドを実行すると、次の出力が表示されます。

update-function-configuration

このAPIは、作成されたAWSLambda関数の設定の詳細を更新するのに役立ちます。メモリ、タイムアウト、ハンドラー、ロール、ランタイム、説明などを変更できます。

関係するコマンド

以下は、update-function-configurationapiに関連するコマンドです。

update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

関係するオプション

以下は、update-function-configurationapiに関連するオプションです。

--function-name − awsラムダ関数の名前

--role (string) −オプション。役割のARNを更新する必要があります。

--handler (string) −オプション。awslambda関数のハンドラーの詳細。

--description(string) −オプション。関数の説明。

--timeout(integer) −オプション。awslambda関数を終了するために必要な時間。

--memory-size(integer) −オプション。これは、awslambda関数に与えられるメモリです。AWSは、指定されたメモリに基づいてCPUとメモリの割り当て量を割り当てます。

--environment (structure) −オプション。これは、awslambda関数で必要な環境の詳細を持つオブジェクトです。

e.g: Variables = {Name1 = string, Name2 = string}

--runtime(string) − ここでは、ランタイム環境、つまり言語の選択を指定する必要があります。

ランタイムの詳細を以下の表に示します-

利用可能なオプション ランタイム
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C#1 dotnetcore1.0
C#2 dotnetcore2.0
行く go1.x

--cli-input-json (string) −オプション。これにより、提供されたjson文字列で指定されたAPIで操作が実行されます。

--generate-cli-skeleton (string) −オプション。これにより、APIを実行せずにすべての詳細のJSONスケルトンが出力されます。出力は、への入力として使用できます--cli-input-json.

それでは、以前に作成したAWSLambda関数のメモリとタイムアウトを変更してみましょう。以下の手順に従って、この目的のために添付された対応するスクリーンショットを確認してください-

ステップ1

変更が発生する前のメモリとタイムアウトは次のとおりです。

ステップ2

さて、 update-function-configuration、メモリとタイムアウトを320MBに、タイムアウトを10秒に変更しましょう。この目的のために、値を指定して次のコマンドを使用します-

aws lambda update-function-configuration --function-name “awslambdusingcli” 
--timeout 10 --memory-size 320

ステップ3

次に、次の出力をディスプレイとして表示できます-

ステップ4

使用後のAWSコンソールでの表示 update-function-configuration 次のとおりです-

更新-関数-コード

このAPIは、既存のAWSLambda関数のコードを更新します。

関係するコマンド

update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

関係するオプション

以下は、update-function-codeapiに関連するオプションです。

--function-name(string) − awsラムダ関数の名前

--zip-file (blob) −オプション。更新するコードが含まれているzipファイルのパス。

--s3-bucket(string) −オプション。コードがアップロードされたzipファイルを持つS3バケット名。

--s3-key(string) −オプション。アップロードする必要のあるAWSs3オブジェクトキー名。

--s3-object-version (string) −オプション。AWSs3オブジェクトのバージョン。

--cli-input-json (string) −オプション。これにより、提供されたjson文字列で指定されたAPIで操作が実行されます。

--generate-cli-skeleton (string) −オプション。これにより、APIを実行せずにすべての詳細のJSONスケルトンが出力されます。出力は、-cli-input-jsonへの入力として使用できます。

更新されたコードは以下のとおりです-

exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};

あなたは以下を使うことができます command with values for this purpose

aws lambda update-function-code --function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"

対応する出力は次のとおりです-

AWSコンソールからの表示は次のようになります-

対応するログ出力は次のとおりです-

削除機能

ザ・ delete aws cli apiは、指定された関数を削除します。

含まれているコマンド

同じコマンドの詳細をここに示します-

delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

含まれているオプション

このAPIに含まれるオプションは次のとおりです-

--function-name(string) − これは、ラムダ関数名またはawsラムダ関数のarnを取ります。

--qualifier (string) −これはオプションです。ここでは、削除する必要があるawslambdaのバージョンを指定できます。

-- cli-input-json(string) −提供されたJSON文字列に基づいてサービス操作を実行します。JSON文字列は、-generate-cli-skeletonによって提供される形式に従います。コマンドラインで他の引数が指定されている場合、CLI値はJSONで提供された値をオーバーライドします。

--generate-cli-skeleton(string) − APIリクエストを送信せずに、jsonスケルトンを標準出力に出力します。

この目的のために、次のコマンドを値とともに使用できます-

aws lambda delete-function --function-name "lambdatestcli"

ここで、関数がAWSLambda関数リストに表示されないことに注意してください-