首页 > 解决方案 > 在 CDK 中将 AWS Step Functions 与 API Gateway 集成时遇到问题

问题描述

目前我正在尝试在 CDK 中编写一个堆栈,该堆栈创建一个 API 网关,并且其中一个方法调用 AWS Step Function 来执行。

代码使用 构建npm run build,但在 cdk deploy 期间出现错误:

“用于集成的 AWS ARN 包含无效操作”和创建 API 根的行上的错误。

// API Gateway Resources
    const dapi = new api.RestApi(this, 'Test-Gateway');

    const testID = dapi.root.addResource('{testID}');
    
    const getQuote = testID.addResource('GetQuote');
    
    getQuote.addMethod('POST', new api.AwsIntegration({
        service: 'states',
        action:  'Start Execution',
        proxy: false,
        integrationHttpMethod: 'POST',
        options: {
            passthroughBehavior: api.PassthroughBehavior.NEVER,
            credentialsRole: iam.Role.fromRoleArn(this, 'rolename', 'arnForExecutionRole'),
            requestTemplates: {
                'application/json': `{ 
                    "input": "{
                        \"Alias\": \"$input.params('Alias')\"
                    },
                    "stateMachineArn": "stateMachineArn"
                }`,
            },
            integrationResponses: [{
                statusCode: '200',
            }]
        }
    }), {
        methodResponses: [{ 
            statusCode: '200',
        }]
    }
    );

我不确定为什么这不起作用,因为这与我在控制台中构建的功能相同。我觉得我要么缺少一个参数,要么有一些参数值不正确。我还没有找到任何这样的例子,所以任何帮助将不胜感激。

标签: typescriptamazon-web-servicesaws-cdk

解决方案


Try to use action name without spaces, i.e. action: 'StartExecution'


推荐阅读