翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このガイドでは、 AWS Step Functions ステートマシンを含むサンプル AWS SAM アプリケーションをダウンロード、構築、デプロイします。このアプリケーションは、事前定義されたスケジュールで実行されるモック株式取引ワークフローを作成します (スケジュールは手数料の発生を避けるためにデフォルトで無効になっています)。
以下の図は、このアプリケーションのコンポーネントを示しています。

以下は、サンプルアプリケーションを作成するために実行するコマンドのプレビューです。各コマンドの詳細については、このページの後半のセクションを参照してください。
# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow'
sam init
# Step 2 - Build your applicationcd
project-directory
sam build
# Step 3 - Deploy your applicationsam deploy --guided
前提条件
このガイドでは、OS 用の CLI AWS SAM のインストールの手順を完了していることを前提としています。また、以下を完了していることを前提としています。
-
AWS アカウントを作成しました。
-
IAM 許可を設定する
-
Homebrew のインストール。注: Homebrew は、Linux と macOS の唯一の前提条件です。
-
CLI AWS SAM をインストールしました。注: バージョン 0.52.0 以降を使用していることを確認してください。コマンド
sam --version
を実行すると、使用しているバージョンをチェックできます。
ステップ 1: サンプル AWS SAM アプリケーションをダウンロードする
実行するコマンド:
sam init
画面の指示に従って、次の項目を選択します。
-
Template: AWS Quick Start テンプレート
-
[Language:] (言語:) Python、Ruby、NodeJS、Go、Java、または .NET
-
[Project name:] (プロジェクト名:) (任意の名前 - デフォルトは
sam-app
) -
クイックスタートアプリケーション: マルチステップワークフロー
AWS SAM の機能:
このコマンドにより、プロジェクト名プロンプトとして指定した名前のディレクトリが作成されます (デフォルトは sam-app
)。ディレクトリの特定の内容は、選択した言語によって異なります。
Python ランタイムの 1 つを選択したときのディレクトリの内容は次のとおりです。
├── README.md ├── functions │ ├── __init__.py │ ├── stock_buyer │ │ ├── __init__.py │ │ ├── app.py │ │ └── requirements.txt │ ├── stock_checker │ │ ├── __init__.py │ │ ├── app.py │ │ └── requirements.txt │ └── stock_seller │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── statemachine │ └── stock_trader.asl.json ├── template.yaml └── tests └── unit ├── __init__.py ├── test_buyer.py ├── test_checker.py └── test_seller.py
表示できる 2 つの特に興味深いファイルがあります:
-
template.yaml
: アプリケーションの AWS リソースを定義する AWS SAM テンプレートが含まれています。 -
statemachine/stockTrader.asl.json
: アプリケーションのステートマシン定義が含まれます。この定義は、Amazon States Language を使用して Step Functions ワークフローを定義する で記述されています。
template.yaml
ファイル内に次のエントリが表示されます。このエントリは、ステートマシン定義ファイルを指しています。
Properties:
DefinitionUri: statemachine/stock_trader.asl.json
ステートマシン定義を AWS SAM テンプレートに埋め込むのではなく、別のファイルとして保持すると便利です。例えば、ステートマシン定義の変更を追跡する場合は、定義をテンプレートに含めない方が簡単です。Workflow Studio を使用してステートマシン定義の作成と管理を行い、その定義をテンプレートにマージせずにコンソールから Amazon States Language 仕様ファイルに直接エクスポートできます。
サンプルアプリケーションの詳細については、プロジェクトディレクトリの README.md
ファイルを参照してください。
ステップ 2: アプリケーションを構築する
実行するコマンド:
まず、プロジェクトディレクトリ (サンプルアプリケーションの template.yaml
ファイルが置かれているディレクトリ。デフォルトは sam-app
です) に変更してから、次のコマンドを実行します。
sam build
出力例:
Build Succeeded Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml Commands you can use next ========================= [*] Invoke Function: sam local invoke [*] Deploy: sam deploy --guided
AWS SAM の機能:
AWS SAM CLI には、依存関係を構築するための多数の Lambda ランタイムの抽象化が付属しており、すべてのビルドアーティファクトをステージングフォルダにコピーして、すべてをパッケージ化してデプロイする準備が整います。sam build
コマンドは、アプリケーションが持つすべての依存関係を構築し、.aws-sam/build
のフォルダにビルドアーティファクトをコピーします。
ステップ 3: AWS クラウドにアプリケーションをデプロイする
実行するコマンド:
sam deploy --guided
画面に表示されるプロンプトに従ってください。Enter
で応答するだけで、インタラクティブな形式で提供されるデフォルトのオプションを受け入れることができます。
AWS SAM の機能:
このコマンドは、アプリケーションを AWS クラウドにデプロイします。sam build
コマンドで構築したデプロイアーティファクトを取得し、 CLI によって作成された Amazon S3 AWS SAM バケットにパッケージ化してアップロードし、 を使用してアプリケーションをデプロイします AWS CloudFormation。デプロイコマンドの出力では、 AWS CloudFormation
スタックに加えられた変更を確認できます。
Step Functions ステートマシンの例が、次のこれらのステップに従って、正常にデプロイされたことを確認できます。
にサインイン AWS Management Console し、https://console.aws.amazon.com/states/
で Step Functions コンソールを開きます。 -
左側のナビゲーションで、[State machines] (ステートマシン) を選択します。
-
リストから新しいステートマシンを見つけて選択します。これは、StockTradingStateMachine-
<unique-hash>
という名前になります。 -
[Definition] (定義) タブを選択します。
これで、ステートマシンのビジュアル表現が表示されます。ビジュアル表現が、プロジェクトディレクトリの statemachine/stockTrader.asl.json
ファイルにあるステートマシン定義と一致していることを確認できます。
トラブルシューティング
SAM CLI エラー: "no such option: --guided"
sam deploy
の実行時に、以下のエラーが表示されます。
Error: no such option: --guided
これは、 --guided
パラメータをサポートしていない古いバージョンの AWS SAM CLI を使用していることを意味します。これを修正するには、CLI AWS SAM のバージョンを 0.33.0 以降に更新するか、 sam deploy
コマンドから --guided
パラメータを省略します。
SAM CLI エラー: 「管理対象リソースを作成できませんでした: 認証情報を見つけることができません」
sam deploy
の実行時に、以下のエラーが表示されます。
Error: Failed to create managed resources: Unable to locate credentials
つまり、 CLI AWS SAM が AWS サービスコールを実行できるように AWS 認証情報を設定していないことを意味します。これを修正するには、 AWS 認証情報を設定する必要があります。詳細については、「 AWS Serverless Application Model デベロッパーガイド」のAWS 「認証情報のセットアップ」を参照してください。
クリーンアップ
このチュートリアルを実行して作成した AWS リソースが不要になった場合は、デプロイした AWS CloudFormation スタックを削除することでリソースを削除できます。
を使用してこのチュートリアルで作成した AWS CloudFormation スタックを削除するには AWS Management Console、次の手順に従います。
にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudformation
で AWS CloudFormation コンソールを開きます。 -
左のナビゲーションペインで [Stacks] (スタック) をクリックします。
-
スタックのリストで、[sam-app] (または作成したスタックの名前) を選択します。
-
[Delete] (削除) を選択します。
完了すると、スタックのステータスが DELETE_COMPLETE に変わります。
または、次の AWS CLI コマンドを実行して AWS CloudFormation スタックを削除することもできます。
aws cloudformation delete-stack --stack-name
sam-app
--regionregion
削除されたスタックを確認する
AWS CloudFormation スタックを削除するどちらの方法でも、https://console.aws.amazon.com/cloudformation