-
Notifications
You must be signed in to change notification settings - Fork 3.9k
/
invoke-activity.ts
37 lines (34 loc) · 1.08 KB
/
invoke-activity.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import sfn = require('@aws-cdk/aws-stepfunctions');
import { Duration } from '@aws-cdk/core';
/**
* Properties for FunctionTask
*/
export interface InvokeActivityProps {
/**
* Maximum time between heart beats
*
* If the time between heart beats takes longer than this, a 'Timeout' error is raised.
*
* @default No heart beat timeout
*/
readonly heartbeat?: Duration;
}
/**
* A Step Functions Task to invoke an Activity worker.
*
* An Activity can be used directly as a Resource.
*/
export class InvokeActivity implements sfn.IStepFunctionsTask {
constructor(private readonly activity: sfn.IActivity, private readonly props: InvokeActivityProps = {}) {
}
public bind(_task: sfn.Task): sfn.StepFunctionsTaskConfig {
return {
resourceArn: this.activity.activityArn,
metricDimensions: { ActivityArn: this.activity.activityArn },
heartbeat: this.props.heartbeat,
// No IAM permissions necessary, execution role implicitly has Activity permissions.
metricPrefixSingular: 'Activity',
metricPrefixPlural: 'Activities',
};
}
}