通过 aws-cdk 触发 aws-amplify 构建

Sim*_*ell 5 amazon-web-services aws-amplify aws-cdk

我正在通过 aws-cdk 创建一个 aws-amplify 应用程序,除了它不会自动启动构建之外,一切正常。如果我执行 git commit (我已启用持续部署),它将构建并运行得很好。但是在带有 cdk 部署的新 aws 帐户上,我必须手动启动第一次提交...

小智 6

我在部署放大托管应用程序时也遇到了这个问题。

在浏览 Amplify 的 AWS CLI 文档后,我找到了start-job命令。此命令允许您为特定分支启动放大作业。

然后,您可以创建AwsCustomResource一个 SDK 来调用 start-job。

这就是我最终得到的结果。

const build_trigger = new customResource.AwsCustomResource(this, 'triggerAppBuild', {
    policy: customResource.AwsCustomResourcePolicy.fromSdkCalls({
        resources: customResource.AwsCustomResourcePolicy.ANY_RESOURCE
    }),
    onCreate: {
        service: 'Amplify',
        action: 'startJob',
        physicalResourceId: customResource.PhysicalResourceId.of('app-build-trigger'),
        parameters: {
            appId: amplifyApp.appId,
            branchName: master.branchName,
            jobType: 'RELEASE',
            jobReason: 'Auto Start build',
        }
    },
});

Run Code Online (Sandbox Code Playgroud)

请注意,您应该将amplifyApp.apiId和替换master.branchName为您自己的应用程序 ID 和分支名称。我正在使用 amplify-alpha,因此您可能需要通过其他方式获取应用程序 ID 和分支名称。


fed*_*nev 0

Amplify 应用程序构建由推送事件触发。使用 CDK自定义资源或其更简单的触发器在 CDK 堆栈创建期间生成推送事件。

例如,对于 github 存储库,您的Trigger构造的 lambda 将调用 Github webhook 测试 API,这将触发对当前存储库的最新推送的挂钩。自定义资源和触发器都可以配置为仅在堆栈创建时运行。请记住为您的 lambda 提供任何必要的存储库凭证(例如通过秘密设置环境变量)。