def main()

in src/python-sdk-v2/create_compute_instance.py [0:0]


def main():
    """Main entry point for the script."""
    parser = get_config_parger()
    args, _ = parser.parse_known_args()
    ml_client = connect_to_aml(args)

    # Create a compute instance with system assigned managed identity
    if args.identity_type == ManagedServiceIdentityType.SYSTEM_ASSIGNED:
        # Create an identity configuration for system-assigned managed identity
        sys_identity_config = IdentityConfiguration(type = ManagedServiceIdentityType.SYSTEM_ASSIGNED)

        ci_basic = ComputeInstance(
            name=args.instance_name,
            size=args.size,
            location=args.location,
            description=args.description,
            identity = sys_identity_config
        )
    # Create a compute instance with user assigned managed identity
    elif args.identity_type == ManagedServiceIdentityType.USER_ASSIGNED:
        # Create an identity configuration from the user-assigned managed identity
        managed_identity = ManagedIdentityConfiguration(resource_id=f"/subscriptions/{args.subscription_id}/resourcegroups/{args.resource_group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{args.user_assigned_identity}")
        ua_identity_config = IdentityConfiguration(type = ManagedServiceIdentityType.USER_ASSIGNED, user_assigned_identities=[managed_identity])

        ci_basic = ComputeInstance(
            name=args.instance_name,
            size=args.size,
            location=args.location,
            description=args.description,
            identity = ua_identity_config
        )
    # Create a compute instance without managed identity
    else:
        ci_basic = ComputeInstance(
            name=args.instance_name,
            size=args.size,
            location=args.location,
            description=args.description
        )

    ml_client.begin_create_or_update(ci_basic).result()