使用AWS CDK(python)创建粘合作业失败

2024-05-19 10:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pythonwrappers for CDK来创建一个粘合作业。command属性需要IResolvable | Job­Command­Property类型的对象。我试图在这里放置一个JobCommandProperty对象,但是我得到了一个异常。在

我创建了一个JobCommandProperty对象。我在某处寻找.builder()函数(类似于javaapi),但找不到。在

from aws_cdk import (
    aws_glue as glue,
    aws_iam as iam,
    core
)

class ScheduledGlueJob (core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        policy_statement = iam.PolicyStatement(
                actions=['logs:*','s3:*','ec2:*','iam:*','cloudwatch:*','dynamodb:*','glue:*']
            )

        policy_statement.add_all_resources()

        glue_job_role = iam.Role(
            self,
            'Glue-Job-Role',
            assumed_by=iam.ServicePrincipal('glue.amazonaws.com')
        ).add_to_policy(
            policy_statement
        )

        job = glue.CfnJob(
            self,
            'glue-test-job',
            role=glue_job_role,
            allocated_capacity=10,
            command=glue.CfnJob.JobCommandProperty(
                name='glueetl',
                script_location='s3://my-bucket/glue-scripts/job.scala'
            ))

错误消息如下:

^{pr2}$

也许有人有一个可以工作的CDK(python)示例来创建CfnJob对象?在


Tags: 对象coreselfawspolicyjobcommandiam
2条回答

不管怎样,role属性必须是string类型,我被JSII错误消息搞糊涂了。在

glue_job_role变量的类型不再是role,因为您已将.add_to_策略添加到它。下面的代码应该可以工作。在

glue_job_role = iam.Role(
            self,
            'Glue-Job-Role',
            assumed_by=iam.ServicePrincipal('glue.amazonaws.com')
        )
glue_job_role.add_to_policy(
            policy_statement
        )
job = glue.CfnJob(
            self,
            'glue-test-job',
            role=glue_job_role.arn,
            allocated_capacity=10,
            command=glue.CfnJob.JobCommandProperty(
                name='glueetl',
                script_location='s3://my-bucket/glue-scripts/job.scala'
            ))

相关问题 更多 >

    热门问题