AWS::StepFunctions::Activity - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

AWS::StepFunctions::Activity

An activity is a task that you write in any programming language and host on any machine that has access to Amazon 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 Amazon Step Functions Developer Guide and CreateActivity in the Amazon Step Functions API Reference.

Syntax

To declare this entity in your Amazon 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 Amazon 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

Tags

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 Amazon 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