AWS::StepFunctions::Activity
An activity is a task that you write in any programming language and host on any machine
that has access to AWS Step Functions. Activities must poll Step Functions using the
GetActivityTask
API action and respond using SendTask*
API
actions. This function makes Step Functions aware of your activity and returns
an identifier for use in a state machine and when polling from the activity.
For information about creating an activity, see Creating an Activity State Machine in the AWS Step Functions Developer Guide and CreateActivity in the AWS Step Functions API Reference.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::StepFunctions::Activity", "Properties" : { "EncryptionConfiguration" :
EncryptionConfiguration
, "Name" :String
, "Tags" :[ TagsEntry, ... ]
} }
YAML
Type: AWS::StepFunctions::Activity Properties: EncryptionConfiguration:
EncryptionConfiguration
Name:String
Tags:- TagsEntry
Properties
EncryptionConfiguration
-
Encryption configuration for the activity.
Activity configuration is immutable, and resource names must be unique. To set customer managed keys for encryption, you must create a new Activity. If you attempt to change the configuration in your CFN template for an existing activity, you will receive an
ActivityAlreadyExists
exception.To update your activity to include customer managed keys, set a new activity name within your AWS CloudFormation template.
Required: No
Type: EncryptionConfiguration
Update requires: Replacement
Name
-
The name of the activity.
A name must not contain:
-
white space
-
brackets
< > { } [ ]
-
wildcard characters
? *
-
special characters
" # % \ ^ | ~ ` $ & , ; : /
-
control characters (
U+0000-001F
,U+007F-009F
)
To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.
Required: Yes
Type: String
Minimum:
1
Maximum:
80
Update requires: Replacement
-
-
The list of tags to add to a resource.
Tags may only contain Unicode letters, digits, white space, or these symbols:
_ . : / = + - @
.Required: No
Type: Array of TagsEntry
Update requires: No interruption
Return values
Ref
When you provide the logical ID of this resource to the Ref
intrinsic
function, Ref
returns the ARN of the created activity. For example:
{ "Ref": "MyActivity" }
Returns a value similar to the following:
arn:aws:states:us-east-1:111122223333:activity:myActivity
For more information about using the Ref
function, see Ref.
Fn::GetAtt
Fn::GetAtt
returns a value for a specified attribute of this type. The
following are the available attributes and sample return values.
Arn
-
Returns the ARN of the resource.
Name
-
Returns the name of the activity. For example:
{ "Fn::GetAtt": ["MyActivity", "Name"] }
Returns a value similar to the following:
myActivity
For more information about using
Fn::GetAtt
, see Fn::GetAtt.
Examples
The following examples create Step Functions activity.
Note that Activity configuration is immutable, and resource names must be unique. To set customer managed keys for encryption, you must create a new Activity. If you attempt to change the configuration in your CFN template for an existing activity, you will receive an ActivityAlreadyExists
exception.
To update your activity to include customer managed keys, set a new activity name within your CFN template. The following shows an example that creates a new activity with a customer managed key configuration:
Create an activity
YAML
AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a new Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: myActivity EncryptionConfiguration: Type: AWS_OWNED_KEY Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2"
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "An example template for a Step Functions activity.", "Resources" : { "MyActivity" : { "Type" : "AWS::StepFunctions::Activity", "Properties" : { "Name" : "myActivity", "EncryptionConfiguration" : { "Type": "AWS_OWNED_KEY", } "Tags": [ { "Key": "keyname1", "Value": "value1" }, { "Key": "keyname2", "Value": "value2" } ] } } } }
Create an activity with a customer managed AWS KMS key
YAML
AWSTemplateFormatVersion: '2010-09-09' Description: An example template for an Activity with customer managed key encryption. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: Type: CUSTOMER_MANAGED_KMS_KEY KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2" MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption