@@ -311,6 +311,73 @@ dashboard-glue-quick/
311311
312312</details >
313313
314+ <details >
315+ <summary ><b >View Airflow Workflow</b ></summary >
316+
317+ ``` yaml
318+ workflow_combined :
319+ dag_id : ' covid_dashboard_glue_quick_pipeline'
320+ tasks :
321+ setup_covid_db_task :
322+ operator : airflow.providers.amazon.aws.operators.glue.GlueJobOperator
323+ retries : 0
324+ job_name : setup-covid-db-job
325+ script_location : ' {proj.connection.default.s3_shared.s3Uri}dashboard-glue-quick/bundle/glue_setup_covid_db.py'
326+ s3_bucket : ' {proj.connection.default.s3_shared.bucket}'
327+ iam_role_name : ' {proj.iam_role_name}'
328+ region_name : ' {domain.region}'
329+ update_config : true
330+ script_args :
331+ ' --BUCKET_NAME ' : ' {proj.connection.default.s3_shared.bucket}'
332+ ' --REGION_NAME ' : ' {domain.region}'
333+ create_job_kwargs :
334+ GlueVersion : ' 4.0'
335+ MaxRetries : 0
336+ Timeout : 180
337+
338+ data_summary_task :
339+ operator : airflow.providers.amazon.aws.operators.glue.GlueJobOperator
340+ retries : 0
341+ job_name : summary-glue-job
342+ script_location : ' {proj.connection.default.s3_shared.s3Uri}dashboard-glue-quick/bundle/glue_covid_summary_job.py'
343+ s3_bucket : ' {proj.connection.default.s3_shared.bucket}'
344+ iam_role_name : ' {proj.iam_role_name}'
345+ region_name : ' {domain.region}'
346+ update_config : true
347+ script_args :
348+ ' --DATABASE_NAME ' : ' covid19_db'
349+ ' --TABLE_NAME ' : ' us_simplified'
350+ ' --SUMMARY_DATABASE_NAME ' : ' covid19_summary_db'
351+ ' --S3_DATABASE_PATH ' : ' {proj.connection.default.s3_shared.s3Uri}dashboard-glue-quick/output/databases/covid19_summary_db/'
352+ ' --BUCKET_NAME ' : ' {proj.connection.default.s3_shared.bucket}'
353+ dependencies : [setup_covid_db_task]
354+ create_job_kwargs :
355+ GlueVersion : ' 4.0'
356+ MaxRetries : 0
357+ Timeout : 180
358+
359+ set_permission_check_task :
360+ operator : airflow.providers.amazon.aws.operators.glue.GlueJobOperator
361+ retries : 0
362+ job_name : set-permission-check-job
363+ script_location : ' {proj.connection.default.s3_shared.s3Uri}dashboard-glue-quick/bundle/glue_set_permission_check.py'
364+ s3_bucket : ' {proj.connection.default.s3_shared.bucket}'
365+ iam_role_name : ' {proj.iam_role_name}'
366+ region_name : ' {domain.region}'
367+ update_config : true
368+ script_args :
369+ ' --BUCKET_NAME ' : ' {proj.connection.default.s3_shared.bucket}'
370+ ' --REGION_NAME ' : ' {domain.region}'
371+ ' --ROLES ' : ' {env.GRANT_TO}'
372+ dependencies : [data_summary_task]
373+ create_job_kwargs :
374+ GlueVersion : ' 4.0'
375+ MaxRetries : 0
376+ Timeout : 180
377+ ` ` `
378+
379+ </details>
380+
314381<details>
315382<summary><b>View Manifest</b></summary>
316383
@@ -485,6 +552,62 @@ stages:
485552
486553</details>
487554
555+ <details>
556+ <summary><b>View Airflow Workflow</b></summary>
557+
558+ ` ` ` yaml
559+ notebooks_workflow :
560+ dag_id : notebooks_parallel
561+ tasks :
562+ nb_churn :
563+ operator : airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator
564+ retries : 0
565+ input_config :
566+ input_path : notebooks/bundle/notebooks/customer_churn_prediction.ipynb
567+ input_params : {}
568+ output_config :
569+ output_formats :
570+ - NOTEBOOK
571+ compute :
572+ instance_type : ml.c5.xlarge
573+ image_details :
574+ image_name : sagemaker-distribution-prod
575+ image_version : ' 3'
576+ wait_for_completion : true
577+ nb_sales :
578+ operator : airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator
579+ retries : 0
580+ input_config :
581+ input_path : notebooks/bundle/notebooks/retail_sales_forecasting.ipynb
582+ input_params : {}
583+ output_config :
584+ output_formats :
585+ - NOTEBOOK
586+ compute :
587+ instance_type : ml.c5.xlarge
588+ image_details :
589+ image_name : sagemaker-distribution-prod
590+ image_version : ' 3'
591+ wait_for_completion : true
592+ nb_segment :
593+ operator : airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator
594+ retries : 0
595+ input_config :
596+ input_path : notebooks/bundle/notebooks/customer_segmentation_analysis.ipynb
597+ input_params : {}
598+ output_config :
599+ output_formats :
600+ - NOTEBOOK
601+ compute :
602+ instance_type : ml.c5.xlarge
603+ image_details :
604+ image_name : sagemaker-distribution-prod
605+ image_version : ' 3'
606+ wait_for_completion : true
607+ ` ` `
608+
609+ </details>
610+
488611**[View Full Example →](docs/examples-guide.md#-data-engineering---notebooks)**
489612
490613---
@@ -498,6 +621,30 @@ Train ML models with SageMaker using the [SageMaker SDK](https://sagemaker.readt
498621
499622**What happens during deployment:** Training code and workflow definitions are uploaded to S3 with compression, Airflow DAG is created for training orchestration, MLflow connection is provisioned for experiment tracking, and SageMaker training jobs are created and executed using SageMaker Distribution images.
500623
624+ <details>
625+ <summary><b>📁 App Structure</b></summary>
626+
627+ ` ` `
628+ ml/training/
629+ ├── manifest.yaml # Deployment configuration
630+ ├── code/
631+ │ ├── sagemaker_training_script.py # Training script
632+ │ └── requirements.txt # Python dependencies
633+ ├── workflows/
634+ │ ├── ml_training_workflow.yaml # Airflow orchestration
635+ │ └── ml_training_notebook.ipynb # Training notebook
636+ └── app_tests/
637+ └── test_model_registration.py # Integration tests
638+ ```
639+
640+ ** Key Files:**
641+ - ** Training Script** : SageMaker training job implementation
642+ - ** Workflow** : Airflow DAG for training orchestration
643+ - ** Notebook** : Interactive training workflow
644+ - ** Tests** : Validate model registration and training
645+
646+ </details >
647+
501648<details >
502649<summary ><b >View Manifest</b ></summary >
503650
@@ -557,6 +704,33 @@ stages:
557704
558705</details>
559706
707+ <details>
708+ <summary><b>View Airflow Workflow</b></summary>
709+
710+ ` ` ` yaml
711+ ml_training_workflow :
712+ dag_id : " ml_training_workflow"
713+ tasks :
714+ ml_training_notebook :
715+ operator : " airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator"
716+ retries : 0
717+ input_config :
718+ input_path : " ml/bundle/training-workflows/ml_training_notebook.ipynb"
719+ input_params :
720+ mlflow_tracking_server_arn : " {proj.connection.mlflow-server.trackingServerArn}"
721+ mlflow_artifact_location : " {proj.connection.default.s3_shared.s3Uri}ml/mlflow-artifacts"
722+ sklearn_version : " 1.2-1"
723+ python_version : " py3"
724+ training_instance_type : " ml.m5.large"
725+ model_name : " realistic-classifier-v1"
726+ output_config :
727+ output_formats :
728+ ['NOTEBOOK']
729+ wait_for_completion : True
730+ ` ` `
731+
732+ </details>
733+
560734**[View Full Example →](docs/examples-guide.md#-machine-learning---training)**
561735
562736---
@@ -570,6 +744,29 @@ Deploy trained ML models as SageMaker real-time inference endpoints. Uses SageMa
570744
571745**What happens during deployment:** Model artifacts, deployment code, and workflow definitions are uploaded to S3, Airflow DAG is created for endpoint deployment orchestration, SageMaker endpoint configuration and model are created, and the inference endpoint is deployed and ready to serve predictions.
572746
747+ <details>
748+ <summary><b>📁 App Structure</b></summary>
749+
750+ ` ` `
751+ ml/deployment/
752+ ├── manifest.yaml # Deployment configuration
753+ ├── code/
754+ │ └── inference.py # Inference handler
755+ ├── workflows/
756+ │ ├── ml_deployment_workflow.yaml # Airflow orchestration
757+ │ └── ml_deployment_notebook.ipynb # Deployment notebook
758+ └── app_tests/
759+ └── test_endpoint_deployment.py # Integration tests
760+ ```
761+
762+ ** Key Files:**
763+ - ** Inference Handler** : Custom inference logic for endpoint
764+ - ** Workflow** : Airflow DAG for endpoint deployment
765+ - ** Notebook** : Interactive deployment workflow
766+ - ** Tests** : Validate endpoint deployment and predictions
767+
768+ </details >
769+
573770<details >
574771<summary ><b >View Manifest</b ></summary >
575772
@@ -630,6 +827,31 @@ stages:
630827
631828</details>
632829
830+ <details>
831+ <summary><b>View Airflow Workflow</b></summary>
832+
833+ ` ` ` yaml
834+ ml_deployment_workflow :
835+ dag_id : " ml_deployment_workflow"
836+ tasks :
837+ ml_deployment_notebook :
838+ operator : " airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator"
839+ retries : 0
840+ input_config :
841+ input_path : " ml/bundle/deployment-workflows/ml_deployment_notebook.ipynb"
842+ input_params :
843+ model_s3_uri : " {proj.connection.default.s3_shared.s3Uri}ml/output/model-artifacts/latest/output/model.tar.gz"
844+ sklearn_version : " 1.2-1"
845+ python_version : " py3"
846+ inference_instance_type : " ml.m5.large"
847+ output_config :
848+ output_formats :
849+ ['NOTEBOOK']
850+ wait_for_completion : True
851+ ` ` `
852+
853+ </details>
854+
633855**[View Full Example →](docs/examples-guide.md#-machine-learning---deployment)**
634856
635857---
@@ -643,6 +865,35 @@ Deploy GenAI applications with Bedrock agents and knowledge bases. Demonstrates
643865
644866**What happens during deployment:** Agent configuration and workflow definitions are uploaded to S3, Airflow DAG is created for agent deployment orchestration, Bedrock agents and knowledge bases are configured, and the GenAI application is ready for inference and testing.
645867
868+ <details>
869+ <summary><b>📁 App Structure</b></summary>
870+
871+ ` ` `
872+ genai/
873+ ├── manifest.yaml # Deployment configuration
874+ ├── job-code/
875+ │ ├── requirements.txt # Python dependencies
876+ │ ├── test_agent.yaml # Agent test configuration
877+ │ ├── lambda_mask_string.py # Lambda function
878+ │ └── utils/
879+ │ ├── bedrock_agent.py # Agent management
880+ │ ├── bedrock_agent_helper.py # Agent utilities
881+ │ └── knowledge_base_helper.py # Knowledge base utilities
882+ ├── workflows/
883+ │ ├── genai_dev_workflow.yaml # Airflow orchestration
884+ │ └── bedrock_agent_notebook.ipynb # Agent deployment notebook
885+ └── app_tests/
886+ └── test_genai_workflow.py # Integration tests
887+ ```
888+
889+ ** Key Files:**
890+ - ** Agent Code** : Bedrock agent and knowledge base management
891+ - ** Workflow** : Airflow DAG for GenAI deployment
892+ - ** Notebook** : Interactive agent deployment
893+ - ** Tests** : Validate agent functionality
894+
895+ </details >
896+
646897<details >
647898<summary ><b >View Manifest</b ></summary >
648899
@@ -686,6 +937,31 @@ stages:
686937
687938</details>
688939
940+ <details>
941+ <summary><b>View Airflow Workflow</b></summary>
942+
943+ ` ` ` yaml
944+ genai_dev_workflow :
945+ dag_id : " genai_dev_workflow"
946+ tasks :
947+ bedrock_agent_notebook :
948+ operator : " airflow.providers.amazon.aws.operators.sagemaker_unified_studio.SageMakerNotebookOperator"
949+ retries : 0
950+ input_config :
951+ input_path : " genai/bundle/workflows/bedrock_agent_notebook.ipynb"
952+ input_params :
953+ agent_name : " calculator_agent"
954+ agent_llm : " us.anthropic.claude-3-5-sonnet-20241022-v2:0"
955+ force_recreate : " True"
956+ kb_name : " mortgage-kb"
957+ output_config :
958+ output_formats :
959+ ['NOTEBOOK']
960+ wait_for_completion : True
961+ ` ` `
962+
963+ </details>
964+
689965**[View Full Example →](docs/examples-guide.md#-generative-ai)**
690966
691967---
0 commit comments