はじめに
皆さん、こんにちは。
私は業務でデータ利活用基盤を取り扱っていること、2024 AWS Japan Top Engineer に選出されたということから、AWS GenU およびそれに必要なデータ基盤の探求 (Snowflake, dbt, Iceberg, etc) に取り組む必要があると考えています。
本投稿では、GenU のバックエンドである CDK コードを詳細に解説します。
自身そして閲覧して頂いた皆様の GenU への理解が少しでも深まり、生成 AI の民主化につながっていければと考えています。
前回までのおさらい
前回までで、以下が完了しました。
- ①AWS CDK のセットアップ
- ②AWS CDK の動作確認
- ③GenU の概要
- ④GenU CDK スタックの概要
- ⑤CloudFrontWafStack スタックの解説
- ⑥RagKnowledgeBaseStack スタックの解説
- ⑦WebSearchAgentStack スタックの解説
- ⑧GuardrailStack スタックの解説
- ⑨GenerativeAiUseCasesStack > Auth スタックの解説
- ⑩GenerativeAiUseCasesStack > Database, Api スタックの解説
- ⑪GenerativeAiUseCasesStack > CommonWebAcl, Web, Rag スタックの解説
- ⑫GenerativeAiUseCasesStack > RagKnowledgeBase, UseCaseBuilder, Transcribe スタックの解説
- ⑬DashBoard スタックの解説
GenU の CDK は最大で以下の 6 つの子スタックを作成します。
前回までで全てのスタックについて解説が終わりました。
CloudFrontWafStack
RagKnowledgeBaseStack
AgentStack
GuardrailStack
-
GenerativeAiUseCasesStack
※メインスタック DashboardStack
今回が最終回となります。
今回は、スタックからエクスポート (CfnOutput) される値を解説したいと思います。
CfnOutput とは
CfnOutput はスタックの出力情報です。
Web ページの URL やダッシュボードの URL など、リソースに関する重要な情報の出力や、クロススタック参照用のエクスポート値として利用できます。
GenU では、以下の CfnOutput を行っています。
- CloudFrontWafStack 関連
-
RagKnowledgeBaseStack 関連
-
RagKnowledgeBaseEnabled
: スタック作成時のパラメータragKnowledgeBaseEnabled
(デフォルト値は false)
-
-
WebSearchAgentStack 関連
-
AgentEnabled
: スタック作成時のパラメータfalse
(デフォルト値は false) -
AgentNames
: 以下のいずれか (上を優先)- WebSearchAgentStack で生成した Web 検索エージェントおよびコードインタプリタの
displayName
- スタック作成時のパラメータ
agents
のdisplayName
(デフォルト値は空配列)
- WebSearchAgentStack で生成した Web 検索エージェントおよびコードインタプリタの
-
-
GenerativeAiUseCasesStack 関連
- 共通
-
Region
: スタック作成時のパラメータregion
(デフォルト値は以下のいずれか)- CDK 実行時の環境変数
CDK_DEFAULT_REGION
- 固定値
'us-east-1'
- CDK 実行時の環境変数
-
ModelRegion
: スタック作成時のパラメータmodelRegion
(デフォルト値は 'us-east-1') -
ModelIds
: スタック作成時のパラメータmodelIds
(デフォルト値は以下の配列)us.anthropic.claude-3-5-sonnet-20241022-v2:0
us.anthropic.claude-3-5-haiku-20241022-v1:0
us.amazon.nova-pro-v1:0
us.amazon.nova-lite-v1:0
us.amazon.nova-micro-v1:0
-
ImageGenerateModelIds
: スタック作成時のパラメータimageGenerationModelIds
(デフォルト値は以下の配列) -
HiddenUseCases
: スタック作成時のパラメータhiddenUseCases
(デフォルト値は空オブジェクト)
-
-
Web リソース 関連
-
WebUrl
: GenU Web ページの URL (以下のいずれか)- カスタムドメインを利用する場合、
https://[ホスト名].[ドメイン名]
- ホスト名はスタック作成時のパラメータ
hostName
- ドメイン名はスタック作成時のパラメータ
domainName
- ホスト名はスタック作成時のパラメータ
- カスタムドメインを利用しない場合、CloudFront ディストリビューションの URL
- カスタムドメインを利用する場合、
-
Flows
: スタック作成時のパラメータflows
の JSON 文字列を base64 エンコードしたもの (デフォルト値は空配列)- Web ビルド時の環境変数
VITE_APP_FLOWS
に使用する
- Web ビルド時の環境変数
-
EndpointNames
: スタック作成時のパラメータendpointNames
(デフォルト値は空配列) ※SageMaker エンドポイント- Web ビルド時の環境変数
VITE_APP_ENDPOINT_NAMES
に使用する
- Web ビルド時の環境変数
-
SamlAuthEnabled
: スタック作成時のパラメータsamlAuthEnabled
(デフォルト値は false)- Web ビルド時の環境変数
VITE_APP_SAMLAUTH_ENABLED
に使用する
- Web ビルド時の環境変数
-
SamlCognitoDomainName
: スタック作成時のパラメータsamlCognitoDomainName
(デフォルト値は null)- Web ビルド時の環境変数
VITE_APP_SAML_COGNITO_DOMAIN_NAME
に使用する
- Web ビルド時の環境変数
-
SamlCognitoFederatedIdentityProviderName
: スタック作成時のパラメータsamlCognitoFederatedIdentityProviderName
(デフォルト値は null)- Web ビルド時の環境変数
VITE_APP_SAML_COGNITO_FEDERATED_IDENTITY_PROVIDER_NAME
に使用する
- Web ビルド時の環境変数
-
InlineAgents
: スタック作成時のパラメータinlineAgents
(デフォルト値は false)- Web ビルド時の環境変数
VITE_APP_INLINE_AGENTS
に使用する
- Web ビルド時の環境変数
-
-
Api リソース 関連
-
ApiEndpoint
: API GW のルート URL -
PredictStreamFunctionArn
: Lambda 関数predictStreamFunction
の関数 ARN -
OptimizePromptFunctionArn
: Lambda 関数optimizePromptFunction
の関数 ARN -
InvokeFlowFunctionArn
: Lambda 関数invokeFlowFunction
の関数 ARN
-
-
Auth リソース 関連
-
UserPoolId
: Cognito ユーザプール ID -
UserPoolClientId
: Cognito アプリケーションクライアント ID -
IdPoolId
: Cognito ID プール ID -
SelfSignUpEnabled
: スタック作成時のパラメータselfSignUpEnabled
(デフォルト値は true)
-
-
Rag リソース 関連
-
RagEnabled
: スタック作成時のパラメータragEnabled
(デフォルト値は false)amazon.nova-canvas-v1:0
-
-
UseCaseBuilder リソース 関連
-
UseCaseBuilderEnabled
: スタック作成時のパラメータragEnabled
(デフォルト値は true)
-
- 共通
-
DashboardStack
関連-
BedrockLogGroup
: Becrock 用のCloudWatch ロググループ
のロググループ名 (解説) -
DashboardName
:CloudWatch ダッシュボード
のダッシュボード名 (解説) -
DashboardUrl
: CloudWatch ダッシュボードの URLhttps://console.aws.amazon.com/cloudwatch/home#dashboards/dashboard/[ダッシュボード名]
-
以上です。
全 14 回に渡り、GenU のバックエンド (CDK) を解説してきました。
まだまだ発展していく OSS のため、様々な変更が入っていくと思いますが、コンセプトは変わらないと思いますので、読んで頂いた方の助けになれば幸いです。
この後は、フロントエンド (Vite + React) およびデプロイオプションの解説を行っていきと思います。
(参考) GenU のバックエンド (CDK) 詳細解説投稿一覧
- ①AWS CDK のセットアップ
- ②AWS CDK の動作確認
- ③GenU の概要
- ④GenU CDK スタックの概要
- ⑤CloudFrontWafStack スタックの解説
- ⑥RagKnowledgeBaseStack スタックの解説
- ⑦WebSearchAgentStack スタックの解説
- ⑧GuardrailStack スタックの解説
- ⑨GenerativeAiUseCasesStack > Auth スタックの解説
- ⑩GenerativeAiUseCasesStack > Database, Api スタックの解説
- ⑪GenerativeAiUseCasesStack > CommonWebAcl, Web, Rag スタックの解説
- ⑫GenerativeAiUseCasesStack > RagKnowledgeBase, UseCaseBuilder, Transcribe スタックの解説
- ⑬DashBoard スタックの解説
- ⑭GenU の Outputs の解説