AWS Шаговые функции: новый startExecution.syn c: 2 <role>не авторизован для создания управляемого правила - PullRequest
1 голос
/ 09 июля 2020

Я хочу попробовать новые функции AWS Step Functions, чтобы запустить вложенную Step-функцию через startExecution.syn c: 2, которая должна делать то же самое, что и startExecution.syn c, но возвращать результат как json -object, а не как сериализованная строка.

Когда я хочу развернуть пошаговые функции с CloudFormation, я получаю сообщение об ошибке «Не авторизован для создания управляемого правила. (Сервис: AWSStepFunctions; Код состояния: 400 ; Код ошибки: AccessDeniedException; Идентификатор запроса: ...; Прокси: null) "

Эта ошибка возникает только с новым startExecution.syn c: 2, startExecution.syn c работает отлично.

Мой встроенный IAM-оператор:

iamRoleStatements:
# Event to start SF synchronous
- Effect: Allow
  Action:
    - events:PutTargets
    - events:PutRule
    - events:DescribeRule
    - events:DeleteRule
    - events:DisableRule
    - events:EnableRule
    - events:ListRules
  Resource:
    - arn:aws:events:eu-central-1:<MY_AWS_ACCOUNT_ID>:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule
- Effect: Allow
  Action:
    - states:StartExecution
  Resource:
    - <arn of other sf>
- Effect: Allow
  Action:
    - states:DescribeExecution
    - states:StopExecution
  Resource:
    - "*"

Код задачи для запуска другой функции:

callOcrSf:
  Type: Task
  Resource: "arn:aws:states:::states:startExecution.sync:2"
  Parameters:
    StateMachineArn: <arn of other sf>
    Input.$: "$"
  ResultPath: "$.otherResult"
  Next: nextTask

Кто-нибудь знает, почему это не работает? Я использую бессерверный фреймворк для развертывания, но я думаю, что это не должно быть разницей, поскольку он создает только стеки CloudFormation.

1 Ответ

0 голосов
/ 10 июля 2020

Я использовал пошаговые функции с бессерверной структурой, у них есть интересное руководство, которое может помочь вам настроить его: https://www.serverless.com/plugins/serverless-step-functions

Еще одна вещь, которую вам нужно будет установить на ваш проект - это плагин, который фактически может создать пошаговую функцию на вашем бессерверном yaml https://github.com/serverless-operations/serverless-step-functions

также в соответствии с этим PR https://github.com/serverless-operations/serverless-step-functions/pull/333 startExecution. syn c: 2 был добавлен в пакет версии 2.19.0.

...