# TaskRole

Role to be assumed by the State Machine's execution role for invoking a task's resource.

- Source: [`aws-stepfunctions/lib/task-credentials.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-stepfunctions/lib/task-credentials.ts#L23)
- Type last changed: v2.54.0 · 7 Dec 2022

## Example

```ts
import * as lambda from 'aws-cdk-lib/aws-lambda';

declare const submitLambda: lambda.Function;
declare const iamRole: iam.Role;

// use a fixed role for all task invocations
const role = sfn.TaskRole.fromRole(iamRole);
// or use a json expression to resolve the role at runtime based on task inputs
//const role = sfn.TaskRole.fromRoleArnJsonPath('$.RoleArn');

const submitJob = new tasks.LambdaInvoke(this, 'Submit Job', {
  lambdaFunction: submitLambda,
  outputPath: '$.Payload',
  // use credentials
  credentials: { role },
});
```

## Initializer

```ts
new TaskRole()
```

## Properties

- `resource`: string — Retrieves the resource for use in IAM Policies for this TaskRole.

- `roleArn`: string — Retrieves the roleArn for this TaskRole.

## Methods

- `fromRole(role: IRole): TaskRole // chainable` (static) — Construct a task role based on the provided IAM Role.

  **Parameters**

  - `role` — IAM Role.

- `fromRoleArnJsonPath(expression: string): TaskRole // chainable` (static) — Construct a task role retrieved from task inputs using a json expression.

  **Parameters**

  - `expression` — json expression to roleArn.

  ```ts
  sfn.TaskRole.fromRoleArnJsonPath('$.RoleArn');
  ```
