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 ARN と create-function に aws 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関数リストに表示されないことに注意してください-