使用 Amplify 和 Flutter 构建的移动应用程序调用 Step Functions 工作流
在本系列的第一部分中,我们使用 AWS Step functions 低代码可视化编辑器为简单的公寓预订场景构建了一个 Step Functions 工作流。
在本系列的第二部分中,我们使用 CDK 作为 IaC,Appsync 和 python 构建了相同的工作流,同时从 Lambda 函数调用了 Step Functions 执行。
在本系列的第三部分中,我们使用 SAM 作为 IaC,Appsync 和 python 构建了相同的工作流,同时从 Lambda 函数调用了 Step Functions 执行。
在本文中,我们将从使用 Amplify 和 Flutter 构建的移动应用程序调用上面创建的 Step Functions 工作流。
预览
解决方案架构
先决条件
为了能够成功地完成本教程,您需要检查这些先决条件。
- 已安装并运行 Amplify CLI
- 已安装并运行 Flutter 框架
- 成功完成并部署了 PART 2 或 PART 3 中的任何应用程序
- 已安装 Android Studio 或 Vscode
注意
这不是一个 Flutter 教程,而是关于如何从 Flutter 应用程序调用 Step Functions 的教程。因此,我将假设您已经知道如何使用 Flutter。如果您不知道,没关系。您可以从 这里 开始。
设置全栈项目
创建一个新的 Flutter 应用程序
flutter create amplified_todo
将 Amplify 添加到您的应用程序
转到 pub.dev 并搜索 amplify flutter,然后复制包和版本 
在您的根目录中,搜索 pubspec.yaml 文件,并将 amplify 包添加到其中。
amplify_flutter: ^0.6.6
由于我们将访问在本系列第 3 部分或第 4 部分中创建的 GraphQl API,因此我们还需要安装 amplify api 库。
amplify_api: ^0.6.6
因此,我的 pubspec.yaml dev_dependencies 现在具有此结构。
dev_dependencies:
flutter_test:
sdk: flutter
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^2.0.0
amplify_flutter: ^0.6.0
amplify_api: ^0.6.0
通过运行以下命令安装依赖项。根据您的开发环境,您可以通过 IDE 执行此步骤(或者它甚至可能为您自动执行此步骤)
flutter pub get
更新目标 Android SDK 版本
从项目根目录,导航到 android/app/ 目录,并使用您选择的文本编辑器修改 build.gradle,将目标 Android SDK 版本更新为 21 或更高版本
minSdkVersion 21
如果您使用的是 Flutter 2.10 或更高版本,则需要确保您的应用程序支持最新的 Kotlin 版本。这通常是 1.5.31 或更高版本。
您可以通过在应用程序的 android/build.gradle 文件中更新 Kotlin 版本来完成此操作
buildscript {
ext.kotlin_version = '1.5.31'
...
}
从 Appsync 获取 Amplify 配置
更新 main.dart
打开您的 main.dart 文件并初始化 Amplify 和 Amplify API。

