web-dev-qa-db-ja.com

python)でLambdaからAWSStep関数を呼び出す

そこで、PythonでLambdaを使用して作成した簡単なステップ関数を呼び出そうとしています。私はこの目的のためにboto3を使用しています

client = boto3.client('stepfunctions')
    response = client.start_execution(
        stateMachineArn='aws:states:.......',
        name='dev-hassan-pipeline-sf',
        input= json.dumps(returnVal)
    )

そして、「AWSStepFunctionsFullAccess」ポリシーを持つIAMロールを作成しました

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "states:*",
            "Resource": "*"
        }
    ]
}

このロールをラムダに割り当てますが、ラムダを実行すると次のエラーが発生します

An error occurred (AccessDeniedException) when calling the StartExecution operation: User: arn:aws:sts::xxxxxxxx:assumed-role/dev-hassan-role1/dev-hassan-pipeline-lambda is not authorized to access this resource: ClientError

dev-hassan-pipeline-lambdaは私のラムダの名前であり、dev-hassan-role1は私の役割名です

誰かがここで私を助けることができますか、私が間違っていること、なぜ私はそれに必要なアクセス許可を与えたのにラムダからステップ関数を呼び出すことができないのですか?

5
Hassan Jalil

それで、私は間違いを見つけました、私は間違ったARNを使用していました。私が使用していたARNは、ステップ関数の特定の実行用でした。使用する正しいARNは次のとおりです。

arn:aws:states:us-east-1:xxxxxxxx:stateMachine:dev-hassan-pipeline-sf

実際に驚くべきことに、WebUIでステートマシンのARNを見つけることができませんでした。いくつかのサンプルコードを見て自分の間違いを理解し、ARNがステートマシンではなく実行されていることに気付きました。

この質問にARN全体を投稿していなかったことに気づきました

4
Hassan Jalil

AWSのIAMで権限を修正できます。必要な権限でロールを作成します。ラムダ関数の作成中に、プロンプトが表示されたら、上記で作成したIAMロールを参照できます。

それがあなたの許可の問題を解決することを願っています:)

乾杯!

0
anilkumarggk

ポリシー「AWSStepFunctionsFullAccess」または必要なものを使用してIAMロールを更新します

0
Neelam Chahal