Skip to content
This repository was archived by the owner on May 25, 2022. It is now read-only.

Commit 50b5d13

Browse files
authored
Update to latest upstream (#6)
* Add data_type to hyperparameters (aws#54) When we describe a training job the data type of the hyper parameters is lost because we use a dict[str, str]. This adds a new field to Hyperparameter so that we can convert the datatypes at runtime. instead of validating with isinstance(), we cast the hp value to the type it is meant to be. This enforces a "strongly typed" value. When we deserialize from the API string responses it becomes easier to deal with too. * Add wrapper for LDA. (aws#56) Update CHANGELOG and bump the version number. * Add support for async fit() (aws#59) when calling fit(wait=False) it will return immediately. The training job will carry on even if the process exits. by using attach() the estimator can be retrieved by providing the training job name. _prepare_init_params_from_job_description() is now a classmethod instead of being a static method. Each class is responsible to implement their specific logic to convert a training job description into arguments that can be passed to its own __init__() * Fix Estimator role expansion (aws#68) Instead of manually constructing the role ARN, use the IAM boto client to do it. This properly expands service-roles and regular roles. * Add FM and LDA to the documentation. (aws#66) * Fix description of an argument of sagemaker.session.train (aws#69) * Fix description of an argument of sagemaker.session.train 'input_config' should be an array which has channel objects. * Add a link to the botocore docs * Use 'list' instead of 'array' in the description * Add ntm algorithm with doc, unit tests, integ tests (aws#73) * JSON serializer: predictor.predict accepts dictionaries (aws#62) Add support for serializing python dictionaries to json Add prediction with dictionary in tf iris integ test * Fixing timeouts for PCA async integration test. (aws#78) Execute tf_cifar test without logs to eliminate delay to detect that job has finished. * Fixes in LinearLearner and unit tests addition. (aws#77) * Print out billable seconds after training completes (aws#30) * Added: print out billable seconds after training completes * Fixed: test_session.py to pass unit tests * Fixed: removed offending tzlocal() * Use sagemaker_timestamp when creating endpoint names in integration tests. (aws#81) * Support TensorFlow-1.5.0 and MXNet-1.0.0 (aws#82) * Update .gitignore to ignore pytest_cache. * Support TensorFlow-1.5.0 and MXNet-1.0.0 * Update and refactor tests. Add tests for fw_utils. * Fix typo. * Update changelog for 1.1.0 (aws#85)
1 parent 6acf497 commit 50b5d13

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+3189
-493
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ doc/_build
2121
**/.DS_Store
2222
venv/
2323
*~
24+
.pytest_cache/

CHANGELOG.rst

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,41 @@
22
CHANGELOG
33
=========
44

5+
1.1.0
6+
=====
7+
8+
* feature: Estimators: add support for TensorFlow-1.5.0
9+
* feature: Estimators: add support for MXNet-1.0.0
10+
* feature: Tests: use ``sagemaker_timestamp`` when creating endpoint names in integration tests
11+
* feature: Session: print out billable seconds after training completes
12+
* bug-fix: Estimators: fix LinearLearner and add unit tests
13+
* bug-fix: Tests: fix timeouts for PCA async integration test
14+
* feature: Predictors: allow ``predictor.predict()`` in the JSON serializer to accept dictionaries
15+
16+
1.0.4
17+
=====
18+
19+
* feature: Estimators: add support for Amazon Neural Topic Model(NTM) algorithm
20+
* feature: Documentation: fix description of an argument of sagemaker.session.train
21+
* feature: Documentation: add FM and LDA to the documentation
22+
* feature: Estimators: add support for async fit
23+
* bug-fix: Estimators: fix estimator role expansion
24+
25+
1.0.3
26+
=====
27+
28+
* feature: Estimators: add support for Amazon LDA algorithm
29+
* feature: Hyperparameters: add data_type to hyperparameters
30+
* feature: Documentation: update TensorFlow examples following API change
31+
* feature: Session: support multi-part uploads
32+
* feature: add new SageMaker CLI
33+
34+
535
1.0.2
636
=====
737

838
* feature: Estimators: add support for Amazon FactorizationMachines algorithm
9-
* feature: Session: Correctly handle TooManyBuckets error_code in default_bucket method
39+
* feature: Session: correctly handle TooManyBuckets error_code in default_bucket method
1040
* feature: Tests: add training failure tests for TF and MXNet
1141
* feature: Documentation: show how to make predictions against existing endpoint
1242
* feature: Estimators: implement write_spmatrix_to_sparse_tensor to support any scipy.sparse matrix
@@ -27,4 +57,3 @@ CHANGELOG
2757
=====
2858

2959
* Initial commit
30-

README.rst

Lines changed: 83 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ You can install from source by cloning this repository and issuing a pip install
3939

4040
git clone https://github.com/aws/sagemaker-python-sdk.git
4141
python setup.py sdist
42-
pip install dist/sagemaker-1.0.0.tar.gz
42+
pip install dist/sagemaker-1.1.0.tar.gz
4343

4444
Supported Python versions
4545
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -97,7 +97,7 @@ SageMaker Python SDK provides several high-level abstractions for working with A
9797
- **Estimators**: Encapsulate training on SageMaker. Can be ``fit()`` to run training, then the resulting model ``deploy()`` ed to a SageMaker Endpoint.
9898
- **Models**: Encapsulate built ML models. Can be ``deploy()`` ed to a SageMaker Endpoint.
9999
- **Predictors**: Provide real-time inference and transformation using Python data-types against a SageMaker Endpoint.
100-
- **Session**: Provides a collection of convience methods for working with SageMaker resources.
100+
- **Session**: Provides a collection of convenience methods for working with SageMaker resources.
101101

102102
Estimator and Model implementations for MXNet, TensorFlow, and Amazon ML algorithms are included. There's also an Estimator that runs SageMaker compatible custom Docker containers, allowing you to run your own ML algorithms via SageMaker Python SDK.
103103

@@ -114,6 +114,8 @@ MXNet SageMaker Estimators
114114

115115
With MXNet Estimators, you can train and host MXNet models on Amazon SageMaker.
116116

117+
Supported versions of MXNet: ``1.0.0``, ``0.12.1``.
118+
117119
Training with MXNet
118120
~~~~~~~~~~~~~~~~~~~
119121

@@ -185,7 +187,7 @@ If you want to run your training script locally via the Python interpreter, look
185187
Using MXNet and numpy
186188
^^^^^^^^^^^^^^^^^^^^^
187189

188-
You can import both ``mxnet`` and ``numpy`` in your training script. When your script runs in SageMaker, it will run with access to MXNet version 0.12 and numpy version 1.12.0. For more information on the environment your script runs in, please see `SageMaker MXNet Containers <#sagemaker-mxnet-containers>`__.
190+
You can import both ``mxnet`` and ``numpy`` in your training script. When your script runs in SageMaker, it will run with access to MXNet version 1.0.0 and numpy version 1.13.3 by default. For more information on the environment your script runs in, please see `SageMaker MXNet Containers <#sagemaker-mxnet-containers>`__.
189191

190192
Running an MXNet training script in SageMaker
191193
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -682,26 +684,33 @@ When training and deploying training scripts, SageMaker runs your Python script
682684
683685
SageMaker runs MXNet Estimator scripts in either Python 2.7 or Python 3.5. You can select the Python version by passing a ``py_version`` keyword arg to the MXNet Estimator constructor. Setting this to ``py2`` (the default) will cause your training script to be run on Python 2.7. Setting this to ``py3`` will cause your training script to be run on Python 3.5. This Python version applies to both the Training Job, created by fit, and the Endpoint, created by deploy.
684686
685-
Your MXNet training script will be run on version 0.12 of MXNet, built for either GPU or CPU use. The decision to use the GPU or CPU version of MXNet is made by the train_instance_type, set on the MXNet constructor. If you choose a GPU instance type, your training job will be run on a GPU version of MXNet. If you choose a CPU instance type, your training job will be run on a CPU version of MXNet. Similarly, when you call deploy, specifying a GPU or CPU deploy_instance_type, will control which MXNet build your Endpoint runs.
687+
Your MXNet training script will be run on version 1.0.0 (by default) or 0.12 of MXNet, built for either GPU or CPU use. The decision to use the GPU or CPU version of MXNet is made by the ``train_instance_type``, set on the MXNet constructor. If you choose a GPU instance type, your training job will be run on a GPU version of MXNet. If you choose a CPU instance type, your training job will be run on a CPU version of MXNet. Similarly, when you call deploy, specifying a GPU or CPU deploy_instance_type, will control which MXNet build your Endpoint runs.
686688
687-
Each Docker container has the following dependencies installed:
689+
The Docker images have the following dependencies installed:
688690
689-
- Python 2.7 or Python 3.5, depending on the ``py_version`` argument on
690-
the MXNet constructor.
691-
- MXNet 0.12, built for either GPU or CPU, depending on the instance
692-
type for training or deploying.
693-
- CUDA 9.0
694-
- numpy 1.12
691+
+-------------------------+--------------+-------------+
692+
| Dependencies | MXNet 0.12.1 | MXNet 1.0.0 |
693+
+-------------------------+--------------+-------------+
694+
| Python | 2.7 or 3.5 | 2.7 or 3.5|
695+
+-------------------------+--------------+-------------+
696+
| CUDA | 9.0 | 9.0 |
697+
+-------------------------+--------------+-------------+
698+
| numpy | 1.13.3 | 1.13.3 |
699+
+-------------------------+--------------+-------------+
695700
696701
The Docker images extend Ubuntu 16.04.
697702
703+
You can select version of MXNet by passing a ``framework_version`` keyword arg to the MXNet Estimator constructor. Currently supported versions are ``1.0.0`` and ``0.12.1``. You can also set ``framework_version`` to ``1.0 (default)`` or ``0.12`` which will cause your training script to be run on the latest supported MXNet 1.0 or 0.12 versions respectively.
704+
698705
TensorFlow SageMaker Estimators
699706
-------------------------------
700707
701708
TensorFlow SageMaker Estimators allow you to run your own TensorFlow
702709
training algorithms on SageMaker Learner, and to host your own TensorFlow
703710
models on SageMaker Hosting.
704711
712+
Supported versions of TensorFlow: ``1.4.1``, ``1.5.0``.
713+
705714
Training with TensorFlow
706715
~~~~~~~~~~~~~~~~~~~~~~~~
707716
@@ -735,7 +744,7 @@ Preparing the TensorFlow training script
735744
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
736745
737746
Your TensorFlow training script must be a **Python 2.7** source file. The current supported TensorFlow
738-
version is **1.4.0**. This training script **must contain** the following functions:
747+
versions are **1.5.0 (default)** and **1.4.1**. This training script **must contain** the following functions:
739748
740749
- ``model_fn``: defines the model that will be trained.
741750
- ``train_input_fn``: preprocess and load training data.
@@ -1150,6 +1159,7 @@ Optional arguments
11501159
11511160
- ``wait (bool)``: Defaults to True, whether to block and wait for the
11521161
training script to complete before returning.
1162+
If set to False, it will return immediately, and can later be attached to.
11531163
- ``logs (bool)``: Defaults to True, whether to show logs produced by training
11541164
job in the Python session. Only meaningful when wait is True.
11551165
- ``run_tensorboard_locally (bool)``: Defaults to False. Executes TensorBoard in a different
@@ -1178,9 +1188,25 @@ the ``TensorFlow`` estimator parameter ``training_steps`` is finished or when th
11781188
job execution time reaches the ``TensorFlow`` estimator parameter ``train_max_run``.
11791189
11801190
When the training job finishes, a `TensorFlow serving <https://www.tensorflow.org/serving/serving_basic>`_
1181-
with the result of the training is generated and saved to the S3 location define by
1191+
with the result of the training is generated and saved to the S3 location defined by
11821192
the ``TensorFlow`` estimator parameter ``output_path``.
11831193
1194+
1195+
If the ``wait=False`` flag is passed to ``fit``, then it will return immediately. The training job will continue running
1196+
asynchronously. At a later time, a Tensorflow Estimator can be obtained by attaching to the existing training job. If
1197+
the training job is not finished it will start showing the standard output of training and wait until it completes.
1198+
After attaching, the estimator can be deployed as usual.
1199+
1200+
.. code:: python
1201+
1202+
tf_estimator.fit(your_input_data, wait=False)
1203+
training_job_name = tf_estimator.latest_training_job.name
1204+
1205+
# after some time, or in a separate python notebook, we can attach to it again.
1206+
1207+
tf_estimator = TensorFlow.attach(training_job_name=training_job_name)
1208+
1209+
11841210
The evaluation process
11851211
""""""""""""""""""""""
11861212
@@ -1244,6 +1270,8 @@ You can access TensorBoard locally at http://localhost:6006 or using your SakeMa
12441270
`https*workspace_base_url*proxy/6006/ <proxy/6006/>`_ (TensorBoard will not work if you forget to put the slash,
12451271
'/', in end of the url). If TensorBoard started on a different port, adjust these URLs to match.
12461272
1273+
Note that TensorBoard is not supported when passing wait=False to ``fit``.
1274+
12471275
12481276
Deploying TensorFlow Serving models
12491277
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1400,39 +1428,61 @@ A example with ``input_fn`` and ``output_fn`` above can be found in
14001428
SageMaker TensorFlow Docker containers
14011429
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14021430
1403-
The TensorFlow Docker container supports Python 2.7. The Docker container has the following Python modules installed:
1404-
- awscli 1.12.1
1405-
- boto3 1.4.7
1406-
- botocore 1.5.92
1407-
- futures 2.2.0
1408-
- gevent 1.2.2
1409-
- grpcio 1.7.0
1410-
- numpy 1.13.3
1411-
- pandas 0.21.0
1412-
- protobuf 3.4.0
1413-
- requests 2.14.2
1414-
- scikit-learn 0.19.1
1415-
- scipy 1.0.0
1416-
- six 1.10.0
1417-
- sklearn 0.0
1418-
- tensorflow 1.4.0
1419-
- tensorflow-serving-api 1.4.0
1420-
- tensorflow-tensorboard 0.4.0rc2
1431+
The TensorFlow Docker images support Python 2.7 and have the following Python modules installed:
1432+
1433+
+------------------------+------------------+------------------+
1434+
| Dependencies | tensorflow 1.4.1 | tensorflow 1.5.0 |
1435+
+------------------------+------------------+------------------+
1436+
| awscli | 1.12.1 | 1.14.35 |
1437+
+------------------------+------------------+------------------+
1438+
| boto3 | 1.4.7 | 1.5.22 |
1439+
+------------------------+------------------+------------------+
1440+
| botocore | 1.5.92 | 1.8.36 |
1441+
+------------------------+------------------+------------------+
1442+
| futures | 2.2.0 | 2.2.0 |
1443+
+------------------------+------------------+------------------+
1444+
| gevent | 1.2.2 | 1.2.2 |
1445+
+------------------------+------------------+------------------+
1446+
| grpcio | 1.7.0 | 1.9.0 |
1447+
+------------------------+------------------+------------------+
1448+
| numpy | 1.13.3 | 1.14.0 |
1449+
+------------------------+------------------+------------------+
1450+
| pandas | 0.21.0 | 0.22.0 |
1451+
+------------------------+------------------+------------------+
1452+
| protobuf | 3.4.0 | 3.5.1 |
1453+
+------------------------+------------------+------------------+
1454+
| requests | 2.14.2 | 2.18.4 |
1455+
+------------------------+------------------+------------------+
1456+
| scikit-learn | 0.19.1 | 0.19.1 |
1457+
+------------------------+------------------+------------------+
1458+
| scipy | 1.0.0 | 1.0.0 |
1459+
+------------------------+------------------+------------------+
1460+
| six | 1.10.0 | 1.10.0 |
1461+
+------------------------+------------------+------------------+
1462+
| sklearn | 0.0 | 0.0 |
1463+
+------------------------+------------------+------------------+
1464+
| tensorflow | 1.4.1 | 1.5.0 |
1465+
+------------------------+------------------+------------------+
1466+
| tensorflow-serving-api | 1.4.0 | 1.5.0 |
1467+
+------------------------+------------------+------------------+
1468+
| tensorflow-tensorboard | 0.4.0 | 1.5.1 |
1469+
+------------------------+------------------+------------------+
14211470
14221471
The Docker images extend Ubuntu 16.04.
14231472
1473+
You can select version of TensorFlow by passing a ``framework_version`` keyword arg to the TensorFlow Estimator constructor. Currently supported versions are ``1.5.0`` and ``1.4.1``. You can also set ``framework_version`` to ``1.5 (default)`` or ``1.4`` which will cause your training script to be run on the latest supported TensorFlow 1.5 or 1.4 versions respectively.
14241474
14251475
AWS SageMaker Estimators
14261476
------------------------
14271477
Amazon SageMaker provides several built-in machine learning algorithms that you can use for a variety of problem types.
14281478
14291479
The full list of algorithms is available on the AWS website: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
14301480
1431-
SageMaker Python SDK includes Estimator wrappers for the AWS K-means, Principal Components Analysis, and Linear Learner algorithms.
1481+
SageMaker Python SDK includes Estimator wrappers for the AWS K-means, Principal Components Analysis(PCA), Linear Learner, Factorization Machines, Latent Dirichlet Allocation(LDA) and Neural Topic Model(NTM) algorithms.
14321482
14331483
Definition and usage
14341484
~~~~~~~~~~~~~~~~~~~~
1435-
Estimators that wrap Amazon's built-in algorithms define algorithm's hyperparameters with defaults. When a default is not possible you need to provide the value during construction:
1485+
Estimators that wrap Amazon's built-in algorithms define algorithm's hyperparameters with defaults. When a default is not possible you need to provide the value during construction, e.g.:
14361486
14371487
- ``KMeans`` Estimator requires parameter ``k`` to define number of clusters
14381488
- ``PCA`` Estimator requires parameter ``num_components`` to define number of principal components

doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def __getattr__(cls, name):
1818
'tensorflow.python.framework', 'tensorflow_serving', 'tensorflow_serving.apis']
1919
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
2020

21-
version = '1.0'
21+
version = '1.1.0'
2222
project = u'sagemaker'
2323

2424
# Add any Sphinx extension module names here, as strings. They can be extensions

doc/factorization_machines.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FactorizationMachines
2+
-------------------------
3+
4+
The Amazon SageMaker Factorization Machines algorithm.
5+
6+
.. autoclass:: sagemaker.FactorizationMachines
7+
:members:
8+
:undoc-members:
9+
:show-inheritance:
10+
:inherited-members:
11+
:exclude-members: image, num_factors, predictor_type, epochs, clip_gradient, mini_batch_size, feature_dim, eps, rescale_grad, bias_lr, linear_lr, factors_lr, bias_wd, linear_wd, factors_wd, bias_init_method, bias_init_scale, bias_init_sigma, bias_init_value, linear_init_method, linear_init_scale, linear_init_sigma, linear_init_value, factors_init_method, factors_init_scale, factors_init_sigma, factors_init_value
12+
13+
14+
.. autoclass:: sagemaker.FactorizationMachinesModel
15+
:members:
16+
:undoc-members:
17+
:show-inheritance:
18+
19+
.. autoclass:: sagemaker.FactorizationMachinesPredictor
20+
:members:
21+
:undoc-members:
22+
:show-inheritance:

doc/index.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,15 @@ A managed environment for TensorFlow training and hosting on Amazon SageMaker
3838

3939
SageMaker First-Party Algorithms
4040
--------------------------------
41-
Amazon provides implementations of some common machine learning algortithms optimized for GPU archicture and massive datasets.
41+
Amazon provides implementations of some common machine learning algortithms optimized for GPU architecture and massive datasets.
4242

4343
.. toctree::
4444
:maxdepth: 2
4545

4646
kmeans
4747
pca
4848
linear_learner
49+
sagemaker.amazon.amazon_estimator
50+
factorization_machines
51+
lda
52+
ntm

doc/lda.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
LDA
2+
--------------------
3+
4+
The Amazon SageMaker LDA algorithm.
5+
6+
.. autoclass:: sagemaker.LDA
7+
:members:
8+
:undoc-members:
9+
:show-inheritance:
10+
:inherited-members:
11+
:exclude-members: image, num_topics, alpha0, max_restarts, max_iterations, mini_batch_size, feature_dim, tol
12+
13+
14+
.. autoclass:: sagemaker.LDAModel
15+
:members:
16+
:undoc-members:
17+
:show-inheritance:
18+
19+
.. autoclass:: sagemaker.LDAPredictor
20+
:members:
21+
:undoc-members:
22+
:show-inheritance:

doc/ntm.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
NTM
2+
--------------------
3+
4+
The Amazon SageMaker NTM algorithm.
5+
6+
.. autoclass:: sagemaker.NTM
7+
:members:
8+
:undoc-members:
9+
:show-inheritance:
10+
:inherited-members:
11+
:exclude-members: image, num_topics, encoder_layers, epochs, encoder_layers_activation, optimizer, tolerance,
12+
num_patience_epochs, batch_norm, rescale_gradient, clip_gradient, weight_decay, learning_rate
13+
14+
15+
.. autoclass:: sagemaker.NTMModel
16+
:members:
17+
:undoc-members:
18+
:show-inheritance:
19+
20+
.. autoclass:: sagemaker.NTMPredictor
21+
:members:
22+
:undoc-members:
23+
:show-inheritance:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def read(fname):
1111

1212

1313
setup(name="sagemaker",
14-
version="1.0.2",
14+
version="1.1.0",
1515
description="Open source library for training and deploying models on Amazon SageMaker.",
1616
packages=find_packages('src'),
1717
package_dir={'': 'src'},

src/sagemaker/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
from sagemaker import estimator
1616
from sagemaker.amazon.kmeans import KMeans, KMeansModel, KMeansPredictor
1717
from sagemaker.amazon.pca import PCA, PCAModel, PCAPredictor
18+
from sagemaker.amazon.lda import LDA, LDAModel, LDAPredictor
1819
from sagemaker.amazon.linear_learner import LinearLearner, LinearLearnerModel, LinearLearnerPredictor
1920
from sagemaker.amazon.factorization_machines import FactorizationMachines, FactorizationMachinesModel
2021
from sagemaker.amazon.factorization_machines import FactorizationMachinesPredictor
22+
from sagemaker.amazon.ntm import NTM, NTMModel, NTMPredictor
2123

2224
from sagemaker.model import Model
2325
from sagemaker.predictor import RealTimePredictor
@@ -30,6 +32,7 @@
3032

3133
__all__ = [estimator, KMeans, KMeansModel, KMeansPredictor, PCA, PCAModel, PCAPredictor, LinearLearner,
3234
LinearLearnerModel, LinearLearnerPredictor,
35+
LDA, LDAModel, LDAPredictor,
3336
FactorizationMachines, FactorizationMachinesModel, FactorizationMachinesPredictor,
34-
Model, RealTimePredictor, Session,
37+
Model, NTM, NTMModel, NTMPredictor, RealTimePredictor, Session,
3538
container_def, s3_input, production_variant, get_execution_role]

0 commit comments

Comments
 (0)