CDK 部署 API 网关 - 必须在帐户设置中设置 CloudWatch Logs 角色 ARN 才能启用日志记录

Gul*_*bar 7 amazon-cloudwatch aws-cdk

如果您在尝试部署 API 网关(尤其是 Stage)时遇到以下错误,则需要确保针对您的账户设置了 CloudWatch ern。

Blah_V1Stage (V1Stage) CloudWatch Logs 角色 ARN 必须在账户设置中设置才能启用日志记录 (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: a855c5c5-b64b-4b22-85e8-703909b4c850)

const cloudWatchRole = new iam.Role(this, this.prefix + "_cloudwatchrole",
{
    assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal("apigateway.amazonaws.com")),
    roleName: this.prefix + "_cloudwatchrole"
});
cloudWatchRole.addManagedPolicy(
    iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AmazonAPIGatewayPushToCloudWatchLogs'))
const account = new apigateway.CfnAccount(this, "account",
    {
        cloudWatchRoleArn: cloudWatchRole.roleArn
    });
Run Code Online (Sandbox Code Playgroud)

Ian*_*n-B 19

作为更新,如果您使用 RestApi 构造,您现在只需cloudWatchRole: true在 Construct Props 中进行设置,CDK 将完成其余的工作。

文档: https: //docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApi.html#cloudwatchrole